Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Wenn automatische Tabellenerweiterung, dann
#1
Moin in die Runde:

Wie würde eine VBA-Zeile aussehen, die sagt, dass eine bestimmte Aktion passieren soll, wenn es eine automatische Tabellenerweiterung gibt? Geht das überhaupt?
Antworten Top
#2
Hallöchen,

Also, mit automatisch geht es nicht um das Hinzufügen einer Zeile oder Spalte per Ein- oder Anfügen oder das Löschen, sondern um Änderung bei einer Eingabe. Korrekt?

Du könntest bei einer Eingabe, also Worksheet_Change, prüfen, ob sich die Tabellengröße (ANzahl zeilen oder Spalten) geändert hat. Du müsstest Dir dazu nur die Größe irgendwie merken, z.B. in einer Variable die Du beim Workbook_Open das erste mal füllst, oder als Wert in einer Zelle, oder ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
(18.12.2021, 18:29)schauan schrieb: Hallöchen,

Also, mit automatisch geht es nicht um das Hinzufügen einer Zeile oder Spalte per Ein- oder Anfügen oder das Löschen, sondern um Änderung bei einer Eingabe. Korrekt?

Du könntest bei einer Eingabe, also Worksheet_Change, prüfen, ob sich die Tabellengröße (ANzahl zeilen oder Spalten) geändert hat. Du müsstest Dir dazu nur die Größe irgendwie merken, z.B. in einer Variable die Du beim Workbook_Open das erste mal füllst, oder als Wert in einer Zelle, oder ...

Richtig, wenn ich unter der Tabelle neue Daten eingebe, erweitert Excel die Tabelle halt automatisch. Immer wenn das passiert, möchte ich, dass etwas gewisses passiert.

Danke schon mal für deinen Tipp. Ich lasse mir das gerade mal durch den Kopf gehen, wie man das gestalten könnte. Bin da noch ein wenig ratlos. Wenn du da irgendwie konkretere Vorstellungen hast, würde ich mich natürlich sehr freuen!
Antworten Top
#4
Hallöchen,

im Prinzip so. Bea. dass hier Zelle C1 zum Speichern der Zeilenzahl verwendet wir

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  'Variablendeklarationen
  Dim objWSh As Worksheet, objLOb As ListObject, lRows As Long
  'Blatt dem Objekt zuweisen
  Set objWSh = ActiveWorkbook.Worksheets("Tabelle1")
  'Tabelle dem Objekt zuweisen
  Set objLOb = objWSh.ListObjects("Tabelle1")
  'Anzahl Zeilen ermitteln
  lRows = objLOb.DataBodyRange.Rows.Count
  'Wenn die Anzahl verschieden ist vom hinterlegten Wert, dann
  If Cells(1, 3).Value <> lRows Then
    'Meldung ausgeben
    MsgBox "alt: " & Cells(1, 3).Value & vbLf & "neu: " & lRows
  'Eede Wenn die Anzahl verschieden ist vom hinterlegten Wert, dann
  End If
  'Zeilenzahl in Zelle C1 merken
  Cells(1, 3).Value = lRows
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste