Exportar valores desde un ComboBox

Buenas tardes:
Tengo un problema que no sé como resolver. He creado una macro que selecciona tres columnas de una hoja excel y éstas van a parar a tres sendos ComboBox en los que puedo "jugar" con las combinaciones necesarias para luego exportarlas a una plantilla excel determinada. El problema es que no sé como crear un bucle para que todas las combinaciones queden almacenadas en la plantilla fila a fila. De momento lo único que me hace es pegar los valores en una única fila y cada vez que doy al botón de insertar (es un Userform) me cambia los valores de la fila, pero no me añade estos en una fila posterior. Quiero que al pulsar este botón me ejecute el pegado continuamente de la primera a la última fila que necesite. Este es el código que uso para pegar los valores :
Private Sub CommandButton8_Click()
Range("G4").Value = ComboBox6.Value
Range("H4").Value = ComboBox4.Value
Range("I4").Value = ComboBox3.Value
End Sub
Existiría alguna manera de crear un bucle para que fuera ejecutando el código y añadiendo el pegado de valores en filas consecutivas hacia abajo. No sé, algo como G+n, H+n I+n de manera que pudiera llenar la plantilla con todas las filas que necesite en esas tres columnas.
Muchas gracias

1 respuesta

Respuesta
1
Solo te falta agregar la instrucción que te ubica cual es la última fila con datos (o la primer vacía).
Tomaré la col G para guardar esa información:
Dim fila1
fila1 = ActiveSheet.Range("G65536").End(xlUp).Row + 1
Luego utilizas esa variable para establecer el rango:
Range("G" & fila1).value = Combobox6.value
Range("H" & fila1).value = .....
Saludos y no olvides finalizar la consulta
Elsa
PD) Más instrucciones en:
Gracias Matilde, me ha funcionado. De todas formas me gustaría saber si también me sirve este código, ya que lo probé antes de que contestarais y me ha funcionado. ¿Qué diferencia hay?
ActiveCell.EntireRow.Cells(1, 7).Value = ComboBox6.Value
ActiveCell.EntireRow.Cells(1, 8).Value = ComboBox4.Value
ActiveCell.EntireRow.Cells(1, 9).Value = ComboBox3.Value
ActiveCell.Offset(1, 0).Select
Muchas gracias
En programación es probable realizar lo mismo con distintas instrucciones. Si lo probaste y funciona, está todo bien. Te explico las diferencias:
Con establecer una variable fila: si arrancas estando en fila4, la instrucción ... End(xlUp). Row + 1 revisa cada vez que la ejecutas cuál es la última fila utilizada.
Con ActiveCell. EntireRow.Cells(1, 7).Value lo que hace es colocar valores en la fila siguiente a la que SE ENCUENTRE SELECCIONADA en el momento en que se ejecuta la rutina.
La diferencia con la anterior es si por alguna questión de tu rutina, tenés seleccionada otra fila que no sea la última, se escribirán datos en la siguiente ... y no será precisamente en una fila libre.
¿Se comprendió?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas