Rellenar columnas de Excel con un commandbutton desde un userform con vb

Me llamo Javier y estoy retomando el tema de programación.

Tengo un problema, he creado un userform con un Listbox con una lista de clientes(esta lista de clientes esta ademas en una hoja de excel) ademas tengo un combobox con un serie de opciones (4) y un un botón de comando que hará que dependiendo que cliente elijo del listbox me copie la opción elegida del combobox en una celda especifica.

Por ejm si elijo elijo el primer cliente del listbox luego elijo una opción del combobox el comando me debería copiar el valor del combobox en la celda G1, si elijo el segundo cliente el valor del combobox se copiaría en G2 y así sucesivamente.

He hecho un código pero solo me copia el valor del combobox en una celda sin importar el cliente que elija del listbox en el caso del código que hice en el G1 solamente.

Dim i As Long
With Form2.ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Range("G1").Value = Form1.ComboBox1.Value
Exit For
End If
Next
End With
End Sub

1 respuesta

Respuesta
1

Lo que pasa que tu en ningún momento estipulas que si elije el primero ponga el dato en G1 y si es el segundo en G2 y así sucesivamente.

Tienes que hacer un CASE con el valor del Combo y dependiendo del valor asignar a la celda.

Hola Eduardo.

Antes que todo gracia por la respuesta y tu atención prestada a mi problema

desde que recién he retomado el tema de la programación, no se por donde empezar o como hacer para crear el CASE para este caso, si me podrías dar un ejemplo de como hacerlo te lo agradecería mucho, y disculpa por la molestia.

buen día.

Como no se cual es tu dato principal asumiré que es la propiedad Text del ComboBox

Select Case ComboBox1.Text
    Case "Roberto Perez"
        Range("G1").Value = Form1.ComboBox1.Value
    Case "Pedro Rodriguez"
        Range("G2").Value = Form1.ComboBox1.Value
End Select
        

Obviamente puedes poner tantos Case como necesites, cambiar lo que está entre comillas por el valor que tu necesites, y cambiar la propiedad Text por la que sea necesaria.

Ten en cuenta que esto es VB.NET por lo que si está usando VB6 no puedo ayudarte, no doy soporte para VB6, ya que eso murió hace 15 años y seguir trabajando en VB6 es cavernícola.

Hola Eduardo.

Gracias de nuevo por tu respuesta, y claro estoy trabajando con VB.net

este ejemplo del Case lo entiendo, el problema es que los clientes pueden ser 1 cliente o podrían ser 100 clientes, es por eso que no sabría como hacerlo, porque no siempre sera la misma cantidad de clientes, llámese clientes "Roberto Perez", "pedro Rodríguez",

te agradezco tu respuesta anticipadamente.

Saludos.

Javier

¿Dónde especificas tu que Celda del Excel le corresponde a que cliente?

O en todo caso, ¿cómo determinas eso?

Hola Eduardo.

En el excel tengo al primer cliente en el A2 para abajo, es decir si tuviéramos 10 clientes el ultimo se encuentra en el A11, y en la columna B2 para abajo están vacías y ahí vendrían por ejemplo la nacionalidad que están guardadas en el combobox.

en el listbox ya me muestra todos los clientes que tengo en el excel (A2:A11)

ahora por ejemplo si elijo en primer cliente del listbox luego en el combobox elijo una nacionalidad, el commandbutton haría que este dato se guarde en el B2 de mi excel, si elijo el 2do cliente la nacionalidad se guardaría en el B3 y así sucesivamente, el problema es que no siempre sera la misma cantidad de clientes. espero haberme hecho entender. muchas gracias por tu interés y ayuda.

Saludos

Javier

Entonces deberías llenar el ComboBox con el ValueMember con el valor del dato de la columna que debe ser puesto.

Si tienes dudas esto te puede ayudar.

http://social.msdn.microsoft.com/Forums/es/vbes/thread/4eff8cb8-82e5-46af-8a77-30205d6f6a59

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas