Excel: unliebsame Zeilen rausschmeißen.

Dieses Thema Excel: unliebsame Zeilen rausschmeißen. im Forum "Microsoft Office Suite" wurde erstellt von klexy, 14. Okt. 2004.

Thema: Excel: unliebsame Zeilen rausschmeißen. Ich steh voll am Bahnhof und der Zug ist ziemlich abgefahren. So sieht es aus: hfswrczak hfswrczak hfswrczak...

  1. Ich steh voll am Bahnhof und der Zug ist ziemlich abgefahren.
    So sieht es aus:

    hfswrczak
    hfswrczak
    hfswrczak
    hfswrczak
    hfswrczak
    1
    2
    3
    7
    9
    hfswrczak
    1
    2
    5
    6
    hfswrczak
    7
    8
    9
    hfswrczak
    4
    5
    6

    Durch den bisherigen Verlauf des Makros habe ich alle unliebsamen Zeilen der Tabelle mit hfswrczak in der Spalte A gekennzeichnet. Jetzt soll das Makro im weiteren Verlauf der Handlung alle Zeilen, die hfswrczak in Spalte A haben, löschen. Das sieht dann so aus:
    Code:
      For Each zelle In Range(A1:A10000)
        If zelle.Value = hfswrczak Then
        zelle.EntireRow.Select
        Selection.Delete Shift:=xlUp
        End If
      Next
    Diesen Code-Schnipsel habe ich von Matjes geklaut ;D, also muß er auch funktionieren.
    Aber: im oberen Bereich, wo die unliebsamen Zeilen unmittelbar aufeinander folgen, löscht er nur jede 2. Zeile. Ich könnte dieses Modul jetzt 20x hintereinander in mein Makro reinkopieren, aber das ist selbst mir zu unelegant.

    [o.T.] Hfswrczak ist übrigens der kaputteste Bandname, den ich je gehört habe. Wahrscheinlich gibt es sie schon lange nicht mehr. Deshalb setze ich den Jungs hier ein Denkmal.
     
  2. Hi klexy,

    in welchem Zusammenhang hab ich so gelöscht :mad:
    ( :eek: Alzheimer )

    Viel größere Schwierigkeit hab ich mit dem Bandnamen Hfswrczak. Wie spricht man das aus ? (Bitte in Lautschrift)

    Damit diese unaussprechliche Band nicht in 20 Anlaufen verschwindet, hier 2 Lösungsmöglichkeiten, bei denen ich kein Alzheimer bekommen werde. ;D

    Gruß Matjes ;)

    @klexy: auch mit Dim ;D

    Code:
     Option Explicit
    Sub KlexysMusikLoeschen1()
      Dim x As Long, l_Anz_row As Long
      Dim ws As Worksheet
      
      Set ws = ActiveSheet
        l_Anz_row = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        For x = l_Anz_row To 1 Step -1
          If ws.Cells(x, 1).Value = hfswrczak Then
            ws.Rows(x).Delete
          End If
        Next
      Set ws = Nothing
    End Sub
    
    Sub KlexysMusikLoeschen2()
      Dim Zelle As Range, r As Range
    
      Set r = ActiveSheet.Range(A1:A10000)
      Set Zelle = r.Find(hfswrczak, _
                     LookIn:=xlValues, _
                     LookAt:=xlWhole)
      Do While Not Zelle Is Nothing
        Zelle.EntireRow.Delete
        Set Zelle = r.FindNext
      Loop
      Set r = Nothing
    End Sub
     
  3. Du hast nie etwas in dieser Weise gelöscht. Es ist eine Abwandlung deiner ersten Antwort hier: http://www.wintotal-forum.de/?board=17;action=display;threadid=50197
    (Ohne Dim :D und anscheinend ohne vollen Durchblick). Wenn man mit diesem Code in jede Zelle neben hfswrczak was reinschreiben will, funktioniert es. Nur beim Löschen kommt er durcheinander. Wahrscheinlich weil er sich die Zeilennummer merkt und nach dem Löschen der aktuellen Zeile erst die übernächste für die nächste hält (weil die Zeilen nach dem Löschen neu nummeriert sind). Oder so :-\.

    Die Band spricht man: [hfswrtschak]

    Bei deiner Lösung 2 verträgt sich das Dim nicht mit dem Rest des Makros (Mehrfachdeklaration im aktuellen Gültigkeitsbereich) obwohl ich in dem Makro keinen weiteren Dim habe

    Ich habe jetzt eine Variante der Lösung 1 genommen (ohne Dim):
    Code:
    For x = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row To 1 Step -1
          If ActiveSheet.Cells(x, 1).Value = hfswrczak Then
            ActiveSheet.Rows(x).Delete
          End If
        Next
    
    Und es klappt vorherragend! ;D ;D ;D
     
  4. Hi Klexy,

    den Namen der Band auszusprechen werde ich in der kommenden Woche Urlaub :D bei mehreren Bieren üben - vielleicht geht's dann ;D

    Bei dem zweiten Beispiel verwendest Du wahrscheinlich schon eine Variable gleichen Namens. Wenn dann die Dim-Anweisung folgt ist diese Variable schon als Variant deklariert (automatisch) und der Kompiler sieht dann die Dim-Anweisung und will der Variablen einen anderen Typ zuweisen - kann er aber nicht -> deshalb das Meckern.

    So nun erstmal eine Woche Urlaub :D

    Gruß Matjes :)
     
  5. Oje, das heißt, eine Woche ohne vernünftige Makro-Unterstützung :(.

    Hoffentlich langt das Bier für die linguistischen Experimente ;D.
     
Die Seite wird geladen...

Excel: unliebsame Zeilen rausschmeißen. - Ähnliche Themen

Forum Datum
Excel-Feature gesucht Microsoft Office Suite 11. Okt. 2016
Excel Tabelle Werte zu ordnen Microsoft Office Suite 23. Sep. 2016
Excel: Bereiche auf 'leer' Überprüfen Microsoft Office Suite 15. Sep. 2016
Import Datensatz inkl = und - Zeichen in Excel/Libre CALC Software: Empfehlungen, Gesuche & Problemlösungen 20. Mai 2016
Bestimmter User kann seine Excel Dateien nicht mehr direkt öffnen Software: Empfehlungen, Gesuche & Problemlösungen 16. Apr. 2016