Hi,
ich hab da eine Frage, bevor ich jetzt ewig rumprobiere, das ich vllt schon vorher ne Info bekomme "ob möglich" oder nicht.
Zu erst mal mein Beispielcode:
Private Sub UserForm_Initialize()
Dim rngCell As Range
Dim m_stAddress As String
Dim strArbeiter As String
Dim strArbeiter_1 As String
Dim strKartenNR As String
Dim strKDNR As String
Dim strKDNR_1 As String
Dim strKDName As String
Dim strGewichtSoll As String
Dim strGewichtSoll_1 As String
Dim strKDNR_2 As String
With ListBox1
.ColumnCount = 5
.ColumnWidths = "1,9cm; 1,5cm; 1,5cm; 3cm; 3cm"
.Clear
End With
With ListBox2
.ColumnCount = 5
.ColumnWidths = "1,9cm; 1,5cm; 1,5cm; 3cm; 3cm"
.Clear
End With
strKDNR = ""
strKDNR_1 = ""
txtsuche = "1"
With Sheets("mobkzu")
Set rngCell = .Columns(2).Rows.Find(txtsuche, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not rngCell Is Nothing Then
m_stAddress = rngCell.Address
Do
If Not rngCell.EntireRow.Columns(12).Value >= "" Then
Set rngCell = .Columns(2).Rows.FindNext(rngCell)
Else
strKDNR = .Range("G" & rngCell.Row)
If strKDNR_1 = "" Then
strKDNR_1 = strKDNR
strArbeiter = .Range("C" & rngCell.Row)
strKartenNR = .Range("L" & rngCell.Row)
Sheets("DB1").Range("U1").Value = strKDNR
strKDName = Sheets("DB1").Range("V1").Value
strGewichtSoll = .Range("M" & rngCell.Row)
GoTo Jump1
End If
If strKDNR_1 <> strKDNR Then
ListBox1.AddItem strArbeiter 'Arbeiter
ListBox1.List(ListBox1.ListCount - 1, 1) = strKDNR_1 'KD NR
'ListBox1.List(ListBox1.ListCount - 1, 2) = strKartenNR 'KartenNR
ListBox1.List(ListBox1.ListCount - 1, 3) = strKDName 'KD Name
ListBox1.List(ListBox1.ListCount - 1, 4) = strGewichtSoll & " kg"
strKDNR_1 = strKDNR
strGewichtSoll = 0
strArbeiter = .Range("C" & rngCell.Row)
strKartenNR = .Range("L" & rngCell.Row)
Sheets("DB1").Range("U1").Value = strKDNR
strKDName = Sheets("DB1").Range("V1").Value
strGewichtSoll = .Range("M" & rngCell.Row)
GoTo Jump1
End If
If strKDNR = strKDNR_1 Then
strGewichtSoll = strGewichtSoll + .Range("M" & rngCell.Row)
GoTo Jump1
End If
Jump1:
Set rngCell = .Columns(2).Rows.FindNext(rngCell)
End If
Loop While Not rngCell Is Nothing And rngCell.Address <> m_stAddress
End If
If ListBox1.ListCount <= 0 Then GoTo weiter1
ListBox1.AddItem strArbeiter 'Arbeiter
ListBox1.List(ListBox1.ListCount - 1, 1) = strKDNR_1 'KD NR
'ListBox1.List(ListBox1.ListCount - 1, 2) = strKartenNR 'KartenNR
ListBox1.List(ListBox1.ListCount - 1, 3) = strKDName 'KD Name
ListBox1.List(ListBox1.ListCount - 1, 4) = strGewichtSoll & " kg"
weiter1:
End With
strKDNR = ""
strKDNR_1 = ""
txtsuche = "0"
With Sheets("mobkzu")
Set rngCell = .Columns(2).Rows.Find(txtsuche, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not rngCell Is Nothing Then
m_stAddress = rngCell.Address
Do
If Not rngCell.EntireRow.Columns(12).Value >= "" Then
Set rngCell = .Columns(2).Rows.FindNext(rngCell)
Else
strKDNR = .Range("G" & rngCell.Row)
On Error Resume Next
strKDNR_2 = ((ListBox2.List(ListBox2.ListCount - 1, 1)))
If strKDNR_1 = "" Then
strKDNR_1 = strKDNR
strArbeiter = .Range("C" & rngCell.Row)
strKartenNR = .Range("L" & rngCell.Row)
Sheets("DB1").Range("U1").Value = strKDNR
strKDName = Sheets("DB1").Range("V1").Value
strGewichtSoll = .Range("M" & rngCell.Row)
GoTo Jump2
ElseIf strKDNR = strKDNR_1 Then
strGewichtSoll = strGewichtSoll + .Range("M" & rngCell.Row)
GoTo Jump2
End If
If strKDNR_1 <> strKDNR Then
ListBox2.AddItem strArbeiter 'Arbeiter
ListBox2.List(ListBox2.ListCount - 1, 1) = strKDNR_1 'KD NR
'ListBox2.List(ListBox2.ListCount - 1, 2) = strKartenNR 'KartenNR
ListBox2.List(ListBox2.ListCount - 1, 3) = strKDName 'KD Name
ListBox2.List(ListBox2.ListCount - 1, 4) = strGewichtSoll & " kg"
strKDNR_1 = strKDNR
strGewichtSoll = 0
strArbeiter = .Range("C" & rngCell.Row)
strKartenNR = .Range("L" & rngCell.Row)
Sheets("DB1").Range("U1").Value = strKDNR
strKDName = Sheets("DB1").Range("V1").Value
strGewichtSoll = .Range("M" & rngCell.Row)
End If
Jump2:
Set rngCell = .Columns(2).Rows.FindNext(rngCell)
End If
Loop While Not rngCell Is Nothing And rngCell.Address <> m_stAddress
End If
If ListBox2.ListCount <= 0 Then GoTo weiter2
ListBox2.AddItem strArbeiter 'Arbeiter
ListBox2.List(ListBox2.ListCount - 1, 1) = strKDNR_1 'KD NR
'ListBox2.List(ListBox2.ListCount - 1, 2) = strKartenNR 'KartenNR
ListBox2.List(ListBox2.ListCount - 1, 3) = strKDName 'KD Name
ListBox2.List(ListBox2.ListCount - 1, 4) = strGewichtSoll & " kg"
weiter2:
End With
End Sub
Ich weiß, dass da evtl paar dinge drin sind die unnötig sind, darum geht es mir nicht.
Meine Frage bezieht sich auf die Suchfunktion.
Wenn in der ersten Suche die "1" gefunden wird, kann man dann eine zweite suche nach einem "gefundenen Wert" aus dem Suchergebnis heraus starten und dann zurück zur ersten Suche gehen um den nächsten Suchergebnis dann die Schleife neu zu starten bis zum Ende?
Also wenn in Zeile 1 die "1" gefunden wird, eine neue Suche (wenn ich die KartenNR als beispiel suchen würde die ich aktuell nicht mit einbeziehe) starten um alle Einträge mit dem Inhalt zu suchen und wenn keine weiteren Inhalte gefunden werden dann zurück zur nächsten "1" Suche gehe.
Würde mich Interessieren, ob das geht, oder ob das ein "Limit von Möglichkeit" an Office stellt :)
Grüße aus Hamburg
|