Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
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

teilstring suchen nachfolgende zellen nach links

teilstring suchen nachfolgende zellen nach links
17.10.2008 12:26:00
maruseru
Hallo werte Profis
Ich konsolidiere zwangzig Arbeitsblätter mit je etwa 1000 Zeilen in ein Arbeitsblatt.
Leider haben vier der Arbeitsblätter jeweils eine Spalte mehr, dessen Inhalt ich nicht brache.
Nun möchte ich im konsolidierten Arbeitsblatt per Marko folgendes lösen:
Suche in Spalte H Teilstring "@firma"
Lösche zelle und verschiebe die nachfolgenden Zellen nach links
Wiederholen bis nichts mehr gefunden
Eventuell geht auch alle Zellen mit Teilstring markiern und dann löschen und verschieben
Danke und Gruss
Maruseru

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:37:00
JogyB

Sub deleteRedundant()
Dim i As Long
For i = 2 To ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row
If InStr(1, ActiveSheet.Cells(i, 8), "@firma")  0 Then
ActiveSheet.Cells(i, 8).Delete Shift:=xlToLeft
End If
Next
End Sub


Gruss, Jogy

AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:40:23
Rudi
Hallo,
das kann bei 20.000 Zeilen aber dauern.
Gruß
Rudi
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:54:52
JogyB
Hi.
Da er das nur ein Mal ausführt, ist das relativ egal. Und 20s auf meinem Notebook mit einem 2.4 Ghz C2D finde ich jetzt nicht sonderlich lang - ist jetzt für die Version mit ausgeschaltetem ScreenUpdating.
Die Version mit dem Union läuft dagegen wirklich recht lang (hätte gedacht, dass die schneller ist), aber in 2 Minuten ist es auch erledigt.
Gruss, Jogy
Anzeige
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:44:16
JogyB
Kleine Erweiterung: Durch Abschalten des Screenupdating läuft es etwas schneller:

Sub deleteRedundant()
Dim i As Long
Application.ScreenUpdating = False
For i = 2 To ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row
If InStr(1, ActiveSheet.Cells(i, 8), "@firma")  0 Then
ActiveSheet.Cells(i, 8).Delete Shift:=xlToLeft
End If
Next
Application.ScreenUpdating = True
End Sub


Und das Ganze noch mit nur einem Löschvorgang am Ende


Sub deleteRedundant2()
Dim i As Long
Dim myRng As Range
Application.ScreenUpdating = False
For i = 2 To ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row
If InStr(1, ActiveSheet.Cells(i, 8), "@firma")  0 Then
If myRng Is Nothing Then
Set myRng = ActiveSheet.Cells(i, 8)
Else
Set myRng = Union(myRng, ActiveSheet.Cells(i, 8))
End If
End If
Next
If Not myRng Is Nothing Then myRng.Delete Shift:=xlToLeft
Application.ScreenUpdating = True
End Sub


Gruss, Jogy

Anzeige
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:38:10
Rudi
Hallo,
warum per Makro?
Sofern H komplett gefüllt ist:
Ersetzen, @firma durch nichts.
H markieren, bearbeiten-gehezu-Inhalte-Leerzellen. Zellen löschen.
Ansonsten eben in die leeren Zellen ein Sonderzeichen schreiben und hinterher wieder löschen.
Gruß
Rudi
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:57:00
JogyB
Hi.
Das ist jetzt aber auch nicht wirklich schneller als meine Makro ;)
Gruss, Jogy
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 13:03:00
Rudi
Hallo,
doch!
Während du das Makro geschrieben hast, habe ich die Arbeit schon erledigt und ein Bier getrunken.
Gruß
Rudi
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 13:15:45
JogyB
Hi.
Ich habe schon befürchtet, dass das jetzt kommt. :D
Gruss, Jogy
Anzeige
AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 12:40:07
fcs
Hallo maruseru,
Beispielcode:

Sub firmaSuchen()
'in Spalte H nach "@firma" suchen, _
Fundstellen löschen und Zellen in Zeile nach links aufrücken
Dim wks As Worksheet
Dim lngZeile As Long
Set wks = ActiveSheet
With wks
For lngZeile = 1 To .Cells(.Rows.Count, 8).End(xlUp).Row
If InStr(1, .Cells(lngZeile, 8), "@firma") > 0 Then
.Cells(lngZeile, 8).Delete shift:=xlToLeft
End If
Next
End With
End Sub


gruß
Franz

AW: teilstring suchen nachfolgende zellen nach links
17.10.2008 13:07:00
maruseru
Allen recht herzlichen Dank
Funktioniert wunderbar und mit der Anmerkung von Rudi kann ich gleich noch die leeren zellen entfernen.
Schönes Wochenende
Maruseru
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige