Hallo Leute!
Ich bin blutiger Anfänger und scheiter gerade an einer (wahrscheinlich) sehr einfachen If Else.
Zur Erklärung: Ich befülle drei Arbeitsblätter (a: Adressen, b: Objekte, c: Wohnungen). Im vierten Schritt möchte ich über eine UserForm bestimmte Daten aus den drei Arbeitsblättern miteinander verbinden. Ich habe also als erstes ein Auswahlfeld Objekt.
Dim varObjekt As Variant
Dim lngLetzte As Long
With Sheets("Stammdaten - Objekte")
lngLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
varObjekt = .Range("G2:G" & lngLetzte)
End With
AuswahlObjID.List = varObjekt
Dann möchte ich nur alle Wohnungen zu diesem Objekt anzeigen und anschließend dieser Wohnung eine Adresse hinzufügen.
In der Tabelle der Wohnungen ist der Wohnung schon die Nummer des Objekts zugeordnet. Nun möchte ich, dass nach der Auswahl des Objekts im zweiten Auswahlfeld Wohnungen nur noch die Wohnungen für dieses Objekt dargestellt sind.
Die Werte aus der ersten Auswahlbox speichere ich in der Variable AuswahlObjID bzw. wandle diesen noch in verkürzter Form um in die varObjID. Diese möchte ich nun vergleichen mit den Werten der Spalte A
Dim varObjID As String
varObjID = AuswahlObjID
If InStr(varObjID, " ") <> 0 Then
varObjID = VBA.Left(varObjID, VBA.InStr(1, varObjID, " ") - 1)
End If
Nun hole ich die Werte aus den Einheiten für die besagte Spalte.
Dim varObjBez As Variant
Dim lngLetztem As Long
With Sheets("Stammdaten - Einheiten")
lngLetztem = .Cells(.Rows.Count, 1).End(xlUp).Row
varObjBez = .Range("A2:A" & lngLetztem)
End With
Ich ging davon aus, dass ich nun nur noch die varObjID mit varObjBez vergleichen muss und dann nur die Zellen im Auswahlfeld Einheiten ausgegeben werden, bei denen der Wert True ist. Das funktioniert aber nicht. Hab die Varianten auch schon beide als Variant, bzw. als String erzeugt. Hat aber auch nicht funktioniert. Bekomme nun Laufzeitfehler 13. Was mache ich falsch?
'If varObjBez = varObjID Then
Dim varEinheit As Variant
Dim lngLetztes As Long
With Sheets("Stammdaten - Einheiten")
lngLetztes = .Cells(.Rows.Count, 1).End(xlUp).Row
varEinheit = .Range("H2:H" & lngLetztes)
End With
AuswahlEinh.List = varEinheit
'End If
|