Ich habe da ein Problem bei dem ich mich immer wieder im Kreis drehe, und bräuchte mal die Schwarmintelligenz!
Folgendes:
Ich habe in einer Userform (unter anderem) eine TextBox9 in er ein Datum eingetragen wird und eine ComboBox2 aus der ein Produkt ausgewählt wird.
Durch Drücken von CommandButton1 soll folgendes ausgelöst werden:
- eine ANDERE Datei ("Datei x") wird geöffnet.
- Auf Tabellenblatt1, In Spalte A soll nach dem Datum aus TextBox1 gesucht werden.
- Ist das Datum vorhanden, soll abgeglichen werden, ob der Wert in der gleichen Zeile in Spalte B mit ComboBox2 übereinstimmt.
- Tut er dies soll die Zeile für weitere Aktionen unter lngZeile gespeichert
Werden (bspw: If CheckBox21.Value = True Then: .Cells(lngZeile, 17).Value =
TextBox74.Value)
- Tut er dies NICHT, soll weiter nach einer anderen Übereinstimmung gesucht
werden. Wird keine weitere gefunden, soll in die erste freie Spalte beide Werte
neu eingetragen werden. (nun soll das Programm wieder zum Anfang
springen, so dass lngZeile gesetzt wird.)
- Ist das Datum noch nicht vorhanden, sollen ebenfalls in die erste freie Spalte beide Werte neu eingetragen werden und das Programm wieder zum Anfang springen.
Folgenden Ansatz habe ich mir zusammen gebastelt, komme allerdings damit nicht weiter, da entweder lngZeile als 0/nicht vorhanden erkannt wird, oder das Programm scheinbar in der Schleife festhängt und sich gar nichts mehr tut
Unten mal mein Code Vielleicht kann mir jemand von euch helfen?
Vielen Dank schon einmal vorab!
Gruß Sam
Private Sub CommandButton1_Click()
Workbooks.Open Filename:=\\Pfad\..\Datei x.xlsx
Dim rng As Range
Dim lngZeile As Long
Call GELabor
Workbooks("Datei x.xlsx").Close SaveChanges:=True
MsgBox ("Daten übertragen!")
End Sub
Sub GELabor()
Dim rngDate As Range
Dim datAdresse As String
With Workbooks("Datei x.xlsx").Sheets("Tabelle1")
Do
Set rngDate = .Columns(1).Find(What:=TextBox9.Value, LookIn:=xlValues, LookAt:=xlPart)
If rngDate Is Nothing Then
.Range("a1").End(xlDown).Offset(1, 0) = TextBox9.Value
.Range("b1").End(xlDown).Offset(1, 0) = ComboBox2.Value
ElseIf Not rngDate Is Nothing Then
datAdresse = rngDate.Address
If rngDate.Offset(0, 1) = ComboBox2.Value Then
lngZeile = rngDate.Row
Exit Do
Else
Set rngDate = .Columns.FindNext(after:=rngDate)
If rngDate.Address = datAdresse Then
.Range("a1").End(xlDown).Offset(1, 0) = TextBox9.Value
.Range("b1").End(xlDown).Offset(1, 0) = ComboBox2.Value
ElseIf rngDate.Offset(0, 1) = ComboBox2.Value Then
lngZeile = rngDate.Row
Exit Do
End If
End If
End If
Loop
(weitere Aktionen mit lngZeile für die jeweilige Zeile)
End With
End Sub