13.3k Aufrufe
Gefragt in Tabellenkalkulation von echtjetzt Einsteiger_in (3 Punkte)
Hallo, hoffentlich kann mir jemand helfen, meine sog. "Excel-Profis" sind gescheitert: ich habe in einem Datei-Ordner alle Verträge einzeln, mit fortlaufender Nummerierung gespeichert. In jeder einzelnen Datei befindet sich z.B. in Zelle A9 ein Name, in Zelle A10 die Straße und in Zelle A11 die PLZ mit Ort.
Nun möchte ich ein Makro haben, das mir:
1. in die erste Excel-Datei (z.B. Vertrag1) geht
2. die Werte von Zelle A9, A10, A11 makiert
3. die Datei (z.B. AlleAdressen.xls) öffnet
4. den Wert aus A9 in Zeile A2 kopiert
5. den Wert aus A10 in Zeile B2 kopiert
6. den Wert aus A11 in Zeile C2 kopiert
7. die Datei Vertrag1 schließt
8. die nächste Datei Vertrag2 öffnet
9. Schritt 2-3 durchführt
10. den Wert aus A9 in Zeile A3 kopiert
11. den Wert aus A10 in Zeile B3 kopiert
12. den Wert aus A11 in Zeile C3 kopiert (also immer in die nächste fortlaufende Zeile).
13. usw. bis das Makro die letzte Datei erreicht hat (ca. 500 Stück)
14. fertig und glücklich!
Geht so was?
Über hilfreiche Infos, Tips und Hilfen (Makro) würde ich mich sehr freuen.
Viele Grüße
echtjetzt

11 Antworten

0 Punkte
Beantwortet von sereyanne Einsteiger_in (25 Punkte)
Hi,
funktioniert so was auch wenn sich die Namen nicht systematisch sind?
Freue mich auf Antwort....
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo,

was meinst Du mit

wenn sich die Namen nicht systematisch sind


Erkläre es mal genauer. Bei meiner Lösung aus AW2 sind die Dateinamen egal, weil alle Exceldateien in dem Verzeichnis geöffnet und ausgelesen werden. Siehe dazu auch die Erklärung unter dem Makro in AW2.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von sereyanne Einsteiger_in (25 Punkte)
Achso. Dann entschuldige bitte. Ist das erste Mal, dass ich Excel zu programmieren versuche.
Aber vielen Dank für die sehr schnelle Antwort! (Ist ja doch schon länger her, der Thread hier.)
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo,

ist ja kein Problem und entschuldigen musst Du Dich auch nicht, wenn Du eine Frage stellst. Nur fürs nächste Mal solltest Du einiges beherzigen. Du solltest Dein Problem so genau wie möglich schildern. Außerdem sind Bereichsangaben für eine Hilfe enorm wichtig, denn Du kennst Deine Datei, wir alle hier nicht. Eventuell ist es Dir ja möglich, eine Beispieldatei z.B. bei http://www.file-upload.net/ ]hochzuladen und den Link, den Du erhältst, uns hier mitzuteilen. Die enthaltenen Daten können ruhig Dummy-Daten sein. Das hilft meist enorm viel weiter.

Außerdem wäre es schön, wenn Du ein Hallo am Anfang und ein Gruß am Ende schreiben würdest. Denn das würde Deinen Beitrag gleich viel netter aussehen lassen. Wenn Du zum Bäcker gehst sagst Du ja auch beim Reingehen "Guten Tag" und beim Gehen "Auf Wiedersehen". Denn die Leute, an die Du Deine Frage richtest, sitzen zwar am PC, sind aber dennoch Menschen.

Wenn Du noch mehr über das Schreiben eines möglichst richtigen Beitrags lesen möchtest, dann schau Dir doch mal diese Anleitung von @Mickey an.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von sereyanne Einsteiger_in (25 Punkte)
Hi,
also ein "Hallo" hatte ich doch geschrieben... ansonsten war meine Frage so kurz, weil ich im Stress bin und der Threadstarter es ziemlich genau so erklärt hat, wie es auch mein Problem ist.
Ich bin ja noch nicht mal zum Ausprobieren gekommen... einfach noch keine Zeit gehabt.
Danke für den Upload-Link.
Schön dass man hier so hilfreiche Antworten bekommt, und dann auch noch so schnell, und dann auch noch auf so ein altes Thema!
Danke & Bis später
Sereyanne
0 Punkte
Beantwortet von sereyanne Einsteiger_in (25 Punkte)
Hi,
da ich meinen Beitrag anscheinend nicht editieren kann, muss ich noch einen schreiben.

@coros: Deine Antwort war klasse! Hat mir sehr geholfen!!

Aber ein Problem habe ich noch: Ich will die Daten nicht in das erste freie Feld kopieren, sondern erst ab A7 kommen die Felder, wo die Daten reinkopiert werden sollen. Sonst hat alles prima geklappt!!!! Könntest du mir da nochmal helfen?

Gruß Sereyanne
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Sereyanne,

das sollte mit nachfolgendem Code funktionieren.

Option Explicit

Sub Daten_kopieren()
Dim Pfad As String, Dateiname As String, iRow As Long
Application.ScreenUpdating = False
Pfad = "C:\Eigene Dateien\"
Dateiname = Dir(Pfad & "*.xls")
Do While Dateiname <> ""
Workbooks.Open Filename:=Pfad & Dateiname
iRow = ThisWorkbook.Sheets("Tabelle1").Range("A65536").End(xlUp).Offset(1, 0).Row
If iRow < 7 Then iRow = 7
Workbooks(Dateiname).Sheets("Tabelle1").Range("A9").Copy
ThisWorkbook.Sheets("Tabelle1").Cells(iRow, 1).PasteSpecial
Workbooks(Dateiname).Sheets("Tabelle1").Range("A10").Copy
ThisWorkbook.Sheets("Tabelle1").Cells(iRow, 2).PasteSpecial
Workbooks(Dateiname).Sheets("Tabelle1").Range("A11").Copy
ThisWorkbook.Sheets("Tabelle1").Cells(iRow, 3).PasteSpecial
Workbooks(Dateiname).Close
Dateiname = Dir()
Loop
End Sub


MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von sereyanne Einsteiger_in (25 Punkte)
Hallo,
wow, vielen Dank. Bin noch gar nicht zum Testen gekommen, mach ich aber noch.
Ich habe aber noch ein weiteres Problem: Eine Zelle der Quelldateien enthält eine Wenn-Formel. Mit deinem Makro wird alles prima übernommen, dafür werden meine Zellformatierungen wieder umgeschrieben. Das Problem ist aber, wenn das Makro die Zelle mit der Wenn-Formel kopieren will, dann steht in der neuen Mappe nur #Bezug! Wie kann ich nur den errechneten Inhalt kopieren, ohne dass sich Excel um die Formel kümmert?
Gruß Sereyanne
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo ,

ändere überall im Makro dort, wo

.PasteSpecial
steht in

.PasteSpecial Paste:=xlPasteValues

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von sereyanne Einsteiger_in (25 Punkte)
Hi,
alles klar, vielen herzlichen Dank!!!
Gruß Sereyanne
...