Copiar la información de un textbox a una hoja de Excel

Necesito de su ayuda para resolver la siguiente inquietud:

Necesito copiar la información de un textbox a una lista especifica de una hoja de Excel.

Ejemplo:

Userform

Combobox: Pepito Pérez Textbox: 4

Que en la hoja de Excel del listado me busque Pepito Pérez y me copie la cantidad del textobox

Listado          Cantidad

CA                   CB

Andres         

Pedro

Carmen

Pepito              4

1 respuesta

Respuesta
2

Te dejo 2 opciones. Por favor probalas 1 por vez (no las 2 juntas).

Como tu consulta no lleva ninguna referencia tendrás que seguir mi ejemplo y luego adaptar las instrucciones a tu caso.

OPCIÓN 1: La ubicación del elemento seleccionado en el combo nos ayuda a ubicar la fila considerando que el primer elemento del combo es 0. Entonces si Enero es 0 y aparece en fila 2 hay que sumar 2 al índice del combo:

filx = ComboBox1.ListIndex + 2
ActiveSheet.Range("B" & filx) = TextBox1

OPCIÓN 2: buscar el texto y una vez hallado colocar en celda de la misma fila (en el ejemplo en col siguiente) el valor del textbox.

La macro con la segunda opción sería algo así:

Private Sub CommandButton1_Click()
'x Elsamatilde
'OPCIÓN 1: encontrar la ubicación del registro según el nro de índice
'del elemento seleccionado en el combobox
'filx = ComboBox1.ListIndex + 2
'ActiveSheet.Range("B" & filx) = TextBox1
'OPCIÓN 2: buscar el texto seleccionado en col A de la hoja
Set busco = ActiveSheet.Range("A:A").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
'si lo encuentra pasa el contenido del textbox en col B
If Not busco Is Nothing Then
    busco.Offset(0, 1) = TextBox1
Else
    MsgBox "No se encontró el texto seleccionado."
End If
End Sub

Reemplaza 'ActiveSheet' por el nombre de la hoja donde se encuentre la tabla de datos.

¡Gracias! Elsa, es lo que estaba buscando.

Att.

Andrés Moncayo

Elsa buenos días, una consulta referente a lo indicado, como seria el comando si se encuentra lleno el casillero se salte a la siguiente columna:

Ejemplo:

Listado          Cantidad1       Cantidad2

CA                   CB                         CC

Andres         

Pedro

Carmen

Pepito              4                          4

En espera de tus comentarios, anticipo mi agradecimiento.

Att.

Andrés Moncayo

Considero que la primer col será B o sea y=2

Así queda entonces la macro modificada:

Private Sub CommandButton1_Click()
'x Elsamatilde
'OPCIÓN 1: encontrar la ubicación del registro según el nro de índice
'del elemento seleccionado en el combobox
'filx = ComboBox1.ListIndex + 2
'ActiveSheet.Range("B" & filx) = TextBox1
'OPCIÓN 2: buscar el texto seleccionado en col A de la hoja
Set busco = ActiveSheet.Range("A:A").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
'si lo encuentra pasa el contenido del textbox en col B
If Not busco Is Nothing Then
    x = busco.Row: y = 2
'se recorre la fila del registro encontrado desde col B hasta la primer vacía
    While Cells(x, y) <> ""
        y = y + 1
    Wend
    Cells(x, y) = TextBox1
Else
    MsgBox "No se encontró el texto seleccionado."
End If
End Sub

Por favor si te surge alguna otra inquietud con este tema inicia una nueva consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas