Hallo zusammen,
benötige folgende Lösung:
In einer Tabelle stehen in unterschiedlichen Zellen die gleichen Inhalte. Wenn nun dieser Inhalt gefunden wird, soll die komplette Spalte kopiert werden und in ein extra Blatt eigefügt werden. Suchfunktion startet sooft wie der Wert in der Tabelle enthalten ist.
Hoffe es versteht jemand was ich will
)
Jedefalls vielen Dank im voraus
Euer Dr. Sandor
In einer Tabelle stehen in unterschiedlichen Zellen die
gleichen Inhalte. Wenn nun dieser Inhalt gefunden wird, soll
die komplette Spalte kopiert werden und in ein extra Blatt
eigefügt werden. Suchfunktion startet sooft wie der Wert in
der Tabelle enthalten ist.
Hallo Sandor,
Alt+F11, Einfügen Modul, Code reinkopieren, VB-Editor schließen.
Makro mit Alt+F8… ausführen.
Gruß
Reinhard
Sub tt()
Dim c, firstaddress, wks1 As Worksheet, wks2 As Worksheet, Spa As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
With wks1.UsedRange
Set c = .Find("xyz", LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Spa = Spa + 1
c.EntireColumn.Copy Destination:=wks2.Cells(1, Spa)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstaddress
End If
End With
End Sub
Hallo Reinhard,
- vielen Dank für deine Hilfe.
Nur es funzt nich.
Hier ein kleines Beispiel:
Spalte a Spalte b Spalte c Spalte d
1 a b c
2 z t x
3 w 3 y
4 7 d z
5 9 j k
Bei Suche „Z“ Ergebniss:
2 z t x
4 7 d z
Ich hoffe, jetzt ist klar was ich benötige.
Thx to all
Grüsse Dr.Sandor
Spalte a Spalte b Spalte c Spalte d
1 a b c
2 z t x
3 w 3 y
4 7 d z
5 9 j k
Bei Suche „Z“ Ergebniss:
2 z t x
4 7 d z
Ich hoffe, jetzt ist klar was ich benötige.
Hallo Dr.,
Scherzkeks 
In deiner Anfrage stand „…soll die komplette Spalte kopiert werden…“
Was du willst ist „…soll die komplette Zeile kopiert werden…“
Minimalstrafe für so einen Fauxpaux ist wie im Film aller Filme, zieh dich selbst am Ohr, schnapp dir Kreide und gehe runter und schreibe an die Häuserwände 100mal „Ich soll nicht Spalte sagen wenn ich zeile meine“, natürlich auf Lateinisch 
Nachfolgend der neue Code.
Achja, wenn du Einrückungen in Tabellen, Codes erhalten willst wenn du sie hier zeigst, benutze den Pre-Tag, wird unterhalb des Eingabefensters erläutert.
Gruß
Reinhard
Option Explicit
Sub tt()
Dim c, firstaddress, wks1 As Worksheet, wks2 As Worksheet, Zei As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
With wks1.UsedRange
Set c = .Find("xyz", LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Zei = Zei + 1
c.EntireColumn.Copy Destination:=wks2.Cells(Zei, 1)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstaddress
End If
End With
End Sub
Hallo Dr.,
sorry, war noch ein Fehler im Code, nimm bitte diesen.
Gruß
Reinhard
Option Explicit
Sub tt()
Dim c, firstaddress, wks1 As Worksheet, wks2 As Worksheet, Zei As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
With wks1.UsedRange
Set c = .Find("xyz", LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
Zei = Zei + 1
c.EntireRow.Copy Destination:=wks2.Cells(Zei, 1)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstaddress
End If
End With
End Sub