Registriert seit: 21.12.2020
Version(en): 2019
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?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 21.12.2020
Version(en): 2019
(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!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)