Thema Datum  Von Nutzer Rating
Antwort
Rot Suche1, dann Suche2 und zurück zur Suche1 - möglich?
30.01.2020 20:51:21 ValenVanHel
Solved
30.01.2020 23:57:12 Gast5138
*
NotSolved
31.01.2020 00:24:11 Gast82321
NotSolved
31.01.2020 07:54:45 ValenVanHel
NotSolved
31.01.2020 17:08:25 Gast82321
NotSolved
03.02.2020 09:14:28 ValenVanHel
NotSolved
03.02.2020 17:34:56 Gast26204
NotSolved
04.02.2020 08:41:05 ValenVanHel
Solved
04.02.2020 14:06:16 Gast99338
NotSolved
04.02.2020 23:55:14 Gast82321
NotSolved
04.02.2020 23:58:05 Gast82321
NotSolved

Ansicht des Beitrags:
Von:
ValenVanHel
Datum:
30.01.2020 20:51:21
Views:
1082
Rating: Antwort:
 Nein
Thema:
Suche1, dann Suche2 und zurück zur Suche1 - möglich?

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Suche1, dann Suche2 und zurück zur Suche1 - möglich?
30.01.2020 20:51:21 ValenVanHel
Solved
30.01.2020 23:57:12 Gast5138
*
NotSolved
31.01.2020 00:24:11 Gast82321
NotSolved
31.01.2020 07:54:45 ValenVanHel
NotSolved
31.01.2020 17:08:25 Gast82321
NotSolved
03.02.2020 09:14:28 ValenVanHel
NotSolved
03.02.2020 17:34:56 Gast26204
NotSolved
04.02.2020 08:41:05 ValenVanHel
Solved
04.02.2020 14:06:16 Gast99338
NotSolved
04.02.2020 23:55:14 Gast82321
NotSolved
04.02.2020 23:58:05 Gast82321
NotSolved