Herbers Excel-Forum - das Archiv

Spalten einfügen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Spalten einfügen
von: Richard

Geschrieben am: 13.04.2005 09:29:16
Hallo,
hab ein Problem, und zwar ich habe ca. 50 Dateien, jetzt möchte ich in jede Datei (mit Tabellen) neue Spalten einfügen, wie kann ich das mit VBA vereinfachen?
gruß
Rich.
Bild

Betrifft: AW: Spalten einfügen
von: Rolf Beißner
Geschrieben am: 13.04.2005 14:20:29
Hallo Richard,
sind alle Arbeitsmappen im gleichen Verzeichnis abgelegt,
und werden die Leer(?)-Spalten immer an der gleichen (welcher?) Stelle eingefügt?
fG
Rolf
Bild

Betrifft: AW: Spalten einfügen
von: Richard
Geschrieben am: 14.04.2005 08:39:04
Hallo Rolf,
genau, die alle Arbeitsmappen sind im gleichen Verzeichnis abgelegt, die Leerspalten z.b. V1 bis Y1; AB1 bis AE1; AH1 bis AK1 usw. werden in den Arbeitsmappen immer an gleicher Stelle eingefügt
gruß
Rich
Bild

Betrifft: AW: Spalten einfügen
von: Rolf Beißner

Geschrieben am: 14.04.2005 10:16:04
Hallo Richard,
der folgende Code geht davon aus,
dass du in einer Inputbox eingibst,
welche Spalten eingefügt werden sollen.
Diese werden dann bei allen Dateien + allen Sheets
im ausgewählten Verzeichnis eingefügt.
Du tust also gut daran, zunächst mal ein Testverzeichnis
mit wenigen Dateien anzulegen und dir anzusehen,
ob die Wirkung deinen Vorstellungen entspricht.
Melde dich bitte, ob's ok ist.
fG
Rolf
Option Explicit
Dim InsertCols As String
'Startprozedur
Sub start_insert_cols()
'Rolf Beißner.hf.14.04.05
Const VerzDefault As Variant = "C:\"
Dim verz As String
verz = Ordner_def(VerzDefault)
ChDir verz
InsertCols = InputBox("Bitte die Spalten eingeben", "Spalteneingabe", "C:D")
Application.ScreenUpdating = False
WorkFileList (verz)
End Sub

'Excel-Dateien öffnen + Spalten in jedes Sheet einfügen
Sub WorkFileList(folderspec)
On Error Resume Next
Dim fs As Object, f As Object, fc As Object, fl As Object
Dim s As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.Files
For Each fl In fc
If fl.Type = "Microsoft Excel-Arbeitsblatt" Then
Workbooks.Open fl.Name
For Each s In Sheets
s.Columns(InsertCols).Insert Shift:=xlToRight
Next
Workbooks(fl.Name).Close True
End If
Next
End Sub

'Ordnerdefinition
'aus Herber-Forum von K.Rola am 11.10.04
Function Ordner_def(defaultwert As Variant) As String
Dim objFolderItem As Object, strPath As String, objShell As Object
Dim objFolder As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0&, "Ordner auswählen...", 0&, defaultwert)
If objFolder Is Nothing Then End
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
Ordner_def = strPath
End Function

Bild

Betrifft: AW: Spalten einfügen
von: Richard
Geschrieben am: 14.04.2005 13:01:47
Hallo Rolf,
ich danke dir vielmals für die Antwort, ich muss mir erstmal den Code anschauen, um begreifen zu können, was hier gemacht wird:-) danke dir nochmals
gruß
richard
Bild

Betrifft: AW: Spalten einfügen
von: Richard
Geschrieben am: 14.04.2005 13:05:09
ich bins nochmal,
sobald ich das ausprobiert habe werde ich mich melden
gruß
richard
Bild

Betrifft: AW: Spalten einfügen
von: Richard

Geschrieben am: 15.04.2005 15:46:30
Hallo Rolf,
gestern bin ich nicht mehr dazugekommen den Code auszuprobieren. Nun habe ich es getestet aber wenn ich in die Inputbox z.B. Spalten E:E eingebe und den Ordner aufsuche tut sich nichts, woran kann das liegen?
gruß
rich.
 Bild
Excel-Beispiele zum Thema "Spalten einfügen"
Vorkommen von Zahlenreihen in Spalten Funktion ANZAHL2 ohne ausgeblendete Spalten
Spaltenbreite anpassen Spalten einer Mehrbereichsauswahl ausblenden.
Spaltennamen bestimmen Spalten/Zeilen aus- und einblenden
Zeilen und Spalten über ein Drehfeld ein- und ausblenden In einem Dialog ausgewählte Spalten drucken
Spalten bedingt summieren und Zellen formatieren Abfrage der markierten Spalten