LLenar campo COMBOBOX con información de hoja Excel

Estoy haciendo un formulario de datos, donde primero hago la captura y este genera un consecutivo. Luego si necesito cambiar un dato pongo el consecutivo y me debe cargar la información para hacer el cambio y volver a guardar la información. En el formulario tengo varios COMBOBOX pero el código que tengo no me carga la información de los COMBOBOX solo de los TEXTBOX. ¿Cómo puedo solucionar el problema?

Respuesta
1

1 respuesta más de otro experto

Respuesta
1

Puedes compartir tu archivo en google drive y me explicas cómo es el funcionamiento en tu formulario.

Necesito conocer todos los datos, nombres de hoja, de combo, celdas, cómo buscas, en cuál columnas buscas, etc, etc...

No carga el combo4, porque cuando cargas el combo3 borras el combo4:

Private Sub ComboBox3_Change()
  ComboBox4. Clear

Lo que hago en esos casos es declarar una variable global, al inicio de todo el código:

Dim cargando As Boolean

Entonces cuando estás llenando los datos, activas la variable:

Private Sub CommandButton2_Click()
'Buscar ID
  Dim sh As Worksheet
  Dim f As Range
  cargando = True
  Set sh = Sheets("DATOS")
  Set f = sh.Range("A:A").Find(ID.Value, , xlValues, xlWhole)
  If Not f Is Nothing Then
    TextBox3.Value = sh.Cells(f.Row, 2)
    TextBox3.Value = sh.Cells(f.Row, 3)
    TextBox22.Value = sh.Cells(f.Row, 4)
    TextBox17.Value = sh.Cells(f.Row, 12)
    TextBox23.Value = sh.Cells(f.Row, 14)
    ComboBox3.Value = sh.Cells(f.Row, 5)
    ComboBox4.Value = sh.Cells(f.Row, 15)
    ComboBox5.Value = sh.Cells(f.Row, 20)
    TextBox18.Value = sh.Cells(f.Row, 16)
    TextBox19.Value = sh.Cells(f.Row, 17)
    TextBox20.Value = sh.Cells(f.Row, 18)
    TextBox21.Value = sh.Cells(f.Row, 19)
    TextBox4.Value = sh.Cells(f.Row, 21)
    TextBox6.Value = sh.Cells(f.Row, 21)
    TextBox6.Value = sh.Cells(f.Row, 23)
    TextBox7.Value = sh.Cells(f.Row, 24)
    TextBox8.Value = sh.Cells(f.Row, 25)
    TextBox25.Value = sh.Cells(f.Row, 26)
    TextBox9.Value = sh.Cells(f.Row, 27)
    TextBox15.Value = sh.Cells(f.Row, 28)
    TextBox16.Value = sh.Cells(f.Row, 29)
    TextBox24.Value = sh.Cells(f.Row, 30)
    TextBox1.Value = sh.Cells(f.Row, 31)
    TextBox2.Value = sh.Cells(f.Row, 32)
    TextBox11.Value = sh.Cells(f.Row, 33)
    TextBox13.Value = sh.Cells(f.Row, 34)
    TextBox14.Value = sh.Cells(f.Row, 35)
  End If
  cargando = False
End Sub

En el evento del combo3:

Private Sub ComboBox3_Change()
  If cargando Then Exit Sub
  ComboBox4.Clear
  Sheets("PLACAS").Select
  columna1 = ComboBox3.ListIndex + 1
  Cells(2, columna1).Select
  ultimaFila = Columns("A:A").Range("A65536").End(xlUp).Row
  For cont = 2 To ultimaFila
    If Cells(cont, columna1) <> "" Then
      ComboBox4.AddItem (Cells(cont, columna1))
    End If
  Next
  Sheets("Inicio").Select
End Sub

[No olvides valorar]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas