Microsoft Excel

Herbers Excel/VBA-Archiv

Tabellenblätter automatisch generieren

Betrifft: Tabellenblätter automatisch generieren von: Christopher May
Geschrieben am: 30.09.2014 01:17:57

Hallo Forum!

momentan beschäftige ich mich mit der Erstellung einer These für meine Universität. Leider haben mich online Tutorials nicht sehr weit gebracht, da meine Excel und VBA-Kenntnisse sich sehr in Grenzen halten.

Das beigefügte Excel-Sheet enthält keinen content. Es geht auch vielmehr darum eine generelle Beschreibung zu liefern, anstatt einer detaillierten Darstellung.

https://www.herber.de/bbs/user/92892.xlsx

Meine Problemstellung ist folgende:

Ich würde gerne im ersten Tab "Startseite" eine Auswahl angeben (z.B. Typ-B für das Jahr 2014). Anschließend sollte der Inhalt aus dem Tab "Datenbestand" (dieser Tab enthält die Zahlen der verschiedenen Jahre), in ein vorgefertigtes englisches- und deutsches Template eingefügt werden. (Diese Templates unterscheiden sich je nach Angabe des Bericht-Types und des Jahres.) Nachdem der Knopf "Generieren" auf der Startseite gedrückt wurde, sollten diese Templates in englischer und deutscher Sprache generiert werden.

Deshalb meine Frage: Wäre es möglich für diesen Prozess, selbst ohne konkretere Angaben, eine Art generelle VBA makro zu erstellen?

Ich bin sehr dankbar für jegliche Hilfe !!

Viele Grüße,
Christopher

  

Betrifft: AW: Tabellenblätter automatisch generieren von: fcs
Geschrieben am: 30.09.2014 10:58:20

Hallo Christopher,

Startseite:
Die Auswahl von Berichttyp und Jahr macht man nicht durch Formatierung (hier Rahmen) sondern in separaten Zellen. Hierzu kann man z.B aus dem Menü Daten - Datentools - Datenüberprüfung die Listenauswahl als Dropdownauswahl verwenden.

Templates:
Grundsätzlich kann man natürlich per Makro fast aus dem nichts Tabellenblätter als Vorlagen für Dateneinträge erstellen. Das macht aber nur Sinn, wenn man keine andere Möglichkeit hat, die Vorlagen Templates bereitzuzustellen und die nötigen VBA-Programmierkenntnisse hat.


"eine Art generelle VBA makro" gibt es nicht.
Ich würde an deiner Stelle die momentan leeren Templates soweit vorbereiten, dass sie alle Eigenschaften, die den Templates für die Typen/Jahre gemeinsam sind enthalten. Dies können sein Seitenränder, Kopf-/Fusszeilen, Logo, Standardschrift, etc. Ein Sprachwechsel DE/EN ist natürlich extrem problematisch, wenn du auch Zahlen-/Datumsformate landes-/sprachspezifisch darstellen willst.
Damit hättest du jetzt ein Basis-Template.

Je Typ machst du jetzt eine Kopie vom Basis-Template und machst die typ-spezifischen Ergänzungen. Dies kannst du mit dem Makrorekorder aufzeichnen (je Typ ein eigenes Makro aufzeichnen)
Danach kommt dann das gleiche Spielchen für die Jahre, d.h. im Typblatt werden die jahresspezifischen Ergänzungen gemacht und mit dem Rekorder aufgezeichnet. Mir erschließt sich allerdings nicht, warum das Template für 2011 anders aussehen muss als für 2014, außer dass irgendwo eine andere Jahreszahl eingetragen werden muss.

Somit hättest du das Makrogerüst zusammen um Templates zu erzeugen, auch wenn die Makros bezüglich Programmierung noch viel Raum für Optimierung haben.

Das Generieren-Makro muß dann entsprechende Prüfungen (Select Case oder If) zu dem ausgewählten Typ und Jahr enthalten, so dass die jeweils zugehörigen Makros nacheinander ausgeführt werden.

Ich persönlich würde hier aber die acht Templates (4 Typen/DE+EN) komplett ohne Makros erstellen, es sei denn du möchtest die Erstellung per Makro als wesentlichen Teil deiner Arbeit präsentieren, dann muss du dich aber auch vertieft mit der VBA-Programmierung beschäftigen.

Ansonsten finden sich zu deiner Problemstellung zu fast allen Aspekten im Archiv/RECHERCHE Lösungsansätze.

Gruß
Franz


  

Betrifft: AW: Tabellenblätter automatisch generieren von: Christopher May
Geschrieben am: 01.10.2014 14:56:09

Hallo Franz,

Deine Antwort hat mir den Einstieg sehr erleichtert!

Ich werde an dieser Stelle weiterarbeiten, vielen Dank!

VG,
Christopher


 

Beiträge aus den Excel-Beispielen zum Thema "Tabellenblätter automatisch generieren"