AW: Werte aus Zellen in "Value Like" übergeben
05.10.2012 04:57:28
fcs
Hallo Micha,
wenn alle 3 eingegebenen Werte jeweils in der Zelle in Spalte A vorkommen sollen, dann müssen die Suchbegriffe mit zusätzlichen "*" versehen werden. (Variante 1)
Wenn die Werte in Spalte A mit den ersten beiden Begriffen beginnen sollen, gefolgt vom 3. im restlichen Text dann muss du den Suchtext aus den 3 Werten zusammensetzen und vergleichen. (Variante 2)
Gruß
Franz
Beispiel:
Tabellenblattname: Tabelle1
A B C
1 035 Wstumpf 0123 1 Zeile 001
2 035 Wstumpf12 2 Zeile 002
3 038 Wstumpf0123 2 Zeile 003
4 035 Xstumpf0123 1 Zeile 004
5 135 Wstumpf0123 3 Zeile 005
6 035 Wstumpf011 4 Zeile 006
7 035 Wstiel0121 5 Zeile 007
8 A035 Wstumpf012 2 Zeile 008
9 035 Wsstumpfa012 3 Zeile 009
10 0d35 Wstumpf0123 1 Zeile 010
Ergebnis mit Makro Variante 1 (mit Variante 2 wird die letzte Zeile nicht kopiert):
Tabellenblattname: Tabelle2
A B C
1 035 W stumpf 12
2
3
4
5 035 Wstumpf 0123 1 Zeile 001
6 035 Wstumpf12 2 Zeile 002
7 035 Wsstumpfa012 3 Zeile 009
Sub WDVS() 'Variante 1
Dim a As Long, i As Long
Dim Such_1 As String, Such_2 As String, Such_3 As String
Application.ScreenUpdating = False
a = 5
With Worksheets("Tabelle2")
Such_1 = .Cells(1, 1).Text & "*"
Such_2 = "*" & .Cells(1, 2).Text & "*"
Such_3 = "*" & .Cells(1, 3).Text & "*"
If .Cells(a, 1) "" Then
.Range(.Cells(a, 1), .Cells(.Rows.Count, 1).End(xlUp)).EntireRow.Delete
End If
End With
With Worksheets("Tabelle1")
For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(i, 1).Value Like Such_1 _
And .Cells(i, 1).Value Like Such_2 _
And .Cells(i, 1).Value Like Such_3 Then
.Rows(i).Copy Destination:=Worksheets("Tabelle2").Rows(a)
a = a + 1
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
Sub WDVS2() 'Variante 2
Dim a As Long, i As Long
Dim Such_1 As String
Application.ScreenUpdating = False
a = 5
With Worksheets("Tabelle2")
Such_1 = .Cells(1, 1).Text & .Cells(1, 2).Text & "*" & .Cells(1, 3).Text & "*"
If .Cells(a, 1) "" Then
.Range(.Cells(a, 1), .Cells(.Rows.Count, 1).End(xlUp)).EntireRow.Delete
End If
End With
With Worksheets("Tabelle1")
For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(i, 1).Value Like Such_1 Then
.Rows(i).Copy Destination:=Worksheets("Tabelle2").Rows(a)
a = a + 1
End If
Next i
End With
Application.ScreenUpdating = True
End Sub