Ich habe in einem Tabellenblatt Zeile 1 bearbeitet und möchte nun per Button eine Zeile darunter einfügen. Übernommen werden sollen Zeilenhöhe, Schriftgröße/farbe, bedingte Formatierungen, Datenüberprüfungen und Formularsteuerelemente. Am besten alles wie in der Zeile darüber, außer die Werte!
Zusätzlich soll in Spalte A eine aufsteigende Nummer eingetragen werden. Also immer die höchste Zahl in Spalte A, +1 (damit die Zahl nur ein mal vorkommt, auch wenn Spalte A nicht aufsteigend sortiert ist).
Ich hoffe jemand kennt sich hier mit Visual Basic aus.
Ich hab es leider nicht so hin bekommen, wie ich es gerne möchte.
und auch Formeln beim Einfügen einer neuen Zeile automatisch übernommen. 2. Warum sollen auch Formularsteuerelemente und Zeilenhöhe übernommen werden. Insbesonder der Sinn von Steuerelementen pro Zeile erschliesst sich mir nicht.
Vielleicht wird das ja anhand einer von dir erstellten Beispildatei verständlicher und kann dann, wie auch die gewünscht Nummernvergabe über VBA glöst werden.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Eine Überschriftenzeile habe ich natürlich eingerichtet.
Es geht vor allem Darum einzelne Spalten in der Tabelle zu sperren und trotzdem per VBA eine neue Zeile einzufügen. Die neue Zeile soll dann (wie bei Access) eine eindeutige Nummer zugeordnet bekommen.
Wenn die Spalten per Blattschutz gesperrt sind, lässt sich die Tabelle nicht erweitern, bzw. die Formeln werden nicht übernommen.
Ich habe nun eine Beispieldatei erstellt. Ich hoffe hier wird deutlich, was genau mein Problem ist.
19.06.2018, 21:31 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2018, 05:42 von Rabe.
Bearbeitungsgrund: nich => noch
)
Hallöchen,
ich würde da auch den Makrorekorder nutzen:
Aufzeichnung beginnen - irgendeine Zelle markieren - Zeile "darüber" markieren - Zeile "darüber" kopieren - kopierte Zeile einfügen - Daten löschen - irgendwo die Formel =MAX(A:A)+1 eintragen - Ergebnis kopieren - mit "Werte einfügen" in die Zelle von Spalte A der kopierten Zeile einfügen - irgendwo Formel löschen - AUfzeichnung beenden
Hinweis: Das mit der Formel kann man auch im VBA dierekt rechnen. Wenn Du den code aufgezeichnet hast, kannst Du ihn ja hier posten und wir bauen das noch ein.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)