Für mich ein riesenproblem - Excel Zellen aus mehreren Dateien in ein neues Worksheet zusammenführen
hallo zusammen....
da mich beruf sehr stark auslastet und ich kaum ahnung von VB hab ist dies für mich ein riesenproblem.....vielleicht kann mir jemand helfen......
nach meiner bisher wochenlanger suche nach einem makro für meine aufgabe und unzähligen anpassungsversuchen gefundener scripte
schein das der letzte ausweg zu sein....<g>
da ich kaum ahnung habe von VB und mir alles zusammensuchen muss dacht ich mir ich bitte mal jemand der mir ein kleines script zusammen stellt
da verschieden prof. programmierer/innen richtig viel geld für meine anwendung wollen......(der gedanke linux wird mir immer sympathischer)bin ich nun hier gelandet.
folgende anforderung hätte ich:
ich betreibe ein photovoltaik anlage die mir jeden tag ne mail mit ner excel anlage schickt in der datum ,anlagenstatus, gesamtleistung des tages und den peak wert des tages was maximal eingespeisst wurde enthält.
dh.jeden tag ne mail mit nem anhang der als dateiname immer so beginnt "090314_EnergyReport_PVGneiting.xls"...wobei immer die ersten 6 zeichen des dateinames variieren ( datum der erstellung hier der 14.3.09)
des weiteren müssten die zellen der jeweiligen datei A9,B9,C9 und C21 in eine neue datei(worksheet) beginnend ab zeile 2 inA2,B2,C2,D2 wieder eingefügt werden.
nächste datei ( ich bekomm ja jeden tag ne neue mit neuen werten)....nächste zeile inder gleichen datei dh. zeile3 inA3,B3,C3,D3.....usw.
dies soll zur zusammen führung der monatlichen / jährlichen daten der PV anlage gedacht sein um im laufe der jahre einen überblick zu bekommen und auch zu sehen ob im durchschnitt die anlage an leistung verliert oder nicht zu protokolieren.
die bisher gesammelten anlagen befinden sich im pfad "D:\pvanhang"
die neu erstellte datei kann im gleichen ordner abgelegt werden die dann zb. den dateinamen "liste.xls" heissen kann.
ich wäre sehr froh wenn mir jemand helfen würde......
software......xp SP2 u, win7.....office 2007
vielen dank mal im vorraus
Eberhard
da mich beruf sehr stark auslastet und ich kaum ahnung von VB hab ist dies für mich ein riesenproblem.....vielleicht kann mir jemand helfen......
nach meiner bisher wochenlanger suche nach einem makro für meine aufgabe und unzähligen anpassungsversuchen gefundener scripte
schein das der letzte ausweg zu sein....<g>
da ich kaum ahnung habe von VB und mir alles zusammensuchen muss dacht ich mir ich bitte mal jemand der mir ein kleines script zusammen stellt
da verschieden prof. programmierer/innen richtig viel geld für meine anwendung wollen......(der gedanke linux wird mir immer sympathischer)bin ich nun hier gelandet.
folgende anforderung hätte ich:
ich betreibe ein photovoltaik anlage die mir jeden tag ne mail mit ner excel anlage schickt in der datum ,anlagenstatus, gesamtleistung des tages und den peak wert des tages was maximal eingespeisst wurde enthält.
dh.jeden tag ne mail mit nem anhang der als dateiname immer so beginnt "090314_EnergyReport_PVGneiting.xls"...wobei immer die ersten 6 zeichen des dateinames variieren ( datum der erstellung hier der 14.3.09)
des weiteren müssten die zellen der jeweiligen datei A9,B9,C9 und C21 in eine neue datei(worksheet) beginnend ab zeile 2 inA2,B2,C2,D2 wieder eingefügt werden.
nächste datei ( ich bekomm ja jeden tag ne neue mit neuen werten)....nächste zeile inder gleichen datei dh. zeile3 inA3,B3,C3,D3.....usw.
dies soll zur zusammen führung der monatlichen / jährlichen daten der PV anlage gedacht sein um im laufe der jahre einen überblick zu bekommen und auch zu sehen ob im durchschnitt die anlage an leistung verliert oder nicht zu protokolieren.
die bisher gesammelten anlagen befinden sich im pfad "D:\pvanhang"
die neu erstellte datei kann im gleichen ordner abgelegt werden die dann zb. den dateinamen "liste.xls" heissen kann.
ich wäre sehr froh wenn mir jemand helfen würde......
software......xp SP2 u, win7.....office 2007
vielen dank mal im vorraus
Eberhard
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127197
Url: https://administrator.de/contentid/127197
Ausgedruckt am: 26.11.2024 um 02:11 Uhr
7 Kommentare
Neuester Kommentar
Zitat von @surfincool:
da verschieden prof. programmierer/innen richtig viel geld für
meine anwendung wollen......(der gedanke linux wird mir immer
sympathischer).
da verschieden prof. programmierer/innen richtig viel geld für
meine anwendung wollen......(der gedanke linux wird mir immer
sympathischer).
Öhm gehts mit Linux besser?? Denke auch da wird es Prof Programmierer geben die RICHTIG bezahlt werden wollen, für Arbeit.
Zu deinem Problem:
Denke das ist schonwieder zu Speziell als das es eine "Google-find-Download-benutze" Lösung geben wird.
Aber wenn man Google benutzt gibt es ALLE Informationen die man braucht.
Was brauchst du:
- Öffnen von Excel ".xls" Dateien
- Auslesen von Zellen
- Einfügen in eine Excel ".xls" Datei
Hier mal ein Ansatz für die Eierlegendewollmilchsau:
Excel von VB aus öffnen und schliessen:
http://www.vbarchiv.net/faq/vbvba_excel.php
Hallo surfincool und Iwan!
Da ich hier schon etwas in der Art versucht hatte, habe ich das mal angepasst (ist allerdings nur oberflächlich getestet):
Dieses Script ist von (einem Modul) der Sammeldatei aus zu starten, wobei alle .XLS-Dateien des Basisordners "D:\pvanhang" verarbeitet werden - die Sammeldatei sollte daher nicht in diesem Ordner liegen oder müsste explizit ausgeschlossen werden (und darf auch nicht den gleichen Namen wie eine der Einzeldateien tragen). Auch ein Kennzeichnen / Verschieben / Erkennen aufgrund des Datums der verarbeiteten Dateien wäre sicherlich eine sinnvolle Ergänzung ...
Grüße
bastla
Da ich hier schon etwas in der Art versucht hatte, habe ich das mal angepasst (ist allerdings nur oberflächlich getestet):
Sub Sammle()
Const BASISORDNER = "D:\pvanhang"
Const DATEITYP = ".XLS"
Const ABZEILE = 2 'Eintragungen in die Zieltabelle beginnen in Zeile 4 ...
Const ABSPALTE = 1 '... und Spalte A.
QuellZellen = Split("A9,B9,C9,C21", ",") 'Aus diesen Zellen der Quelltabelle werden die Daten geholt.
UBQuellZellen = UBound(QuellZellen)
LenDateiTyp = Len(DATEITYP)
Set ZielMappe = ThisWorkbook
Set ZielTabelle = ThisWorkbook.ActiveSheet
ZielZeile = ABZEILE
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Datei In fso.GetFolder(BASISORDNER).Files
If UCase(Right(Datei.Name, LenDateiTyp)) = DATEITYP Then
Set QuellMappe = Workbooks.Open(Datei.Path)
With QuellMappe.Worksheets(1) 'Daten in erstem Tabellenblatt suchen
For i = 0 To UBQuellZellen
With .Range(QuellZellen(i)) 'Für jede in QuellZellen angeführte Zelle ...
ZielTabelle.Cells(ZielZeile, ABSPALTE + i).Value = .Value '... Wert und ...
ZielTabelle.Cells(ZielZeile, ABSPALTE + i).NumberFormat = .NumberFormat '... Zahlenformat übertragen
End With
Next
End With
QuellMappe.Saved = True 'Quellmappe soll ohne Rückfrage (und ohne zu speichern) ...
QuellMappe.Close '... geschlossen werden.
ZielZeile = ZielZeile + 1
End If
Next
ZielMappe.Save 'Speichern der Sammelmappe erst nach Übernahme aus allen Dateien.
End Sub
Grüße
bastla
guten morgen,
danke, bastla, für das Makro, aber hast du das schon mal in Excel 2007 probiert?
ich habe surfincool gestern schon geholfen und konnte wieder mal kotzen
es ist immer wieder erstaunlich, wie wenig Kompatibel Office-Versionen zueinander sind
z.B. Sortierung von Spalten: ein Makro, was in 2000 funktionierte, geht in 2003 nicht mehr - umgekehrt aber schon
z.B. Application.FileSearch: die Funktion wurde in 2007 einfach weggelassen
naja, egal, muss man wohl mit leben....
@surinfcool
bitte den Beitrag dann noch als Wie kann ich einen Beitrag als gelöst markieren? markieren, danke
danke, bastla, für das Makro, aber hast du das schon mal in Excel 2007 probiert?
ich habe surfincool gestern schon geholfen und konnte wieder mal kotzen
es ist immer wieder erstaunlich, wie wenig Kompatibel Office-Versionen zueinander sind
z.B. Sortierung von Spalten: ein Makro, was in 2000 funktionierte, geht in 2003 nicht mehr - umgekehrt aber schon
z.B. Application.FileSearch: die Funktion wurde in 2007 einfach weggelassen
naja, egal, muss man wohl mit leben....
@surinfcool
bitte den Beitrag dann noch als Wie kann ich einen Beitrag als gelöst markieren? markieren, danke