Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1216to1220
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Find Funktion in VBA
kiki
Hallo zusammen,
ich habe eine Frage zur Find Funktion in einer ziemlich großen Datei. Ich habe zwei Tabellenblätter. In Tabelle2 habe ich in Saplte A eine Liste mit ca. 20000 numerischen Einträgen. In Spalte B,C,D sind zu einigen dieser Einträge entsprechende Werte zugehörig. Die Werte aus Spalte A möchte ich nun einzeln durchgehen und jeden in Tabelle1, Spalte A suchen. Wenn es den Wert gibt, sollen die zugehörigen Werte aus Spalte B,C,D auch in Tabelle1 hinzugefügt werden.
In der Beispielmappe habe ich mit der Find Funktion versucht ie Aufgabe zu lösen, aber natürlich klappt es nicht:-)
https://www.herber.de/bbs/user/75369.xls
Ich weiß, der Code ist ziemlich dilettantisch, aber irgendwie muss man ja anfangen.
Ich bin für jede Hilfe sehr dankbar,
Viele Grüße,
kikimat

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Find Funktion in VBA
20.06.2011 13:29:40
Rudi
Hallo,
Sub Kopieren()
Dim m As Integer
Dim wsBasis As Worksheet
Dim wsAktuell As Worksheet
Dim rngC As Range, rngF As Range
Set wsAktuell = ThisWorkbook.Worksheets("Tabelle1")
Set wsBasis = ThisWorkbook.Worksheets("Tabelle2")
Application.ScreenUpdating = False
With wsAktuell
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngF = wsBasis.Columns(1).Find(rngC, lookat:=xlWhole)
If Not rngF Is Nothing Then
For m = 1 To 3
If rngF.Offset(, m)  "" Then rngC.Offset(, m) = rngF.Offset(, m)
Next m
End If
Next
End With
End Sub

Gruß
Rudi
Anzeige
AW: Find Funktion in VBA
20.06.2011 14:35:04
kiki
Hallo Rudi,
vielen Dank, es funktioniert prima. Kleine Frage noch, ich möchte die Werte aus Tabelle1, die nicht in Tabelle2 auftauchen in eine Extraliste in Tabelle3 schreiben. Kann ich das in die If Schleife noch einbauen? Also wenn der Wert aus Tabelle1 nicht in Tabelle2 gefunden wird, dann wird er in Tabelle3 in eine Liste untereinander geschrieben. Ich habe versucht den Code zu ergänzen, aber es funktioniert nicht.
https://www.herber.de/bbs/user/75372.xls
Gruß, Kiki
AW: Find Funktion in VBA
20.06.2011 14:58:28
Rudi
Hallo,
      Else
wsListe.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = rngC

Gruß
Rudi
Anzeige
AW: Find Funktion in VBA
21.06.2011 09:42:17
kiki
Hallo,
er kopiert mir nun leider die gesamte Liste in die neue Tabelle und nicht nur die Einträge, die er in wsBasis nicht findet. Woran kann denn das liegen?
Gruß, kiki
AW: Find Funktion in VBA
21.06.2011 11:32:48
Rudi
Hallo,
bei mir nur alle aus Tab1, die in Tab2 nicht vorhanden sind.
Sub Kopieren()
Dim m As Integer
Dim wsBasis As Worksheet
Dim wsAktuell As Worksheet
Dim wsListe As Worksheet
Dim rngC As Range, rngF As Range
Set wsAktuell = ThisWorkbook.Worksheets("Tabelle1")
Set wsBasis = ThisWorkbook.Worksheets("Tabelle2")
Set wsListe = ThisWorkbook.Worksheets("Tabelle3")
Application.ScreenUpdating = False
With wsAktuell
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngF = wsBasis.Columns(1).Find(rngC, lookat:=xlWhole)
If Not rngF Is Nothing Then
For m = 1 To 3
If rngF.Offset(, m)  "" Then rngC.Offset(, m) = rngF.Offset(, m)
Next m
Else
wsListe.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = rngC
End If
Next
End With
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
Anzeige
AW: Find Funktion in VBA
21.06.2011 19:26:48
kiki
Hallo Rudi,
tut mir leid, der Fehler lag in meiner Original Datei, da dort in der ersten Spalte keine Festwerte sind sondern Formeln. Mit Lookin xlValues hat es jetzt geklappt.
Vielen Dank für Deine Hilfe!!
Gruß, Kiki

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige