Excel Tabelle mit VBA fortlaufend befüllen?
Hallo,
ich habe eine ziemlich schwierige Aufgabe zu lösen, zumindest für mich als VBA Amateur und bräuchte deswegen eure Hilfe, da ich daran schon seit Tagen verzweifle.
Die Aufgabenstellung ist folgende:
Es soll durch ein Kontrollfenster (1. Bild links) möglich sein, einen neuen Datensatz anzulegen, der dann automatisch in der Tabelle (1. Bild rechts) davon erscheint. Die Erstellung der Datensätze soll fortlaufend geschehen, d.h. falls bereits ein Datensatz in Zeile 4 vorliegt, dass der neue Datensatz automatisch in Zeile 5 (usw.) angelegt wird. Zuletzt soll dann das Kontrollfenster geleert werden, sodass es theoretisch möglich wäre, direkt einen weiteren Datensatz anzulegen.
Weiterhin soll dieser neu angelegte Datensatz mit dem "DiagrammA" im Reiter "Diagramm" verknüpft werden (X/Y-Werte und Name in der Legende), sodass dort auch automatisch dieser Datensatz erscheint (2. & 3. Bild).
(Optional): Die Möglichkeit zum Entfernen eines Datensatzes.
Vielen Dank!
1 Antwort
Ich gehe bei Deiner Frage jetzt nur auf die Befehle zum Finden der letzten Zeile bzw der ersten freien Zeile ein:
Range("A1048576").end(xlup).offset(1, 0).paste 'oder anstatt paste der Zwischenablage was anderes.
Eins rechts daneben UND darunter wäre .offset(1, 1)
Entfernen:
...entirerow.delete
Spiel damit ein bisschen rum, ist nicht allzu geheimnisvoll.
Fürs Diagramm kannst Du auch einen Punkt unter den letzten Eintrag setzen ond dafür das Offset weglassen. Nimmst Du dann den Befehl
End(xlup).entirerow.insert erzeugst Du eine leere Zwischenzeile oberhalb des Punktes, die Du wieder mir .Paste oder sonstwie füllen kannst.
Definierst Du den Bereichsumfang Deines Diagramms für die X-Achse unter Einschluss des Punktes (kann auch ein Leerzeichen, geschütztes Leerzeichen oder sonstwas sein), so erweitert sich dieses automatisch mit jedem Neueintrag.
Hab das jetzt nicht ausprobiert und will Dir auch nicht die ganze Aufgabe vorkauen, DU sollst es ja lernen und nicht ich.
PS: End(xlup) entspricht dem Blattbefehl Ende-Pfeil nach oben, Offset idt der Versatz (Zeile, Spalte), nach links bzw oben mit Minus, nach rechts bzw unten mit plus.