Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel 2003 Automatisches Übertragen von Daten versch. Exceldateien auf eine Exceldatei

Frage Microsoft Microsoft Office

Mitglied: paterpen

paterpen (Level 1) - Jetzt verbinden

22.10.2012 um 15:24 Uhr, 5742 Aufrufe, 8 Kommentare

Ich versuche mich schon ewig daran mein Problem zu lösen. Ich habe hier ein Beitrag gefunden, der fast mein Problem trifft, aber ich schaff es nicht den Code so umzuändern, dass er auf mein Problem passt.
Link: http://www.administrator.de/forum/excel-makro-daten-aus-mehreren-tabell ...

Hallo,
ich hoffe ich kann mein Problem verständlich erkären.

Ich habe verschiedene Excel Sheets (in einem Ordner) mit denen Kalkulationen durchgeführt werden. Jedes dieser Sheets hat eine Übersichtsseite (Deckblatt), auf der die errechneten Kennzahlen/Summen aber auch Text steht ( E38 bis G57 und ich habe keine Rechte das Dokument zu ändern).

Jetzt sollen die Datenblöcke nebereinander angeordnet werden, damit es schön übersichtlich ist.
Wie schon gesagt, eigentlich ist der oben genannte Link schon die Lösung, aber ich schaff es einfach nicht ihn auf mein Problem zu übertragen.

Ich hoffe ihr könnt mir weiter helfen.

Vielen Dank im Voraus.



lg paterpen
Mitglied: drnatur
22.10.2012 um 16:00 Uhr
hallo paterpen,

bitte beschreib doch mal genau, worin dein Problem besteht.
Kommt eine Fehlermeldung beim Ausführen des Makros?
Wird in der Zieldatei nichts eingetragen?
.....

liebe Grüße, drnatur
Bitte warten ..
Mitglied: bastla
22.10.2012, aktualisiert 05.11.2012
Hallo paterpen und willkommen im Forum!

Vielleicht geht es ja so besser:
01.
Sub Zusammenfassen() 
02.
sQuellpfad = "D:\Test" 
03.
 
04.
QT = "Deckblatt" 'Tabellenname in der Quelldatei 
05.
Q = "E38:G57" 'Quellbereich 
06.
ZAbSpalte = 1 'ab dieser Spalte Daten in Sammeldatei schreiben 
07.
ZZeile = 3 'ab dieser Zeile Daten in Sammeldatei schreiben 
08.
 
09.
Set wbGes = ActiveWorkbook 
10.
Set fso = CreateObject("Scripting.FileSystemObject") 
11.
 
12.
QSpalten = Range(Q).Columns.Count 'Spaltenanzahl des Quellbereichs ermitteln 
13.
QZeilen = Range(Q).Rows.Count 'Zeilenanzahl des Quellbereichst ermitteln 
14.
ZSpalte = ZAbSpalte 'Spaltennummer vorbelegen 
15.
 
16.
For Each oFile In fso.GetFolder(sQuellpfad).Files 
17.
    If LCase(fso.GetExtensionName(oFile.Name)) = "xlsx" Then 
18.
        Application.Workbooks.Open oFile.Path 
19.
        wbGes.Worksheets(1).Cells(ZZeile, ZSpalte).Value = fso.GetBaseName(ActiveWorkbook.Name) 'Dateinamen der Quelldatei eintragen 
20.
        wbGes.Worksheets(1).Cells(ZZeile + 1, ZSpalte).Resize(QZeilen, QSpalten).Value = ActiveWorkbook.Worksheets(QT).Range(Q).Value 'Werte aus Quelldatei übernehmen 
21.
        ActiveWorkbook.Close False 
22.
        ZSpalte = ZSpalte + QSpalten 'Spaltennummer der Zieldatei für nächsten Block erhöhen 
23.
    End If 
24.
Next 
25.
 
26.
wbGes.Worksheets(1).Activate 
27.
wbGes.Save 
28.
MsgBox "Fertig." 
29.
End Sub
Alternativ zur Angabe des Blattnamens (Variable QT) kannst Du (wie im verlinkten Beitrag) in Zeile 20 auch einfach 1 (für erstes Blatt der Mappe) verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: paterpen
24.10.2012, aktualisiert 25.10.2012
Ersteinmal vielen Dank für die schnelle Antwort. Ich hatte es garnicht erwartet so schnell eine Antwort zu bekommen. Ich war leider gestern den ganzen Tag verhindert, sodass ich erst heute antworten kann.

Das Makro funktioniert! Nach 1h tüfteln hab ich heraus gefunden, dass ich in Zeile 17 statt "xlsx", "xls" eingeben muss. So simple...
Vielen vielen Dank. Wenn ich überlegt, wie lange ich an dem Makro saß (ca 25h) und Bastla mir innerhalb von 2h die Lösung gibt :D Respekt.

Meine Frage ist damit beantwortet, aber ich hätte noch zwei Folgefragen:

1. Ich habe jetzt meine Excel erweitert um ein Objekt, das bei Bestätigung das Makro ausführt + Format der kopierten Daten anpasst. Aber ich weiß nicht, wie ich das Format auf nur die kopierten Tabellen/Daten bezieh?

Meine Idee (keine schöne Lösung) wäre es das Format auf einen riesigen Bereich zu übertragen per Makro, aber jetzt müsste ich Spalten ausblenden lassen in Abhängigkeit von den Dateien die ich einlese, damit es schöner aussieht.
ungefähr so:

b = 200

Worksheets("Tabelle1").Columns(Zspalte & ":" & b).Select
Selection.EntireRow.Hidden = True



