Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Mehrere Zeilen auslesen Kombinationsfeld
13.01.2020 14:53:29
Stefan
Hallo zusammen,
ich versuche gerade ein Programm mit VBA für eine Betriebskostenabrechnung zu schreiben.
Leider stoße ich aktuell an meine bescheidenen VBA-Kentnisse und erhoffe mir hier ein paar Denkanstöße bzw. Lösungsansätze.
Über ein UserForm kann ein Objekt angelegt werden, das klappt einwandfrei.
Die Objektdaten werden in verschiedenen Spalten gespeichert.. Objektnr, Straße, Hausnr, PLZ, Ort, ...
Nun soll über ein weiteres UserForm entsprechende Mieterdaten eingetragen werden. Damit der Mieter einem Objekt zugeordnet werden kann, soll über ein Kombinationsfeld eine Auswahl der Objekte stattfinden.
Eindeutig identifiziert werden die Objekte über die Objektnr (fortlaufend).
Meine Idee:
Im Kombinationsfeld wird Straße, Hausnummer, PLZ und Ort angezeigt und in einem versteckten Textfeld die entsprechende Objektnr.
Beim Speichern der Mieterdaten soll dann die versteckte Objektnr übernommen werden.
Mein Ansatz sieht bisher so aus:

Worksheets("Objekte").Activate 'Tabellenblatt aktivieren
Dim ObjektId As Integer 'Objektnr
Dim maxObjekte as Long 'Anzahl der Einträge
Dim Objekt As String 'Objekt bestehend aus Straße, Hausnummer, PLZ und Ort
maxObjekte = ActiveSheet.UsedRange.Row.Count 'Anzahl der Einträge
ObjektId = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'ObjektId in Spalte 1
'Hier kommt mein Problem. Ich weiß nicht, wie ich die Abfrage gestalten soll
With Worksheets("Objekte")
form_add_renter.addRenterObjekt.RowSource = "B1:B5"
End With
form_add_renter.addRenterObjekt.ListIndex = 1
Bei der Zusammenfühung bzw. dem Füllen des Kombinationsfeldes stoße ich nun an meine Grenzen.
Von der Logik her müsste ich nun Zeile für Zeile durchgehen und die Daten aneinandergereiht in das Kombinationsfeld eingeben. Leider weiß ich nicht, wie diese Abfrage zu gestalten ist.
Es wäre super, hier einen Sntoß bzw. Lösungsansatz zu erhalten.
Vielen Dank vorab für Eure Mühe!
Grüße
Stefan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Mehrere Zeilen auslesen Kombinationsfeld
13.01.2020 16:01:00
Stefan
Bin nun einen Schritt weiter..

Private Sub UserForm_Initialize()
'Kombinationsfeld Objekte füllen
Worksheets("Objekte").Activate
Dim ObjektId As Integer
Dim maxObjekte As Long
Dim Objekt As String
maxObjekte = WorksheetFunction.CountA(ActiveSheet.Range("A:A")) - 1
ObjektId = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
'MsgBox maxObjekte
With Worksheets("Objekte")
For i = 2 To maxObjekte
Objekt = ActiveSheet.Cells(i, 2).Value & " " & ActiveSheet.Cells(i, 3).Value & ", " &  _
ActiveSheet.Cells(i, 4).Value & " " & ActiveSheet.Cells(i, 5).Value
form_add_renter.addRenterObjekt.AddItem = Objekt
Next
'form_add_renter.addRenterObjekt.RowSource = "B1:B5"
End With
End Sub
Aktuell kommt die Fehlermeldung
"Function oder Variable erwartet"
Viele Grüße
Anzeige
AW: VBA Mehrere Zeilen auslesen Kombinationsfeld
13.01.2020 16:17:22
Stefan
Habe es geschafft :-)
Gibt es noch etwas zu optimieren?

'Kombinationsfeld Objekte füllen
Worksheets("Objekte").Activate
Dim ObjektId As Integer
Dim maxObjekte As Long
Dim Objekt As String
maxObjekte = WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
ObjektId = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
'MsgBox maxObjekte
With Worksheets("Objekte")
For i = 2 To maxObjekte
Objekt = ActiveSheet.Cells(i, 1).Value & " - " & ActiveSheet.Cells(i, 2).Value & " " &  _
ActiveSheet.Cells(i, 3).Value & ", " & ActiveSheet.Cells(i, 4).Value & " " & ActiveSheet.Cells(i, 5).Value
form_add_renter.addRenterObjekt.AddItem Objekt
Next
form_add_renter.addRenterObjekt.ListIndex = 0
End With

Anzeige

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige