Zeile im VBA Code fixieren?

2 Antworten

Bei diesen Tabellenobjekten ist es besser, die Tabelle an sich größer zu ziehen und nicht in der darunterliegenden Haupttabelle neue Zeilen einzufügen. Also so:

Sub Tabelle_Groesser()
    With ActiveSheet.ListObjects("Tabelle1")
        .Resize Range(Left(.Range.Address, 8) & (Mid(.Range.Address, 9) + 1))
    End With
End Sub

Dadurch werden dann auch die automatisch ausgefüllten Formeln und die Bereiche, auf die sich die Gesamtergebnisse beziehen, automatisch größer gezogen.

Ich kann dein Problem noch nicht wirklich nachvollziehen, evtl. kannst du ja ein Bild von der Tabelle machen (ohne sensible Daten) und deine Code und was genau wo passieren soll.

Woolii 
Fragesteller
 23.03.2022, 10:12

Hallo LtLTSmash, ich füge ein Bild und den aktuellen Code mit ein. Es geht mir im Grund nur darum, dass er mithilfe des Buttons automatisch eine Zeile hinzufügt und automatisch die Positionen mit hochzählt. Das Bild zeigt auch das Problem - er fügt nur noch Position 8 hinzu.

0
Woolii 
Fragesteller
 23.03.2022, 10:15
@Woolii
Sub Makro10()
'
' Makro10 Makro
'

'
    Rows("15:15").Select
    Selection.Insert Shift:=xlDown
    Range("Tabelle1[[#Totals],[Artikel]]").Select
End Sub

Das ist der Code. Ein Bild kann ich leider nicht einfügen..?

0
Woolii 
Fragesteller
 23.03.2022, 10:46
@LtLTSmash

@LtLTSmash Bilder sind jetzt dabei :) Ich hoffe sie helfen weiter! Er soll quasi immer von der Ergebniszeile ausgehen..

0
LtLTSmash  23.03.2022, 10:57
@Woolii

Wo soll die neue Zeile denn eingefügt werden? Immer am Ende der Liste? Also so, das die Zeile Ergebnis immer eins runterrutscht? Oder ganz oben so das die ganze ÖListe eins runterutscht und neu durchnummeriert werden soll? Muß es auch funktionieren, wenn jemand manuell eine Zeile einfügt?

0
Woolii 
Fragesteller
 23.03.2022, 11:09
@LtLTSmash

Genau, die Ergebnis Zeile würde dann immer eins nach unten rutschen. Er müsste theoretisch auch immer von der Ergebniszeile ausgehen - wie ich das in einem Code wiederspiegel, weiß ich nur leider nicht. Manuell braucht dann nichts mehr hinzugefügt werden.. sollte dann alles automatisch per Button funktionieren :)

0
LtLTSmash  23.03.2022, 12:28
@Woolii

Dann probier das mal aus

Sub NeueZeile()
Dim ze As Long
    'Neue Zeile in Zeile 15 eintragen
    ze = 15
    Rows(ze).Insert Shift:=xlDown
    Do Until Cells(ze, 2).Value = "Ergebnis"
        If ze = 1000 Then Exit Do 'Abbruch in Zeile 1000 um endloscheleife zu vermeiden
        Cells(ze, 2).Value = ze - 14
        ze = ze + 1
    Loop
    
End Sub
1
Woolii 
Fragesteller
 23.03.2022, 13:09
@LtLTSmash

Super! Jetzt ist nur noch das Problem, dass er automatisch die Zeilen bis 1000 ausfüllt und auch das "Ergebnis" mit einer Zahl überschreibt. Wie müsste ich den Code anpassen, damit nur ein Eintrag hinzugefügt wird, wenn ich auf den Button gehe? :) Schonmal vielen vielen Dank!!!

0
LtLTSmash  23.03.2022, 13:21
@Woolii

Das Problem ist ja, das alle Zeilen aktualisiert werden müssen. Ich bin etwas erstant, das die Zeile, wo Ergebnis steht, nicht erkannt wird. Steht in der Zelle wirklich "Ergebnis" oder vielleicht "Ergebnis "

0