Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Problem mit Suchfunktion in vba

Problem mit Suchfunktion in vba
23.11.2006 08:35:42
Alexander
Hy,
ich möchte eine Suchfunktion!
Wie folgt:
In Sheet 'Sammeln' habe ich eine Liste, drei Spalten, aus der er den Wert aus Zelle 1 und Zelle 3 in Sheet Import_Kunde finden soll und dann die Zeile ausschneiden in Sheet 'Import_Kunde'.
Problem für ist aber, die Beiden Werte, die er finden soll stehen in der selben Zeile, in verschiedenen Spalten und können mehrmals vorkommen, aber in anderen kombinationen.
Es kann also nicht vorkommen, das in zwei oder Zeilen die selben daten stehen, nur andere.
lz_Lief = Letzte Zeile
Tabelle 'Sammeln'
Spalte 1 Spalte 2 Spalte 3
123456 445544554 55545587
1225458 457855455 63556554
12545588 5455875 85454567
Tabelle 'Import_Kunde'
Spalte F (Wert aus Spalte 3) Spalte T (Wert aus Spalte 1)
55545587 123456
85454567 12545588
Mein Code:
For t = lz_Lief To 4 Step -1
Such = Cells(t, 1).Text 'Suche setzten
Such2 = Cells(t, 3).Text 'Suche setzten
With Worksheets("Import_Baur").Range("F1:T5000")
Set c2 = .Find(Such2, LookIn:=xlValues)
Set c = .Find(Such, LookIn:=xlValues)
If Not c Is Nothing And Not c2 Is Nothing Then
firstaddress = c.Address
firstaddress2 = c2.Address
If firstaddress firstaddress2 Then
!!!!!!!!!!!!!!!!
!!!!!Leider sinddie immer Unterschiedlich $T$246 und $F$246
!!!!!!!!!!!!!!!!!
Set c = .FindNext(c)
firstaddress = c.Address
Application.Run "Ausschneiden"
Else
Application.Run "Ausschneiden"
End If
End If
End With
Next t
End Sub
Sub Ausschneiden()
Bereich = Mid(firstaddress, 4, 4)
Sheets("Import_Baur").Select
Rows(Bereich).Select
Selection.Cut
Sheets("verplant").Select
Range("a" & t).Select
ActiveSheet.Paste
Sheets("Sammeln").Select
Rows(t).Delete Shift:=xlUp
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Suchfunktion in vba
23.11.2006 17:40:37
fcs
Hallo Alexander,
grundsätzlich muss du bei deiner Suche ja Vergleichen, ob die Zeilen der gefundenen Zellen identisch sind.
Da die Suchbegriffe ja mehrmals im Suchbereich vorkommen können, muss du meiner Meinung nach das Ganze in zwei Schleifen schachteln. Für jede mit Begriff such gefundene Zelle c muss du immer wieder alle Zellen nach Begriff such2 durchsuchen.
Außerdem solltest du die Parameter an die Prozedur "Ausschneiden" als Variablen übergeben, oder die paar Zeilen direkt im Hauptcode einbauen.
Ungetestet könnte der Code etwa so aussehen, wobei ich mir nicht 100% sicher bin, ob die Verschachtelung der beiden Find-Anweisungen so reibungslos funktioniert.
Gruß
Franz

Sub test()
Dim c As Range, c2 As Range
For t = lz_Lief To 4 Step -1
such = Cells(t, 1).Text 'Suche setzten
such2 = Cells(t, 3).Text 'Suche setzten
With Worksheets("Import_Baur").Range("F1:T5000")
Set c = .Find(such, LookIn:=xlValues)
Set c2 = .Find(such2, LookIn:=xlValues)
If Not c Is Nothing And Not c2 Is Nothing Then
firstaddress = c.Address
Do
Set c2 = .Find(such2, LookIn:=xlValues)
firstaddress2 = c2.Address
Do
If c.Row = c2.Row Then 'Suchbegriffe in gleicher Zeile gefunden
Call Ausschneiden(c.Row, t)
GoTo nexte_t
End If
Set c2 = .FindNext(c2)
Loop Until c2.Address = firstaddress2 Or c2 Is Nothing
Set c = .Find(What:=such, After:=c, LookIn:=xlValues)
Loop Until c.Address = firstaddress Or c Is Nothing
MsgBox "keine Übereinstimmung für " & such & " und " & such2 & "gefunden."
End If
End With
nexte_t:
Next t
End Sub
Sub Ausschneiden(ByRef Zeile As Integer, ByVal Zaehler As Integer)
Sheets("Import_Baur").Select
Rows(Zeile).Select
Selection.Cut
Sheets("verplant").Select
Range("a" & Zaehler).Select
ActiveSheet.Paste
Sheets("Sammeln").Select
Rows(Zaehler).Delete Shift:=xlUp
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige