Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob "Zeile eingefügt?"

Forumthread: Prüfen ob "Zeile eingefügt?"

Prüfen ob "Zeile eingefügt?"
09.01.2008 20:25:00
jeff
Hallo,
ich möchte, daß nachdem das Worksheet geöffnet wurde und solange es geöffnet bleibt automatisch geprüft wird, ob eine (ganze) zeile irgendwo eingefügt wurde.
Meine Frage ist nun
a) wie ich das per vba in das worksheet integriere. Dh über ein Private Sub Worksheet_Change Event?
b) wie sollte die Prüfung "Zeile eingefügt" erfolgen, zB über "Selection.EntireRow.Insert"?
Was meint ihr?
Danke

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob "Zeile eingefügt?"
09.01.2008 20:36:48
Horst
Hi,
glaube mich zu erinnern, dass in Excel 2000 das Change-Ereignis beim Einfügen von Zeilen gar
nicht ausgelöst wurde? Hast du das schon getestet?
mfg Horst

AW: Prüfen ob "Zeile eingefügt?"
09.01.2008 20:48:00
jeff
Hi Horst,
gute Frage, ich habe noch nicht getestet, ob durch dass Einfügen einer Zeile das Change-Ereignis ausgelöst wird!?
Aber anders herum gefragt, angenommen nein, was wäre ein Alternative, um bei geöffnetem Workbook im Hintergrund zu prüfen, ob eine Zeile im Sheet eingefügt wurde?
Gruss
J.

Anzeige
AW: Prüfen ob "Zeile eingefügt?"
09.01.2008 23:10:06
Daniel
Hi
unter der Vorraussetztung, daß das Einfügen einer Zeile das Change-Event auslöst, könntest du diese Makros verwenden (Postition der Variablendeklaration beachten!):
1. Das kommt ins allgemeine Modul:

Option Explicit
Public Zeilen_alt As Long


2. Das kommt ins Modul "DieseArbeitsmappe" (Blattnamen ggf. anpassen)


Private Sub Workbook_Open()
Zeilen_alt = Sheets("Tabelle1").UsedRange.Rows.Count
End Sub


3. und das kommt ins Modul der Tabelle:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeilen_neu As Long
Zeilen_neu = ActiveSheet.UsedRange.Rows.Count
Select Case Zeilen_neu
Case Is = Zeilen_alt
Case Is  Zeilen_alt
MsgBox Zeilen_neu - Zeilen_alt & " Zeilen eingefügt"
End Select
Zeilen_alt = Zeilen_neu
End Sub


Es ist zwar nicht so ganz exakt, weil es nicht auf Einfügen reagiert, sondern die grösse der Usedrange prüft, dh du bekommst auch ne meldung , wenn du unterhalb der letzen Zeile weiter Daten in eine Zelle schreibst, aber eine andere einfache Möglichkeit wäre mir nicht bekannt.
Gruß, Daniel

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Prüfen, ob eine Zeile in Excel eingefügt wurde


Schritt-für-Schritt-Anleitung

Um automatisch zu prüfen, ob in einem Excel-Arbeitsblatt eine Zeile eingefügt wurde, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen. Diese Anleitung basiert auf VBA (Visual Basic for Applications) und ist für Excel 2000 und neuere Versionen geeignet.

  1. Öffne Excel und gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.

  2. Füge ein allgemeines Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineArbeitsmappe) und wähle Einfügen > Modul.
    • Füge den folgenden Code ein:
      Option Explicit
      Public Zeilen_alt As Long
  3. Füge den folgenden Code in das Modul DieseArbeitsmappe ein:

    Private Sub Workbook_Open()
       Zeilen_alt = Sheets("Tabelle1").UsedRange.Rows.Count
    End Sub
  4. Füge den folgenden Code in das Modul des Arbeitsblatts ein (z.B. Tabelle1):

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim Zeilen_neu As Long
       Zeilen_neu = ActiveSheet.UsedRange.Rows.Count
       Select Case Zeilen_neu
           Case Is = Zeilen_alt
           Case Is > Zeilen_alt
               MsgBox Zeilen_neu - Zeilen_alt & " Zeilen eingefügt"
       End Select
       Zeilen_alt = Zeilen_neu
    End Sub
  5. Schließe den VBA-Editor und speichere deine Arbeitsmappe als Excel-Makroaktivierte Arbeitsmappe (*.xlsm).


Häufige Fehler und Lösungen

  • Problem: Das Change-Ereignis wird nicht ausgelöst, wenn eine Zeile eingefügt wird.

    • Lösung: Stelle sicher, dass du den Code im richtigen Arbeitsblattmodul eingefügt hast. Bei älteren Excel-Versionen kann es sein, dass das Change-Ereignis nicht funktioniert, wenn eine Zeile eingefügt wird.
  • Problem: Die Meldung zeigt auch Änderungen an, die keine Zeilen betreffen.

    • Lösung: Der Code prüft die gesamte UsedRange. Überlege, ob du eine spezifischere Logik implementieren möchtest, um nur Zeilenänderungen zu erfassen.

Alternative Methoden

Falls du eine andere Methode zur Überwachung von Zeilenänderungen in Excel suchst, könntest du auch die Worksheet_Paste-Ereignis verwenden. Diese Methode erfordert jedoch, dass der Benutzer die Zeilen durch Einfügen von kopierten Inhalten hinzufügt.

Private Sub Worksheet_Paste()
    MsgBox "Eine Zeile wurde eingefügt!"
End Sub

Praktische Beispiele

Hier ist ein praktisches Beispiel für die Implementierung des Codes:

  1. Erstelle eine neue Excel-Arbeitsmappe und füge einige Daten in Tabelle1 ein.
  2. Füge dann eine oder mehrere Zeilen in die Tabelle ein. Der VBA-Code sollte eine Meldung anzeigen, die die Anzahl der eingefügten Zeilen angibt.

Tipps für Profis

  • Verwende die Worksheet_Change-Prozedur gezielt, um nur spezifische Zelländerungen zu überwachen, indem du die Target-Range überprüfst.
  • Dokumentiere deinen Code gut, damit du später leichter Änderungen vornehmen kannst.
  • Teste deinen Code gründlich in verschiedenen Szenarien, um sicherzustellen, dass er wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Was muss ich tun, wenn der Code nicht funktioniert?
Überprüfe, ob du den Code in das richtige Modul eingefügt hast und ob du deine Arbeitsmappe im richtigen Format (xlsm) gespeichert hast.

2. Kann ich diesen Code in anderen Excel-Versionen verwenden?
Ja, der Code sollte in allen Versionen von Excel funktionieren, die VBA unterstützen, jedoch könnte es Unterschiede im Verhalten des Change-Ereignisses geben.

3. Wie kann ich den Code anpassen, um nur bestimmte Zeilen zu überwachen?
Du kannst die Target-Range innerhalb der Worksheet_Change-Prozedur verwenden, um zu überprüfen, ob Änderungen in einem bestimmten Bereich gemacht wurden.

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