Microsoft Excel

Herbers Excel/VBA-Archiv

bestimmte Texte löschen


Betrifft: bestimmte Texte löschen von: Christian
Geschrieben am: 12.10.2017 12:52:16

Hallo.

Ich bitte um eure Hilfe.
Besser gesagt um einen Rat.

Habe einen sehr großen Bereich von M1 bis OW15729.

Ihr seht schon mein erstes Problem, das lässt sich bei einer 300 KB Grenze nicht mehr einfach so hochladen.

Mein Ziel ist es
1. alle Texte die mit https:// anfangen zu löschen.
2. nachfolgende Texte, die in derselben Zeile stehen nach links zu verschieben, damit keine Lücken übrig bleiben.
3. Die Zeilen, in denen alle Texte im o.g. Bereich gelöscht wurden (also nur noch die Spalten A bis L übrig sind) zu löschen. (Wobei man dazu sagen sollte, dass Spalte D grundsätzlich leer ist.

Was ist da der beste Weg?

Gruß und danke
Christian

  

Betrifft: AW: bestimmte Texte löschen von: yummi
Geschrieben am: 12.10.2017 13:02:58

Hallo Christian,

wen ndas eine einmalioge Aktion ist:
1. Mit suchen und ersetzen nach http* suchen und durch "" ersetzen
2. http://www.traens.com/tipps/microsoft/excel-leere-zeilen-loeschen.html

Gruß
yummi


  

Betrifft: AW: bestimmte Texte löschen von: Rudi Maintaire
Geschrieben am: 12.10.2017 13:10:34

Hallo,
wahrscheinlich nicht der beste Weg aber es ist einer.

Sub yyy()
  Dim r As Range, rDel As Range
  For Each r In Range("m1:ow15729")
    If LCase(Left(r, 8)) = "https://" Then
      If rDel Is Nothing Then
        Set rDel = r
      Else
        Set rDel = Union(rDel, r)
      End If
    End If
  Next
  If Not rDel Is Nothing Then
    rDel.Delete shift:=xlToLeft
  End If
  
  Set r = Nothing
  For Each r In Range("m1:m15729")
    If WorksheetFunction.CountA(r.Resize(, 401)) = 0 Then
      If rDel Is Nothing Then
        Set rDel = r
      Else
        Set rDel = Union(rDel, r)
      End If
    End If
  Next
  If Not rDel Is Nothing Then
    rDel.EntireRow.Delete shift:=xlUp
  End If
  
End Sub
Gruß
Rudi


  

Betrifft: AW: bestimmte Texte löschen von: Christian
Geschrieben am: 12.10.2017 14:24:36

Hallo Rudi,

irgendwann kam beim Ausführen ein Fenster in dem lediglich 400 stand.

Die Texte wurden gelöscht, an der Zeilenanzahl also Punkt 3 hat sich nichts geändert.
Habe leider keine Idee, wie ich jetzt auf die Schnelle noch prüfen kann, ob Punkt 2 komplett abgearbeitet wurde.

Gruß
Christian


  

Betrifft: AW: bestimmte Texte löschen von: Daniel
Geschrieben am: 12.10.2017 14:54:43

Hi

probier mal das, ist nicht getestet:

Sub test()
Dim ar As Range

With ActiveSheet
    With .Range(Cells(1, 13), .Cells.SpecialCells(xlCellTypeLastCell))
        '--- alle Texse mit https durch WAHR ersetzen
        .Replace "https://*", True, xlWhole
        
        '--- alle Zeilen, löschen, die in allen Zellen WAHR enthalten
        With .Columns(.Columns.Count + 1)
            .FormulaR1C1 = "=IF(CountIf(RC13:RC[-1],true)=Columns(RC13:RC[-1]),0,Row())"
            .Cells(1, 1).Value = 0
            .EntireRow.RemoveDuplicates .Column, xlNo
            .ClearContents
        End With
        
        '--- alle Zellen mit WAHR löschen und nachfolgende nach links rücken
        For Each ar In .SpecialCells(xlCellTypeConstants, 4).Areas
            ar.Delete shift:=xlToLeft
        Next
    End With
End With
    
End Sub
Gruß Daniel


  

Betrifft: AW: bestimmte Texte löschen von: Christian
Geschrieben am: 12.10.2017 21:24:17

Hallo Daniel,

sorry das ersetzen hat noch geklappt, es gibt auch einige WAHRS die gelöscht wurden.

Aber es sind auch welche übrig geblieben.
Und Zeilen gelöscht wurden gar keine, auch wenn es jetzt durchaus Zeilen gibt, in denen nur noch Inhalt in den Spalten A:L gibt.

Gruß
Christian

Fehlermeldungen gab es keine.


  

Betrifft: AW: bestimmte Texte löschen von: Daniel
Geschrieben am: 12.10.2017 21:36:24

dann vielleicht so:

Sub löschen()

Dim c As Long

With ActiveSheet
    With .Range(Cells(1, 13), .Cells.SpecialCells(xlCellTypeLastCell))
        '--- alle Texse mit https durch WAHR ersetzen
        .Replace "https://*", True, xlWhole
        
        '--- alle Zellen mit WAHR löschen und nachfolgende nach links rücken
        For c = .Columns.Count To 1 Step -1
            .Columns(c).SpecialCells(xlCellTypeConstants, 4).Delete shift:=xlToLeft
        Next
        
        '--- alle Zeilen, löschen, die in allen Zellen WAHR enthalten
        With .Columns(.Columns.Count + 1)
            .FormulaR1C1 = "=IF(CountA(RC13:RC[-1],true)=0,0,Row())"
            .Cells(1, 1).Value = 0
            .EntireRow.RemoveDuplicates .Column, xlNo
            .ClearContents
        End With
        
    End With
End With
    
End Sub
Gruß Daniel


  

Betrifft: korrektur von: Daniel
Geschrieben am: 12.10.2017 21:37:38

sorry, fehler im Code
das ist der richtige:

Sub löschen()

Dim c As Long

With ActiveSheet
    With .Range(Cells(1, 13), .Cells.SpecialCells(xlCellTypeLastCell))
        '--- alle Texse mit https durch WAHR ersetzen
        .Replace "https://*", True, xlWhole
        
        '--- alle Zellen mit WAHR löschen und nachfolgende nach links rücken
        For c = .Columns.Count To 1 Step -1
            .Columns(c).SpecialCells(xlCellTypeConstants, 4).Delete shift:=xlToLeft
        Next
        
        '--- alle Zeilen, löschen, die in allen Zellen WAHR enthalten
        With .Columns(.Columns.Count + 1)
            .FormulaR1C1 = "=IF(CountA(RC13:RC[-1])=0,0,Row())"
            .Cells(1, 1).Value = 0
            .EntireRow.RemoveDuplicates .Column, xlNo
            .ClearContents
        End With
        
    End With
End With
    
End Sub



Beiträge aus den Excel-Beispielen zum Thema "bestimmte Texte löschen"