2. Das Marko gibt ja automatisch den Namen der jeweiligen Datei aus. Kann ich gleichzeitig auch noch den Hyperlink dazufügen lassen???


Vielen Dank im Voraus

lg paterpen
Bitte warten ..
Mitglied: paterpen
05.11.2012 um 10:19 Uhr
Schade, dass mir keiner mehr antwortet. Ist meine Frage quasi geschlossen, da ich die Lösung habe??????

Ich würde gern noch wissen, ob ich auch gleichzeitig mit den Werten das Format übertragen kann.


Lg

Paterpen
Bitte warten ..
Mitglied: bastla
05.11.2012 um 16:41 Uhr
Hallo paterpen!

Jeweils E38:G57 zu kopieren, sollte etwa so gehen:
01.
Sub Zusammenfassen() 
02.
sQuellpfad = "D:\Test" 
03.
 
04.
QT = "Deckblatt" 'Tabellenname in der Quelldatei 
05.
Q = "E38:G57" 'Quellbereich 
06.
ZAbSpalte = 1 'ab dieser Spalte Daten in Sammeldatei schreiben 
07.
ZZeile = 3 'ab dieser Zeile Daten in Sammeldatei schreiben 
08.
 
09.
Set wbGes = ActiveWorkbook 
10.
Set fso = CreateObject("Scripting.FileSystemObject") 
11.
 
12.
QSpalten = Range(Q).Columns.Count 'Spaltenanzahl des Quellbereichs ermitteln 
13.
QZeilen = Range(Q).Rows.Count 'Zeilenanzahl des Quellbereichst ermitteln 
14.
ZSpalte = ZAbSpalte 'Spaltennummer vorbelegen 
15.
 
16.
For Each oFile In fso.GetFolder(sQuellpfad).Files 
17.
    If LCase(fso.GetExtensionName(oFile.Name)) = "xlsx" Then 
18.
        Application.Workbooks.Open oFile.Path 
19.
        wbGes.Worksheets(1).Cells(ZZeile, ZSpalte).Value = fso.GetBaseName(ActiveWorkbook.Name) 'Dateinamen der Quelldatei eintragen 
20.
        ActiveWorkbook.Worksheets(QT).Range(Q).Copy  wbGes.Worksheets(1).Cells(ZZeile + 1, ZSpalte)'Zellen aus Quelldatei kopieren 
21.
        ActiveWorkbook.Close False 
22.
        ZSpalte = ZSpalte + QSpalten 'Spaltennummer der Zieldatei für nächsten Block erhöhen 
23.
    End If 
24.
Next 
25.
 
26.
wbGes.Worksheets(1).Activate 
27.
wbGes.Save 
28.
MsgBox "Fertig." 
29.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: paterpen
06.11.2012 um 08:36 Uhr
Hallo Bastla,

erstmal danke für die Antwort. Ich habe es doch hinbekommen, aber ein bisschen anders. Wobei eigentlich ist es des gleiche^^

ab Zeile 20:

ActiveWorkbook.Worksheets(QT).Range(Q).Copy
wbGes.Worksheets(1).Cells(ZZeile + 1, Zspalte).Resize(QZeilen, QSpalten).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


und zu meiner anderen Frage (Spalten ausblenden, wenn sie leer sind), ist das hier die Lösung:

Dim rngZelle As Range
For Each rngZelle In Range("E20:IG20")
rngZelle.EntireColumn.Hidden = rngZelle = ""
Next rngZelle



- Hättest du auch eine Lösung zu dem Hyperlink Problem?
d.h. dem Dateinamen automatisch auch den Hyperlink zuweisen.

Vielen Dank im Voraus

Lg Paterpen
Bitte warten ..
Mitglied: bastla
06.11.2012 um 11:22 Uhr
Hallo paterpen!

Schon mal versucht, den entsprechenden Code über das Aufzeichnen eines Makros zu finden (abgesehen davon, dass mit dem Stichwort "Hyperlink" auch die Online-Hilfe Brauchbares liefern sollte)?

Grundsätzlich könnte das dann etwa so aussehen:
01.
wbGes.Worksheets(1).Hyperlinks.Add wbGes.Worksheets(1).Cells(ZZeile, ZSpalte), oFile.Path, , ,fso.GetBaseName(ActiveWorkbook.Name)
Grüße
bastla
Bitte warten ..
Mitglied: paterpen
07.11.2012 um 08:21 Uhr
Hallo bastla,

vielen Dank erstmal. Das Makro funktioniert super. Es ist mittlerweile ziemlich kompliziert, da noch mehr Sachen dazu gekommen sind, die ich hier nicht gefragt habe :D

Ich versuch immer als erstes über Aufzeichnen alles zu lösen bzw. so die Befehle heraus zu finden. Dann such ich im Internet nach Lösungen und versuch diese auf mein Problem zu übertragen. Und dann poste ich erst hier :D

Meistens fehlt mir nur der richtige Befehl bzw. ich habe kleine Fehler.

Beim Aufzeichnen ist auch immer das Problem, dass ich so eine Lösung hinbekomme, diese aber nicht für anderen Dateien/Anwendungen übertragbar sind und ich dann das Makro erstmal "verallgemeinern" muss.
Naja...

Nochmal vielen Dank für die gute Unterstützung.

lg
paterpen
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Microsoft Office
Excel ein automatisches Inhaltsverzeichnis wie in Word? (3)

Frage von Server4Alle zum Thema Microsoft Office ...

Microsoft Office
Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (7)

Frage von ich2110 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel Daten automatisch in mehrere Exceldateien exportieren (9)

Frage von paggo69 zum Thema Microsoft Office ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...