perufreak
Goto Top

Dateiübergreifendes Einfügen von Spalten

gleichzeitiges einfügen von Spalten in mehreren Exceldateien: geeignetes Tool gesucht

Hallo,

ich suche eine Möglichkeit Excel Dateien (über 300), welche im Aufbau ziemlich ähnlich sind, mit einem Zug um eine Spalte (zwischen bereits vorhandenen)zu erweitern. Die Dateien sollen in einem ersten Schritt keine andere Veränderung erhalten (Zusammenführungen usw. sind nicht erwünscht, später jedoch auch Eingaben, welche für alle 300 Dateien identisch wären). Habe nach einem Programm gesucht, welches erlaubt, die markierten Exceldateien um eine Spalte zu ergänzen, habe jedoch nichts gefunden.

Ich bin für jeden Hinweis dankbar!
Merci - Michi

Content-Key: 85807

Url: https://administrator.de/contentid/85807

Printed on: April 19, 2024 at 21:04 o'clock

Member: bastla
bastla Apr 17, 2008 at 20:28:36 (UTC)
Goto Top
Hallo perufreak und willkommen im Forum!

Zumindest die folgenden Fragen bleiben aufgrund Deiner Beschreibung offen:
  • Soll die neue Spalte immer an der selben Stelle eingefügt werden (etwa als neue Spalte "E")?
  • In welchem Tabellenblatt soll die Einfügeoperation stattfinden (immer gleicher Name oder zumindest Position in der Mappe, also etwa immer in die erste Tabelle)?
  • Ist mit "markierten Exceldateien" eine Mehrfachauswahl im Explorer gemeint, und falls ja, wäre es ein Problem, die betreffenden Dateien vorübergehend in einem eigenen Ordner zu sammeln, sodass alle in diesem Ordner befindlichen Dateien verarbeitet werden könnten? Eine einfach zu verwendende Alternative zu einem solchen Sammelordner wäre eine Liste (als Textdatei).

Grüße
bastla
Member: perufreak
perufreak Apr 17, 2008 at 20:48:27 (UTC)
Goto Top
Hallo bastla,

danke für die schnelle Reaktion.

  • Soll die neue Spalte immer an der selben Stelle eingefügt werden (etwa als neue Spalte "E")?
- ja, das genügt

  • In welchem Tabellenblatt soll die Einfügeoperation stattfinden (immer gleicher Name oder zumindest Position in der Mappe, also etwa immer in die erste Tabelle)?
- die Mappe (und der Mappenname) sowie auch die Stelle wäre identisch. die Files sind nicht kongruent, doch sehr identisch gebaut und Ausnahmen könnten manuell bearbeitet werden.

  • Ist mit "markierten Exceldateien" eine Mehrfachauswahl im Explorer gemeint, und falls ja, wäre es ein Problem, die betreffenden Dateien vorübergehend in einem eigenen Ordner zu sammeln, sodass alle in diesem Ordner befindlichen Dateien verarbeitet werden könnten? Eine einfach zu verwendende Alternative zu einem solchen Sammelordner wäre eine Liste (als Textdatei).
- exakt, da ist eine Mehrfachauswahl im Explorer gemeint. Einen Sammelordner zu erstellen ist kein Problem.


Freundliche Grüsse!
Member: bastla
bastla Apr 17, 2008 at 21:12:09 (UTC)
Goto Top
Hallo perufreak!

Dann sollte ein kurzes VBScript genügen:
'InsertCol.vbs  
Const Sp = "E" 'Spalte E einfügen  
Const Tbl = 1 'in erste Tabelle der Mappe  
'Const TBl = "Tabelle1" 'in das Blatt "Tabelle1"  

Set XL=WScript.CreateObject("Excel.Application")  
For Each F In CreateObject("Scripting.FileSystemObject").GetFolder(WScript.Arguments(0)).Files  
	If LCase(Right(F.Name, 4)) = ".xls" Then  
		Set oWB = XL.Workbooks.Open(F)
		oWB.Worksheets(Tbl).Columns(Sp & ":" & Sp).Insert -4161  
		oWB.Save
		oWB.Close
	End If
Next
XL.Quit
Passe in den "Const"-Zeilen die Angabe der Spalte bzw der Tabelle an. Für die Tabelle ist voreingestellt, dass die erste Tabelle jeder Datei, unabhängig vom Namen, bearbeitet werden soll. Falls Du den Tabellennamen angeben willst, setze an den Anfang der zweiten Zeile ein Apostroph und entferne es vom Beginn der dritten Zeile - jetzt kannst Du in Zeile 3 "Tabelle1" durch den entsprechenden Namen ersetzen.

Speichere das Script unter Verwendung eines beliebigen Texteditors zB als "C:\Scripts\InsertCol.vbs". Falls Du den windowseigenen Editor verwendest, achte bitte darauf, den Dateinamen unter Anführungszeichen einzugeben, da ansonsten noch ".txt" angefügt wird.

Starten kannst Du das Script zB per Drag & Drop, indem Du den Sammelordner mit den zu bearbeitenden Exceldateien einfach auf das Script (oder eine Verknüpfung zum Script) ziehst.

Alternativ dazu könntest Du auch (bei gleich bleibendem Ordnerpfad) eine Batchdatei mit folgendem Inhalt verwenden:
@"C:\Scripts\InsertCol.vbs" "D:\Dein Sammelordner"  
Dann reicht ein Doppelklick auf den Batch (oder dessen Verknüpfung).

Verarbeitet werden ausnahmslos alle im angegebenen Ordner befindlichen ".xls"-Dateien.

Grüße
bastla
Member: Biber
Biber Apr 17, 2008 at 22:59:16 (UTC)
Goto Top
Fussnote:

Wenn noch ein bisschen Platz auf der Festpaltte sein sollte, würde ich noch folgende Zeile ergänzen im VBS-Schnipsel:

....
Const NachRechts = -4161 ' nachgebildete xlDirection-Konstante für Insert/Ranges.  

Und natürlich aus ".Insert -4161" ein ".Insert NachRechts" machen

Grüße
Biber
Member: perufreak
perufreak Apr 19, 2008 at 07:27:42 (UTC)
Goto Top
hey bastla&biber,

vielen Dank! Hat mir einiges erleichtert.
Langfristig brauche ich jedoch etwas besseres:

Ich suche ein Tool, welches verschiedene Exceltabellen scannt, die Spalten und Mappen mit Namen aufführt und anschliessend eine Auswahl zulässt, in welchem File wo eine Spalte hinzugefügt werden soll. Ist euch eine solche oder ähnliche Anwendung bekannt?

Beste Grüsse
Member: bastla
bastla Apr 20, 2008 at 15:14:42 (UTC)
Goto Top
Hallo perufreak!

Ist euch eine solche oder ähnliche Anwendung bekannt?
Zumindest ich kenne derartiges nicht ...

Übrigens aus reiner Neugier: Wozu brauchst Du diese Möglichkeit des nachträglichen Spalten-Einfügens? Eigentlich würde ich annehmen, dass es zwar gelegentlich erforderlich sein kann, eine vorweg nicht einkalkulierte Spalte zusätzlich zu verwenden, aber Du scheinst dies ja regelmäßig zu benötigen ...

Grüße
bastla