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]