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

Forumthread: Nach Teilstring suchen und Zeile verschieben

Nach Teilstring suchen und Zeile verschieben
20.03.2017 10:28:19
Michael
Servus,
ich habe hier ein kleines Problem. Ich beschäftige mich erst seit einer Woche mit VBA, also bitte um Nachsicht...
Und zwar:
ich möchte eine Spalte durchsuchen und wenn eine Zelle einen bestimmten Teilstring enthält die komplette Zeile "verschieben" (kopieren-einfügen-löschen)
Leider kriege ich das aber überhaupt nicht zum laufen, ich wäre für jede Hilfe oder andere Ansätze(Find-funktion?) dankbar...
Nachfolgend der Teil meines Codes
-----------------
rowNr = 2
suche = "LG"
Range("AD" & rowNr).Select
Do Until ActiveCell.Value = ""
b = WorksheetFunction.IsNumber(WorksheetFunction.Search(CStr(suche), CStr(ActiveCell.Value)))
If b = True Then
Rows(CStr(rowNr & ":" & rowNr)).Select
Selection.Copy
Sheets(3).Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
Sheets(1).Select
Rows(CStr(rowNr & ":" & rowNr)).Select
Selection.Delete Shift:=xlUp
rowNr = rowNr - 1
End If
rowNr = rowNr + 1
ActiveCell.Offset(1, 0).Select
Loop
-------------------------------------
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Teilstring suchen und Zeile verschieben
20.03.2017 11:04:36
ChrisL
Hi Michael
Find wäre eine Möglichkeit, aber das scheinbar nur eine Zelle geprüft wird (Spalte AD), reicht auch ein Instr(). Bei grossen Datenmengen könnte man sich noch andere Methoden (z.B. Autofilter) überlegen, aber hier mal der Schleifen-Ansatz:
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim strSuche As String
Dim iZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
strSuche = "LG"
Application.ScreenUpdating = False
For iZeile = WS1.Cells(Rows.Count, 30).End(xlUp).Row To 2 Step -1
If InStr(1, UCase(WS1.Cells(iZeile, 30)), UCase(strSuche)) > 0 Then
WS1.Rows(iZeile).Copy WS2.Rows(WS2.Cells(Rows.Count, 30).End(xlUp).Offset(1, 0).Row)
WS1.Rows(iZeile).Delete
End If
Next iZeile
End Sub

cu
Chris
Anzeige
AW: Nach Teilstring suchen und Zeile verschieben
20.03.2017 12:29:39
Michael
Servus Chris,
vielen Dank für die rasche Hilfe, ich habe es nochmal angepasst an meine Struktur, (mega kompliziert,aber dann bleibt das ganze Makro einheitlich, leider kenne ich mich mit manchen "praktischeren" Befehlen noch zu wenig aus.
So ging es jetzt wie gesagt
bis bald
VG
M
------------------
rowNr = 2
suche = "LG"
Range("AD" & rowNr).Select
Do Until ActiveCell.Value = ""
If InStr(1, UCase(ActiveCell.Value), UCase(suche)) > 0 Then
Rows(CStr(rowNr & ":" & rowNr)).Select
Selection.Copy
Sheets(3).Select
Range("A1").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
Sheets(1).Select
Rows(CStr(rowNr & ":" & rowNr)).Select
Selection.Delete Shift:=xlUp
rowNr = rowNr - 1
End If
rowNr = rowNr + 1
Range("AD" & rowNr).Select
Loop
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