Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

worksheet_change und Zeile einfügen

worksheet_change und Zeile einfügen
26.03.2015 14:53:40
Frank
Guten Tag zusammen,
wie kann ich ein worksheet_change event beim einfügen einer zeile aushebeln?
vg,
frank

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: worksheet_change und Zeile einfügen
26.03.2015 14:55:15
Hajo_Zi
Hallo Frank,
Application.EnableEvents =false
nicht das Einschalten vergessen.

AW: worksheet_change und Zeile einfügen
26.03.2015 14:56:59
Frank
dann würde das event ja gar nicht mehr laufen. es soll nur explizit beim einfügen einer zeile nicht auslösen...

AW: worksheet_change und Zeile einfügen
26.03.2015 14:58:37
Hajo_Zi
vor einfügen der Zeile den Befehl und danach wieder einschalten. Wo ist das Problem?

AW: worksheet_change und Zeile einfügen
26.03.2015 15:07:04
Frank
in der datei sollen user arbeiten, die keine ahnung von vba haben. die sollen in der exceldatei die möglichkeit haben eine zeile einfügen zu können. das chage event soll dann nicht ausgeführt werden.

Anzeige
AW: worksheet_change und Zeile einfügen
26.03.2015 15:23:39
Nepumuk
Hallo,
du platzierst in die Enden (Spalte XFD und Zeile 1048576) deiner Tabelle jeweils einen Namen. Wenn einer der Namen einen Bezugsfehler zurückgibt, dann wurde eine Zeile/Spalte eingefügt, wenn die Namen nicht mehr die Eckpunkte zurückgeben, dann wurde eine Zeile/Spalte gelöscht. In dem Fall das Makro nicht ausführen und die Namen neu setzen.
Gruß
Nepumuk

AW: worksheet_change und Zeile einfügen
26.03.2015 15:56:13
Nepumuk
Achso,
noch ein Beispiel dazu:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim vntReturn As Variant
    
    vntReturn = Evaluate("Letzte_Zeile")
    
    If IsArray(vntReturn) Then
        
        vntReturn = Evaluate("Letzte_Spalte")
        
        If IsArray(vntReturn) Then
            
            If Names("Letzte_Zeile").RefersTo = "=" & Name & "!" & Rows(Rows.Count).Address Then
                
                If Names("Letzte_Spalte").RefersTo = "=" & Name & "!" & Columns(Columns.Count).Address Then
                    
                    'Wert wurde geändert
                    MsgBox "Wert geändert"
                    
                Else
                    'Spalte gelöscht
                    Call Names.Add(Name:="Letzte_Spalte", RefersTo:=Columns(Columns.Count))
                End If
            Else
                'Zeile gelöscht
                Call Names.Add(Name:="Letzte_Zeile", RefersTo:=Rows(Rows.Count))
            End If
        Else
            'Spalte eingefügt
            Call Names.Add(Name:="Letzte_Spalte", RefersTo:=Columns(Columns.Count))
        End If
    Else
        'Zeile eingefügt
        Call Names.Add(Name:="Letzte_Zeile", RefersTo:=Rows(Rows.Count))
    End If
End Sub

Gruß
Nepumuk

Anzeige
Kann man auch wie folgt machen, ...
26.03.2015 16:11:08
Luc:-?
…Frank;
1. Definiere einen Namen für die benutzten Zeilen einer Spalte des ursprünglichen Bereichs; dessen Bezug passt sich bei Änderungen, Zeilen einfügen/löschen, automatisch an.
2. In der Prozedur zum Workbook_Open-Ereignis die Anzahl der von diesem Namen repräsentierten Zeilen ermitteln und in einer GlobalVariablen speichern.
3. In der Prozedur zum Worksheet_Change-Ereignis diese Anzahl ebenfalls ermitteln und bei Abweichungen nur die neue Anzahl in die GlobalVariable übernehmen, bei Gleichheit das vorgesehene Pgm abarbeiten.
Das deckt dann ebenfalls beide Fälle, Zeilen einfügen/löschen, ab.
Gruß, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige