AW: Tabelle durchsuchen und Werte kopieren
09.03.2007 05:42:57
fcs
Hallo Uwe,
hier zwei Varianten.
In der 1. Variante kannst du die Suchbegriffe in einer Schleife nacheinander in eine Textbox eingeben.
In der 2. Variante sind die Suchbegriffe fest vorgegeben. Weitere Suchbegriffe kannst du in der Zeile
Suchen = Array("Metall", "Kupfer")
ergänzen
Gruss
Franz
Sub SuchenVar1()
Dim wks1 As Worksheet, wks2 As Worksheet, Zelle As Range, Suchen
Dim Zeile As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
Zeile = 2 'Einfügezeile in Tabelle 2
wks2.Rows(Zeile).ClearContents 'alte Inhalte in Einfügezeile löschen
Do
Suchen = InputBox("Suchbegriff?", "Suche was in Tabelle 1")
If Suchen = "" Then GoTo naechste
Set Zelle = wks1.Range("A1:G500").Find(What:=Suchen, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox ("Suchbegriff '" & Suchen & "' nicht gefunden")
Else
With wks2
If IsEmpty(.Cells(Zeile, 1)) Then
.Cells(Zeile, 1) = Zelle.Offset(0, 1).Value
Else
.Cells(Zeile, .Columns.Count).End(xlToLeft).Offset(0, 1) = Zelle.Offset(0, 1).Value
End If
End With
End If
naechste:
Loop Until MsgBox("Weiter suchen ?", vbYesNo + vbQuestion, "Suche was in Tabelle 1") = vbNo
End Sub
Sub SuchenVar2()
Dim wks1 As Worksheet, wks2 As Worksheet, Zelle As Range, Suchen, i As Integer
Dim Zeile As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
Suchen = Array("Metall", "Kupfer")
Zeile = 2 'Einfügezeile in Tabelle 2
wks2.Rows(Zeile).ClearContents 'alte Inhalte in Einfügezeile löschen
For i = LBound(Suchen) To UBound(Suchen)
Set Zelle = wks1.Range("A1:G500").Find(What:=Suchen(i), LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox ("Suchbegriff '" & Suchen(i) & "' nicht gefunden")
Else
With wks2
If IsEmpty(.Cells(Zeile, 1)) Then
.Cells(Zeile, 1) = Zelle.Offset(0, 1).Value
Else
.Cells(Zeile, .Columns.Count).End(xlToLeft).Offset(0, 1) = Zelle.Offset(0, 1).Value
End If
End With
End If
Next
End Sub