Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1548to1552
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
Inhaltsverzeichnis

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
-------------------------------------

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

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige