vielen Dank erst einmal dafür, dass es euch gibt! Ihr habt mir schon oft geholfen!
Dieses Mal komme ich leider mit meinen Kompetenzen und der Recherche im Forum nicht zu einer Lösung und bitte um Hilfe.
In meiner Excel-Arbeitsmappe möchte ich über ein Makro Zeilen in eine intelligente Tabelle einfügen - soweit so gut. Das Makro funktionierte auch soweit, aber Excel übernimmt nicht alle Formeln der darüber stehenden Zeile (auch nicht wenn ich per rechte Mausklick oder Zeile markieren und Strg + eine Zeile einfüge). Ich habe unter Optionen-> Dokumentenprüfung -> AutoKorrektur-Optionen->AutoFormat während der Eingabe -> Formeln in Tabellen füllen, um berechnete Spalten zu erstellen angehackt. Es ist definitiv im Bereich der intelligente Tabelle. Und x male gespeichert und neu geöffnet habe ich auch schon. Ich checke nicht was das Problem ist.
Nun will ich das einfach über VBA lösen. Da ich eh einen Button habe, der eine Zeile einfügt, möchte ich dort programmieren, dass die eingefügte Zeile die Formeln und auch Formate (Dropdown-Liste) der ersten Zeile der Tabelle übernimmt. Ich bekomme die richtige Zeile raus und neue Zeile einfügen klappt auch, aber das Kopieren und Einfügen will nicht klappen. Ich komme mit der Syntax/Typen von Range nicht klar, beide Varianten klappen nicht.
Ich verzweifelte daran leider, hier meine Versuche:
Public Sub ZeileEinfügenGrundmischungen()
Dim FstObj As ListObject
Dim HeaderRow As Integer, LetzteZ As Integer
Dim FstRange As Range
'ActiveSheet.Protect "Passwort", UserInterfaceOnly = True 'Makros funktionieren trotz Blattschutz
Set FstObj = ActiveSheet.ListObjects("BGrundmischungen")
HeaderRow = FstObj.Range.Cells(2, 1).Row 'absolute Zeile mit den ersten Einträgen der o.g. Tabelle
MsgBox HeaderRow 'zum Testen: klappt
'FstRange="A"&HeaderRow&:&"G"&HeaderRow 'Syntax falsch
FstObj.Range(Cells(HeaderRow, 1), Cells(HeaderRow, 7)).Copy 'Typen unverträglich
FstObj.ListRows.Add 'Zeile in o.g. Tabelle einfügen
LetzteZ = FstObj.Range.Rows.Count - 2 'absolute Zeile der neuen Zeile (Überschrifts- und Summenzeile müssen abgezogen werden)
MsgBox LetzteZ 'Zum testen: klappt, wenn fehlerhafte Zeile oben raus ist
FstObj.Range(Cells(LetzteZ, 1), Cells(LetzteZ, 7)).Paste 'geht nicht
End Sub
Was mache ich falsch?
Ich kann nicht mit festen Bezügen arbeiten, da auf der Seite drei int. Tabellen sind, die ggf. alle neue Zeilen benötigen.
Den Blattschutz habe ich noch nicht getestet, aber da ca. 20. Leute die Arbeitsmappe nutzen sollen, soll die Arbeitsmappe unbedingt einen Schutz bekommen.
Meine VBA Kenntnisse sind rudimentär, da 15 Jahre nicht programmiert. Sprich Syntax gleich null, Methodik/Logik wie Schleifen sollten noch vorhanden sein.
Würde mich sehr über Hilfe freuen!
Viele Grüße