Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 5772 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

Outlook & Mail
gelöst Exceldateien in Kontakt Notizen in Microsoft Outlook 2013 (4)

Frage von Matze08 zum Thema Outlook & Mail ...

Microsoft Office
gelöst Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (9)

Frage von ich2110 zum Thema Microsoft Office ...

Microsoft Office
gelöst Daten (Tabelle) aus E-Mail nach Excel übertragen (6)

Frage von kaiuwe28 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(1)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Humor (lol)
gelöst Freidach Beitrag (40)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Firewall
gelöst Firewall Firmeneimsatz (20)

Frage von wiesi200 zum Thema Firewall ...

Multimedia & Zubehör
gelöst 8 GB USB Stick besitzt nur noch 4 MB Kapazität (13)

Frage von Gwahlers zum Thema Multimedia & Zubehör ...