Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht

Diskutiere und helfe bei Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo, ich mache meine ersten VBA-Versuche und scheitere nun bei einer Kleinigkeit, wie ich denke, aber ich finde das Problem einfach nicht. Ich... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Eva.Lisa, 19. September 2017.

  1. Eva.Lisa
    Eva.Lisa Gast

    Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht


    Hallo,


    ich mache meine ersten VBA-Versuche und scheitere nun bei einer Kleinigkeit, wie ich denke, aber ich finde das Problem einfach nicht.


    Ich möchte in einer Excel-Tabelle Zeilen löschen, die in einer bestimmten Spalte einen definierten Wert haben. Excel soll dafür die Tabelle filtern und die Zeilen löschen, das hat zuerst auch gut geklappt, dann habe ich aber festgestellt, dass die erste Zeile mit gelöscht wurde, was natürlich als Tabellenkopf nicht sein soll. Nun habe ich weiter gebastelt, zuerst bekam ich den Fehler Objekt nicht defniert (oder so ähnlich) und jetzt bekomme ich den folgenden Fehler:

    "Fehler beim kompilieren:

    unzulässiger oder nicht ausreichend definierter Verweis"


    Die Größe der Tabelle soll variabel erkannt werden. Nach dem löschen der Zeilen soll im Filter wieder alles angezeigt werden.


    Bis zum filtern (der zu löschenden Werte) funktioniert das nachfolgende Makro, danach kommt der Fehler:

    ---------------

    Sub stornierte_entfernen()
    '
    ' stornierte_entfernen Makro
    '

    '
    ActiveSheet.Range("a1").End(xlDown).End(xlToRight).AutoFilter Field:=3, Criteria1:= _
    "STORNIERT"
    .UsedRange("b1").End(xlDown).End(xlToRight).Select.SpecialCells(xlCellTypeVisible).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("a1").End(xlDown).End(xlToRight).AutoFilter Field:=3
    End Sub

    --------------


    Ich hoffe das war ausreichend klar beschrieben. Kann mir jemand weiterhelfen?


    Viele Grüße
     
  2. Claus Busch Win User

    Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht

    Hallo Eva,

    was genau willst du machen? Mit LRow ist dein Bereich doch dynamisch an die Zeilenanzahl angepasst.

    Wenn du einen dynamischen Bereichsnamen erstellen willst, lass doch einfach die Überschrift aus dem Bereich raus. Wenn "Endtermin" in Spalte D ist, dann vergebe den Namen Endtermin und schreibe bei bezieht sich auf:

    =BEREICH.VERSCHIEBEN($D$2;;;ANZAHL2($D:$D)-1)

    Damit hast du immer die komplette Spalte ohne Überschrift. Fur die Zelle davor kannst du dann auch einen Namen vergeben und bei "Bezieht sich auf" eingeben:

    =BEREICH.VERSCHIEBEN(Endtermin;;-1)

    Dann kannst du diesen Namen im Makro verwenden.

    Wenn du es auf deine Weise machen willst, musst du von der ersten Zelle des Bereichs ausgehen:

    Range("Endtermin").Cells(1).Offset(1, -1).Resize(LRow-1).Select

    Claus
  3. Eva.Lisa Win User

    Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht

    Hallo,

    ich habe noch einmal eine Frage... die Angabe des Bereichs Range finde ich sehr schwierig, wenn man mit dynamischen Bezügen arbeiten will, damit habe ich mich in verschiedenen Varianten schon den ganzen Tag geplagt.

    Ich habe eine Spalte, der Name dessen erster Zeile (also quasi Spaltenüberschrift) ist "Endtermin", das habe ich mir so benannt, um die Bezüge zu vereinfachen. In der Spalte davor (diese wird automatisch erstellt, das klappt auch, damit ist der Bezug dynamisch,
    auch wenn im folgenden mit "-1" der Bezug nur relativ ist) möchte ich nun ab Zeile zwei bis zum Ende der Tabelle (mit LRow) eine Formel einfügen.

    Das mit der Formel werde ich schon hinbekommen, aber ich habe im folgenden einfach schrittweise versucht die Bereich zu markieren, um zu überprüfen, ob ich den Bereich richtig definiert habe.

    ------

    Sub Testmakro()

    Dim LRow As Long



    With ActiveSheet



    LRow = Cells(Rows.Count, "A").End(xlUp).Row

    .Range(("Endtermin").Offset(1, -1).EntireColumn)& LRow).Select

    'Offset soll mich hier von der Zelle Endtermin 1 nach links und 1 nach unten bewegen, von dort die ganze Spalte hinunter bis zur letzten definierten Reihe gemäß LRow



    End With



    End Sub

    ------------------------

    Ich habe diverse unterschiedliche Eingaben nach der Funktion Range ausprobiert, um die Analogie herzustellen zur Eingabe von Claus' letztem Lösungsvorschlag [Range("C2:C" & LRow)], aber es werden mir immer wieder unterschiedliche Fehler gegeben. Ich habe
    es mit Kommata, Und-Zeichen etc. probiert, leider hat nichts zum gewünschten Ergebnis geführt...

    Würde mich über nochmalige Hilfe freuen.

    Danke und viele Grüße
  4. Claus Busch Win User

    Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht

    Hallo Eva,

    dann verwende den geposteten VBA-Befehl.

    Oder ändere den Bezug für den Namen Endtermin auf:

    =BEREICH.VERSCHIEBEN($A$2;;VERGLEICH("Endtermin";$A$1:$Z$1;0)-1;ANZAHL2($A:$A)-1)

    Claus
  5. Eva.Lisa Win User

    Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht

    Ja super, vielen Dank! Jetzt macht es für mich Sinn und ich kann es beim nächsten Versuch besser anwenden :)
  6. Claus Busch Win User

    Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht

    Hallo Eva,

    [i]Dim LRow As Long, LCol As Long     [b]'Letzte belegte Zeile, letzte belegte Spalte[/b][/i]
    
    [i][b]'Mit Dim lege ich eine Variable fest, die ich verwenden möchte. Mit As definiere ich diese, Long steht dabei für eine Ganzzahl.[/b][/i][i]With ActiveSheet[/i]
    
    [i][b]'with bezeichnet das Objekt, das ich im folgenden verwende[/b][/i]
    
    [i]    LRow = .Cells(.Rows.Count, 1).End(xlUp).Row[/i]    [b]'Cells hat immer zwei Argumente, zuerst Zeile dann Spalte. Es werden also die Zellen der Spalte 1 (A) von unten her         'gezählt.
    [/b][b]Das ist zuverlässiger als von oben wegen eventueller Leerzellen.[/b]   [i]    LCol = .Cells(1, Columns.Count).End(xlToLeft).Column[/i]     [b]'Hier das Gleiche. Es werden in der ersten Zeile die Spalten von rechts nach links gezählt[/b]    [i]    .Range(.Cells(1, 1), .Cells(LRow, LCol)).AutoFilter Field:=3, Criteria1:="STORNIERT"[/i]       [b]'Hier wird ein Bereich beschrieben mit Range(erste Zelle, letzte Zelle). Die Zelle A1 (1,1) ist die erste, die             'letzte Zelle wird mit der letzten gefüllten Zeile und Spalte beschrieben.[/b]   [i]    .Range("A2:A" & LRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete[/i]
    
        [i][b]'im Bereich A ab der zweiten Zeile sollen alle sichtbaren Zeilen gelöscht werden[/b][/i]
    
    [i]    .AutoFilterMode = False[/i]
    
        [i][b]'Abschaltung des Autofilters[/b][/i][i]End With[/i][i]End Sub[/i]
    reicht dir das so?

    Claus
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht - Microsoft Office

Die Seite wird geladen...

Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht - Similar Threads - Makro Excel bestimme

Forum Datum

Nach jeder Zeile 3 Leerzeilen - Excel Makro

Nach jeder Zeile 3 Leerzeilen - Excel Makro: Hallo zusammen,ich habe eine Excel mit ungefähr 500 Zeilen + Inhalt.Ich möchte in dieser Excel nach jeder Zeile 3 Leerzeilen haben.Wie bekomme ich das durch ein Makro hin? Oder gibt es einen...
Microsoft Office Dienstag um 14:22 Uhr

wie lösche ich leere zeilen

wie lösche ich leere zeilen: Guten Abend,wie lösche ich leere zeilenDanke
Microsoft Office 4. Januar 2024

Excel Zeile oberhalb einer bestimmten Zeile einfügen

Excel Zeile oberhalb einer bestimmten Zeile einfügen: Hallo Zusammen, Ich bin am erstellen einer Zeitkarte für mein Unternehmen. [IMG] Nun möchte ich ein Marko programmieren, wo ich mit einem Button eine Zeile Kopieren und einfügen kann. Diese...
Microsoft Office 7. Juni 2019

Makro Zeilen löschen

Makro Zeilen löschen: Moin, ich habe einen Makro zum Berechnen der Betriebsstunden geschrieben, der bis jetzt auch funktioniert hat. Nun habe ich zum ersten Mal die Funktion "Neues Blatt....." im Echtbetrieb...
Microsoft Office 3. April 2019

Excel Makro soll neue Zeile auch in bestehendem Makro berücksichtigen.

Excel Makro soll neue Zeile auch in bestehendem Makro berücksichtigen.: Hallo zusammen, vielleicht könnt ihr mir helfen. Für ein Uni-Vortrag bereite ich eine Art Präsentation über Excel vor. Ich habe für die Veranschaulichung eines Makros ein Tabelleblatt mit...
Microsoft Office 29. April 2018

Makro (um mehrere Zeile zu kopieren)

Makro (um mehrere Zeile zu kopieren): Hallo liebe Community, ich habe folgendes Problem: Ich habe ein Makro erstellt, das wie folgt aufgezeichnet wurde: 1. Schritt: Kopiere Zelle B6 bis N11 2. Schritt: Füge dies in zeile B15...
Microsoft Office 20. Oktober 2017

Zellbezugsfehler in Excelformel. Nach dem löschen einer Zeile haben die folgenden Zeilen...

Zellbezugsfehler in Excelformel. Nach dem löschen einer Zeile haben die folgenden Zeilen...: Hallo liebe Community, ich habe eine Excel Liste zur Wochenplanung erstellt. [IMG] Die Stundenanzahl in Spalte L wird über ein Abgleich des "Typs", Spalte E erstellt. In Spalte N, habe ich...
Microsoft Office 13. Juni 2017
Makro in Excel soll bestimme Zeilen löschen, oberste Zeile aber nicht solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.