Ich wende mich einmal vertrauensvoll an das Forum.
Meine VBA-Kenntnisse reichen nämlich nicht aus um selbst zu schaffen was ich vorhabe. Ich habe im Archiv nicht wirklich gefunden was ich suche....obwohl es bestimmt keine neues "Problem" ist.
Ich habe eine Exceldatei mit einem Tabellenblatt auf dem mehrere intelligente Tabellen enthalten sind. Diese befinden sich in verschiedenen Bereichen des Tabellenblattes, untereinander, mit einigen Zeilen Abstand dazwischen. Aufgrund von Änderungen der Zeilenzahl on den intelligenten Tabellen oder auch durch Einfügen von Blattzeilen in den Zwischenbereichen kann sich die Position der intelligenten Tabellen ständig verändern verändern. Die intelligenten Tabellen haben Ergebniszeile unten. Sie sind jeweils mit einer orangen Zeilenbänderung formatiert.
Das Tabellenblatt auf dem sich die intelligenten Tabellen befinden wird per Code variabel benannt. In Zukunft möchte ich dieses Musterblatt auch duplizieren.
Das Tabellenblatt hat einen Blattschutz der vor und nach den Ausführungen von Code aufgehoben bzw wieder gesetzt wird.
Das ist der Kontext.
Meine Fragen habe ich für mehrere dieser intelligenten Tabellen, aber natûrlich kann ich den Code selbst anpassen wenn ich für eine intelligente Tabelle weiss wie ich vorgehen muss.
Was soll jetzt passieren :
1) Ich möchte die Erweiterung der betreffenden intelligenten Tabelle durch das Einfügen einer Blattzeile erreichen (Private Sub CommandButton1_Click() ). Die Blattzeile soll so eingefügt werden, dass sich die betreffende intelligente Tabelle um jeweils eine Zeile (nach unten aber oberhalb der Ergebniszeile) erweitert. So verlängert sich dann die betreffende intelligente Tabelle (und übernimmt alle Formate und passt die Ergebniszeile an) und alles was tiefer auf dem Tabellenblatt steht wird nach unten verschoben. Ein Einfügen einer neuen Zeile nur in der intelligenten Tabelle funktioniert nicht. Denn dann verspringen nur die bertreffenden Zeilen darunter und es entsteht ein Versprung mit den Bereichen die die intelligenten Tabellen umgeben. Wie kann ich per VBA den Code so schreiben um diese Blattzeile am Ende jeder Tabelle einfügen an der richtigen Stelle einzufügen ?
2) Ich habe in den intelligenten Tabellen in der letzten Spalte für jeden Datensatz eine Validierung durch 'Ja'. Wenn der Nutzer diese Validierung auf "Ja" (setzt sollten die Zellen in der intelligenten Tabelle gesperrt werden und die Farbe der betreffenden Zeile in der intelligenten Tabelle sollte auf eine grüne Bänderung springen. Also ein helles Grün wo vorher ein helles Orange war, und eine dunkleres Grün wo ein dunkleres Orange war. Ich weiss dass ich dazu das Change Ereignis des Tabellenblattes abfangen muss (Private Sub Worksheet_Change(ByVal Target As Range)) um den Code auszuführen.
Ich habe eine Musterdatei hochgeladen.
https://www.herber.de/bbs/user/166600.xlsm
Ich freue mich über jede Hilfe.
LG, FransikusV