Hallo liebe Profis,
Ich bin leider noch ein ziemlicher Anfänger in VBA, daher sucher ich hier Hilfe. Ich versuche einen Makro zu schreiben, mit dessen Hilfe ich Daten von verschiedenen Excel Datein in einer zusammenfassen kann. Die Blätter sind alle gleich aufgebaut und die gewünschten Daten immer in den selben Zellen. Leider sind diese Zellen weder in einer/m Spalte, Zeile, Feld sondern wild verteilt:(C15,C16,C17,C34,C41,C49,C50,C56,C57,C133,C139,C145,F145,D152,C159,C161,C162) im Sheet("Overview").
Es sind Cirka 50 Excel Datein im selben Ordner,es kommen aber immer mal welche hinzu, den ich gerne automatisch durchsuchen würde. Ich will also eine Datei Öffnen, die Daten auslesen und in einen Array (50, 18) stecken (50 Daten und 17 Werte plus der Dateiname an Stelle (i,1)). Dannach soll die Datei geschlossen werden und die nächste geöffnet werden und in die nächste Zeile des Arrays schreiben. am Ende soll der Ganze Arry in die Übersicht eingefügt werden.
Schön Wär auch wenn man den Arry Dynamisch machen könnte so das er sich an die aktuelle Dateien anzahl anpasst.
Die Tabelle soll dann quasi so ausschauen.
Ich habe anhand meiner rudimentären Kenntnise und einiger Codefetzen schonmal ein Frankencode geschriebn, welcher aber nicht so recht möchte. Würde mich freuen wenn mir jemand helfen könnte
Grüße Newman
Ich bin leider noch ein ziemlicher Anfänger in VBA, daher sucher ich hier Hilfe. Ich versuche einen Makro zu schreiben, mit dessen Hilfe ich Daten von verschiedenen Excel Datein in einer zusammenfassen kann. Die Blätter sind alle gleich aufgebaut und die gewünschten Daten immer in den selben Zellen. Leider sind diese Zellen weder in einer/m Spalte, Zeile, Feld sondern wild verteilt:(C15,C16,C17,C34,C41,C49,C50,C56,C57,C133,C139,C145,F145,D152,C159,C161,C162) im Sheet("Overview").
Es sind Cirka 50 Excel Datein im selben Ordner,es kommen aber immer mal welche hinzu, den ich gerne automatisch durchsuchen würde. Ich will also eine Datei Öffnen, die Daten auslesen und in einen Array (50, 18) stecken (50 Daten und 17 Werte plus der Dateiname an Stelle (i,1)). Dannach soll die Datei geschlossen werden und die nächste geöffnet werden und in die nächste Zeile des Arrays schreiben. am Ende soll der Ganze Arry in die Übersicht eingefügt werden.
Schön Wär auch wenn man den Arry Dynamisch machen könnte so das er sich an die aktuelle Dateien anzahl anpasst.
Die Tabelle soll dann quasi so ausschauen.
Dateiname | Wert1 | Wert n | Wert 17 |
Tab 1 | |||
Tab n | |||
Tab 50 |
Quellcode
- Sub Uebersicht_erstellen()
- Dim dat
- Dim ordner
- Dim datein
- Dim fso
- Dim L As Integer
- Dim i
- Dim Arr(100, 25) As Integer
- Set dat = Application.FileDialog(msoFileDialogFolderPicker)
- With dat
- .Title = "Welche Daten wollen sie zusammenfassen?"
- .InitialFileName = "C:/nocheinorner/und_nocheiner" 'oder was auch immer
- nochmal:
- If .Show = -1 Then
- ordner = .SelectedItems(1)
- Else:
- If MsgBox(" Ordner wählen ! " & vbCrLf & "Nochmal ?", vbYesNo) = vbYes Then
- GoTo nochmal
- Else:
- GoTo raus
- End If
- End If
- End With
- Set fso = CreateObject("Scripting.filesystemobject")
- Set datein = fso.getfolder(ordner)
- For Each i In datein.Files
- If i.Name Like "*.xlsx" Then
- Dim Arry(100, 25)
- Workbooks.Open WB
- Sheets("Overview").Select
- Arr(L, 0) = C15
- Arr(L, 1) = C16
- Arr(L, 2) = B17 ' Bis Arr(L, 16) ?
- L = L + 1
- Workbooks(WB.Name).Close False
- End If
- Next
- Range("B:U") = Arr
- raus:
- End Sub
Ich habe anhand meiner rudimentären Kenntnise und einiger Codefetzen schonmal ein Frankencode geschriebn, welcher aber nicht so recht möchte. Würde mich freuen wenn mir jemand helfen könnte
Grüße Newman