Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ComboBox mit Teil einer Liste füllen
#21
Hallo Ralf,

für die Initialisierung würde ich das so machen

Code:
Private Sub UserForm_Initialize()
  Dim loLetzte As Long
  Dim objWs As Worksheet
  Dim intZ As Integer
 
  Set objWs = ThisWorkbook.Worksheets("Datenbankliste")
  '   loLetzte = objWs.Cells(Rows.Count, 9).End(xlUp).Row                     ' letzte belegte in Spalte I (9)
  '   With ComboBox1
  '      .List = objWs.Range("I2:I" & loLetzte).Value
  '      For i = .ListCount - 1 To 0 Step -1
  '         If Left(.List(i), 1) <> "A" Then .RemoveItem i
  '      Next i
  '   End With
 
    With UserForm1
   .ComboBox1.ColumnCount = 2                                         'Spaltenanzahl der Combobox
   .ComboBox1.ColumnWidths = "25;25"                                  'Spaltenbreite der Combobox "25;0" weißt der 2. Spalte die Länge 0 zu
   
      intZ = 0                                                                     'zum Festlegen der Zeile beim Befüllen der Combobox
      For i = 2 To objWs.Cells(2, 9).End(xlDown).Row
        If Left(objWs.Cells(i, 9), 1) = "A" Then
          .ComboBox1.AddItem objWs.Cells(i, 9)
          .ComboBox1.Column(1, intZ) = objWs.Cells(i, 9).Row            
          intZ = intZ + 1                                                        'Zeilenzähler erhöhen
        End If
      Next i
   End With

End Sub


Um nachher die Auswahl in der Combox zu ermitteln würde ich folgendes Konstrukt wählen:

Code:
Private Sub ComboBox1_Change()
Dim z As Integer
Dim strKFZKennz As String

With UserForm1
  z = .ComboBox1.ListIndex
  strKFZKennz = .ComboBox1.Column(1, z)
  MsgBox (strKFZKennz)
End With

End Sub

Das Klick-Event verwende ich in der Regel bei Listboxen. Ich habe es hier mit dem Change-Ereignis getestet und realisiert.

Warum das mit der Match-Funktion nicht klappt, bin ich überfragt. Ungetestet vielleicht so?

Code:
Zeile = WorksheetFunction.Match("ComboBox1.Text", Columns(9), 0)  

Gruß
Ich
[-] Folgende(r) 1 Nutzer sagt Danke an IchBinIch für diesen Beitrag:
  • Rabe
Antworten Top
#22
(04.08.2016, 09:17)Rabe schrieb: ...

Warum wird das msgbox (strKFZKennz) vom Editor nicht automatisch so umgewandelt: MsgBox (...)?

Das hatte ich überlesen...

strKFZKennz = objWs.Cells(Zeile, 1).value


Achso und so bei Dir eingebettet:
Code:
Private Sub ComboBox1_Click()              ' Übernehmen
   Dim objWs As Worksheet
   Set objWs = ThisWorkbook.Worksheets("Datenbankliste")
   Dim z As Integer
   
   boAbbruch = False
   With UserForm1
   If ComboBox1.ListIndex >= 0 Then
      z = .ComboBox1.ListIndex
      Zeile = .ComboBox1.Column(1, z)
      
      strKFZKennz = objWs.Cells(Zeile, 1).Value
      MsgBox (strKFZKennz)

...

Ich hab's jetzt mehrfach getestet. Mit der Match-Funktion kriege ich es nicht hin.
Den restlichen Code von Dir kann ich leider nicht testen :32:
[-] Folgende(r) 1 Nutzer sagt Danke an IchBinIch für diesen Beitrag:
  • Rabe
Antworten Top
#23
Hi,

Klasse, danke!

(04.08.2016, 21:22)IchBinIch schrieb: Ich hab's jetzt mehrfach getestet. Mit der Match-Funktion kriege ich es nicht hin.
Den restlichen Code von Dir kann ich leider nicht testen :32:

Wenn es so funktioniert, dann brauche ich das Match ja auch nicht.
Nun mache ich mich ans weitertesten.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste