Pegar del UserForm dos veces un número en la misma hoja seleccionada

En días anteriores me hiciste el favor de apoyarme con una macro; de nuevo y del mismo programita solicito tu apoyo para completar esta última, creo que con esta se cierra el ciclo de este programa. De nueva cuenta Agradezco tus atenciones. Te adjunto el principio de la macro y al final de esta traté de explicarte el proceso que sigue. .

El archivo que tienes de ésta te lo envié en la pregunta: “Apoyo para una macro que debe retornar el contenido de sus celdas en TxBx…”, ahora es lo contrario.

Private Sub CommandButton1_Click() 'ESTE COMANDO ES SOLO PARA "BUSCAR" 2 FUENTES

'Act. Por. Dante Amor

'LA 1°: BUSCA DATOS GENERALES DE LA OPCION SELECCIONADA(EN CbBx1; "Obra1")) EN CELDAS FIJAS y los repone en los siguientes TxBx1, 2 y 3,

 Application.ScreenUpdating = False     

For Each h In Sheets  

       n = h.Name         If UCase(h.Name) = UCase(ComboBox1) Then             existe = True             Exit For         End If     Next     If existe = False Then

MsgBox "La hoja seleccionada no existe", vbCritical, "SELECCIONAR OBRA"

Exit Sub

ComboBox1.SetFocus

End If

     Set H1 = Sheets(ComboBox1.Value)

     TextBox1 = H1.Range("d3") 'Obra

     TextBox2 = H1.Range("d4") 'Localización

     TextBox3 = H1.Range("d5") 'Mpio

‘-----

‘Después de esta parte, y capturados los datos en los CbBx4 y 5, y de los TxBx4, 5 y 6 que se encuentran en el Frame1, se da clik al botón Insertar (CmdBton1) para Buscar en el Rango(B:C) la opción seleccionada en el CbBx3 (Partida de gasto) y al encontrarla pega el contenido del TxBx6 en la últcelda vacía y a partir de la Col “I”de esa línea.

Al mismo tiempo, Busca la opción seleccionada en el CbBx2 (Proveedor) en el Rango(A84:A120) y al encontrarla pega en la Ultcelda vacía a partir de la col “D” la fecha actual; en la siguiente Cellvacía el contenido del CbBx4; en la siguiente el contenido del CbBx5; en la siguiente el del TxBx4, luego el TxBx5 y por último el del TxBx6 que es el único numero en pesos y así sucesivamente. (Son 6 datos en línea que pegará cada vez)...

1 respuesta

Respuesta
1

Si pegas los datos del proveedor hacia la derecha, después va a ser más complicado realizar consultas por proveedor, pero si consideras que para ti es la mejor forma, no hay problema así te envío la macro.

Así es Dante... los movimientos en la practica no serán más de 10, o sea que ocupará cuando mucho 50 columnas cada línea y estas se trasladarán a una hoja normal, o sea, se tomarán 5 celdas seguidas a la derecha para colocarlas en una línea de la hoja, es decir la hoja tendrá 5 líneas. Cuando llegue a eso te lo enviaré por correo... gracias

Con esta instrucción se encuentra la última celda vacía pero de las columnas

uc = h1.Cells(b.Row, Columns.Count).End(xlToLeft).Column + 1

Esta es la macro completa

Private Sub CommandButton1_Click() 'ESTE COMANDO ES SOLO PARA INSERTAR LA APLICACION
'Por.Dante Amor
    Application.ScreenUpdating = False
    For Each h In Sheets
         n = h.Name
        If UCase(h.Name) = UCase(ComboBox1) Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "La hoja seleccionada no existe", vbCritical, "SELECCIONAR OBRA"
        Exit Sub
        ComboBox1.SetFocus
    End If
    Set h1 = Sheets(ComboBox1.Value)
    'desproteger la hoja
    h1.Unprotect
    TextBox1 = h1.Range("d3") 'Obra
    TextBox2 = h1.Range("d4") 'Localización
    TextBox3 = h1.Range("d5") 'Mpio
    Set b = h1.Columns("B").Find(ComboBox3, lookat:=xlWhole)
    If Not b Is Nothing Then
        h1.Cells(b.Row, "I") = Val(TextBox6)
    End If
    Set b = h1.Columns("A").Find(ComboBox2, lookat:=xlWhole)
    If Not b Is Nothing Then
        uc = h1.Cells(b.Row, Columns.Count).End(xlToLeft).Column + 1
        If uc < 7 Then uc = 7
        h1.Cells(b.Row, uc) = Date
        h1.Cells(b.Row, uc + 1) = TextBox5
        h1.Cells(b.Row, uc + 2) = Val(TextBox6)
    End If
    'Proteger la hoja
    h1.Protect
    MsgBox "Importe insertado"
End Sub

Tienes pendiente valorar esta pregunta, podrías valorarla para continuar con las nuevas peticiones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas