Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro nur auf bestimmte Zeilen anwenden

Forumthread: Makro nur auf bestimmte Zeilen anwenden

Makro nur auf bestimmte Zeilen anwenden
17.09.2003 17:09:35
Floh
Hallo Excelexperten ,

Folgende Frage:
Habe ein Makro zum Löschen aufgezeichnet:


Sub löschen()
' löschen Makro
' Makro am 04.08.2003 von  floh aufgezeichnet
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Wie bewerkstellige ich es, daß dieses Makro nur auf die Zeilen
14 bis 100 angewendet werden kann?

Mit freundlichen Grüßen
Floh
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur auf bestimmte Zeilen anwenden
17.09.2003 17:14:35
ChrisL
Hi Floh


Sub löschen()
ActiveSheet.Unprotect
ActiveCell.Rows("14:100").EntireRow.Delete Shift:=xlUp
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Gruss
Chris
AW: Makro nur auf bestimmte Zeilen anwenden
17.09.2003 17:16:36
ChrisL
oder hast du es so gemeint?


Sub löschen()
If ActiveCell.Row < 14 Or ActiveCell.Row > 100 Then Exit Sub
ActiveSheet.Unprotect
Rows(ActiveCell.Row).EntireRow.Delete Shift:=xlUp
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Gruss
Chris
Anzeige
AW: Makro nur auf bestimmte Zeilen anwenden
17.09.2003 17:32:49
Floh
Hallo Chris,

Die zweite Lösung,
ist perfekt.

Vielen, Vielen Dank !
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Makro nur auf bestimmte Zeilen anwenden


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel nur auf bestimmte Zeilen anzuwenden, kannst Du folgende Schritte befolgen:

  1. Makro erstellen oder bearbeiten:

    • Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11 drückst.
    • Erstelle ein neues Makro oder bearbeite ein vorhandenes.
  2. Code anpassen:

    • Füge den folgenden Code ein, um das Makro auf die Zeilen 14 bis 100 zu beschränken:
    Sub löschen()
       If ActiveCell.Row < 14 Or ActiveCell.Row > 100 Then Exit Sub
       ActiveSheet.Unprotect
       Rows(ActiveCell.Row).EntireRow.Delete Shift:=xlUp
       ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub
  3. Makro speichern:

    • Speichere Deine Änderungen und schließe den VBA-Editor.
  4. Makro ausführen:

    • Wähle eine Zelle in den Zeilen 14 bis 100 aus und führe das Makro aus. Die gesamte Zeile wird gelöscht, wenn die aktive Zelle in diesem Bereich ist.

Häufige Fehler und Lösungen

  • Fehler: Das Makro löscht auch Zeilen außerhalb des gewünschten Bereichs.

    • Lösung: Stelle sicher, dass die Bedingung If ActiveCell.Row < 14 Or ActiveCell.Row > 100 Then Exit Sub korrekt implementiert ist.
  • Fehler: Das Arbeitsblatt bleibt geschützt.

    • Lösung: Vergewissere Dich, dass das ActiveSheet.Unprotect vor dem Löschen der Zeile ausgeführt wird.

Alternative Methoden

Falls Du eine andere Herangehensweise bevorzugst, kannst Du das Löschen von Zeilen auch über eine Schleife realisieren:

Sub löschen()
    ActiveSheet.Unprotect
    For i = 14 To 100
        Rows(i).EntireRow.Delete Shift:=xlUp
    Next i
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Diese Methode löscht alle Zeilen von 14 bis 100 in einem Durchgang.


Praktische Beispiele

Angenommen, Du hast eine Excel-Tabelle mit Daten und möchtest nur die Daten in den Zeilen 14 bis 100 löschen. Mit dem oben beschriebenen Makro kannst Du dies effizient durchführen.

  1. Wähle eine beliebige Zelle aus diesem Bereich aus.
  2. Führe das Makro aus, um die gesamte Zeile der aktiven Zelle zu löschen.

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass Dein Makro auch bei unerwarteten Eingaben stabil bleibt.

  • Nutzung von Variablen: Verwende Variablen für die Zeilenanzahl, um Dein Makro flexibler zu gestalten. So kannst Du zum Beispiel die Zeilenanzahl leicht anpassen.

Sub löschen()
    Dim startRow As Integer
    Dim endRow As Integer
    startRow = 14
    endRow = 100

    If ActiveCell.Row < startRow Or ActiveCell.Row > endRow Then Exit Sub
    ActiveSheet.Unprotect
    Rows(ActiveCell.Row).EntireRow.Delete Shift:=xlUp
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Makro so anpassen, dass es nur auf bestimmte Zellen und nicht auf ganze Zeilen angewendet wird?
Antwort
Das Makro kann so modifiziert werden, dass es nur die aktive Zelle löscht, anstatt die gesamte Zeile. Ändere den Code einfach zu ActiveCell.Delete.

2. Frage
Kann ich das Makro für eine andere Excel-Version verwenden?
Antwort
Ja, der oben dargestellte VBA-Code ist in den meisten Excel-Versionen kompatibel, solange VBA unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige