Forum: PC-Programmierung Excel "Exportvorlage" erstellen?


von Vim (Gast)


Lesenswert?

Hallo,
ich hoffe, ich kann mein Anliegen verständlich ausdrücken:
Ich bekomme immer Exceltabellen mit dem selben Spaltenaufbau (Anzahl und 
Reihenfolge). Es sind aber nicht immer alle Zellen gefüllt (für das 
Problem vermutlich egal) und die Zeilenlänge variiert.
Um die Tabellen für einen weiteren Import vorzubereiten, bearbeite ich 
sie manuell (z.B. immer gleiche Spalten mit immer gleichen Inhalten an 
immer gleichen Stellen hinzufügen).
Da muß es doch sowas wie einen "Vorlagengenerator" geben, mit dem ich 
das automatisieren kann. Also einmal eine leere Zieltabelle als Vorlage 
generieren und dort die neuen Exceltabellen (bzw. deren Inhalte) 
reinimportieren.
Irgendwie finde ich da nichts passendes; vermutlich, weil ich nach den 
falschen Stichworten suche. Hat jemand ein paar Tips?
Und VBA sollte es nach Möglichkeit nicht werden. Wenn das zwingend wäre, 
würde ich eher ein kleines C-Programm schreiben.

von Matthias V. (matthias77)


Lesenswert?

Warum nutzt Du nicht einfach mehrere Tabellenblätter?
Bsp.:
Tabelle1 <=> "Input"
hier importierst Du wie gewohnt Deine Inhalte, angenommen z.B. in die 
Spalten A-D
Tabelle2 <=> "Output"
Und wenn dann zwischen die erste und zweite Spalte des Imports 
regelmäßig eine Spalte eingefügt werden muss, lauten die Formeln auf dem 
zweiten Tabellenblatt eben
in Output!A1: "=wenn(Input!A1<>"";Input!A1;"")"
in Output!B1 bzw. allgemeiner in Spalte Output!B:B kopierst Du den 
statisch zu ergänzenden Inhalt
in Output!C1: "=wenn(Input!B1<>"";Input!B1;"")"
usw.
Damit hast Du eine Lösung, die einfach und transparent ist und ohne 
Makros auskommt. Der einzige "Haken" wäre, dass Du Inhalte doppelt 
abbildest in der Excel und/oder je nach Anzahl der Datensätze das ganze 
nicht sehr performant wäre. Je nach Größe/Menge der Daten ist das aber 
zu vernachlässigen...

von chrizz (Gast)


Lesenswert?

Hallo,
Dafür hat Excel den Macrorecorder an Board.
Einschalten --> An einer Beispieldatei den Ablauf vorgeben --> Makro 
speichern. Beim nächsten Mal das Makro laufen lassen, dass dann genau 
das ausführt, was Du vorher händisch gemacht hast.

Gruß
chrizz

von Peter M. (r2d3)


Lesenswert?

chrizz schrieb:
> Hallo,
> Dafür hat Excel den Macrorecorder an Board.
> Einschalten --> An einer Beispieldatei den Ablauf vorgeben --> Makro
> speichern. Beim nächsten Mal das Makro laufen lassen, dass dann genau
> das ausführt, was Du vorher händisch gemacht hast.
>
> Gruß
> chrizz

Na, und was erzeugt der Makrorekorder?

VBA-Code!
Der war aber von der Benutzung ausgeschlossen.

Gruß
PeterZZ

@Vim:

Deine Aufgabe ohne VBA zu lösen, ist so wie einen Nagel mit dem Daumen 
in Beton drücken zu wollen.

Alternativ kannst Du natürlich auch die Formatdokumentation der 
Excel-Dateien bei Microsoft durchlesen und dann alles per C-Programm 
erledigen.

von chrizz (Gast)


Lesenswert?

"...nach Möglichkeit nicht werden" interprtier ich anders als "von der 
Benutzung ausgeschlossen".

Bin davon ausgegangen, dass es ums händische Programmieren geht.

>>Deine Aufgabe ohne VBA zu lösen, ist so wie einen Nagel mit dem Daumen
>>in Beton drücken zu wollen.

Ja, genau. Excel und VBA gehören (für mich zumindest) zusammen. Ob man 
es mag oder nicht. Besonders für Anfänger bietet es sich an, den 
Macrorecorder zu Nutzen und dann den Code zu bereinigen oder anzupassen. 
Macht die Lernkurve deutlich flacher und führt schnell zu ersten 
Erfolgen.

Gruß
Chrizz

von Vim (Gast)


Lesenswert?

Danke für die Tips. VBA wollte ich dahingehend ausschließen, daß ich den 
Code selber schreiben muß. Das mit dem Makrorekorder muß ich mir mal 
anschauen. Hört sich schon plausibel an, "ungewöhnliche" Sachen auf 
einem anderen Weg (Programmiersprache, hier VBA) zu machen.
Performanz spielt hier übrigens gar keine Rolle.

Aber auf Excel bin ich eigentlich auch nur gekommen, weil das ein 
unterstütztes Exportformat der Datenquelle ist. Ich kann es auch direkt 
z.B. im CSV-Format oder TAB-getrennt bekommen (und kann es aus der 
Exceltabelle natürlich auch erzeugen).
Deshalb werde ich wohl ein kleines C-Programm schreiben. Oder C# mal 
etwas in der Praxis üben; gerade für Strings wohl bequemer. Sollte wohl 
mit ca. 50 Zeilen abgehandelt sein.
Danke noch mal.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.