Top-Themen

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
Kommentar vom Moderator Biber am 07.12.2011 um 19:30:22 Uhr
Codeformatierung nachgezogen.

gelöst Inhalte aus Excel-Dateien in Sammeldokument kopieren mittels Makro?

Mitglied: EvaM26

EvaM26 (Level 1) - Jetzt verbinden

07.12.2011, aktualisiert 19:30 Uhr, 10368 Aufrufe, 6 Kommentare

Hallo zusammen!
Ich habe die glorreiche Aufgabe bekommen, ein Makro für Excel zu programmieren, habe das aber noch nie zuvor gemacht. Ich habe hier im Forum auch schon einige Beiträge gefunden (z.B.: - https://www.administrator.de/index.php?content=141027, http://www.online-excel.de/excel/singsel.php?f=100, https://www.administrator.de/index.php?content=48278 etc.). Da ich aber wie gesagt ein blutigster Anfänger in dieser Sache bin muss ich hier mein Problem trotzdem nochmal schildern:

Ziel des Makros soll es sein Daten aus ca. 150 unterschiedlichen einzelnen Excel-Sheets (die alle gleich aufgebaut sind) in eine große Sammeldatei zusammenzufassen. Dabei geht es jeweils immer nur um die 2. Zeile der Daten (also ohne Spaltenüberschrift), die aus mehreren Spalten (Name, Vorname, Präferenz 1, Präferenz 2 etc.) besteht. Es sollen also die jeweiligen Daten übernommen werden und untereinander in ein Sammeldoc eingetragen werden. Bisher existieren diese ca. 150 verschiedenen Dateien noch nicht.

Die Dateien werden dann (sie werden im zuge eines Bewerbungsverfahrens per Mail zugeschickt) alle zusammen an einem Ort gespeichert werden (Frage: Muss die "Sammeldatei" und die Quelldateien im gleichen Ordner gespeichert werden oder ist es besser in verschiedenen Ordnern? Wie müssen die Datenblätter benannt werden, damit es möglichst einfach ist, oder dürfen die auch ganz unterschiedlich heissen (was am besten wäre)?). Ich kann also die Rahmenbedingungen teilweise noch gestalten und suche nun nach einem Makro, das relativ einfach ist. Ich hoffe, diejenigen die ich bisher gefunden habe sind zu komplex für mein Problem. Außerdem sagen sie mir nicht viel (Eine kurze Erklärung darüber, wo ich dann den entsprechenden Pfad oder Dateinamen oder sonstiges eintragen muss, wäre also TOP)

Ich hoffe, meine Frage löst jetzt kein mega-Gelächter aus und auch keinen Zorn!
Ich sage schon jetzt ein riesiges Dankeschön!
Liebe Grüße
Eva

Nachtrag: Jetzt habe ich mittlerweile etwas rumprobiert und hab mal das eingegeben:
01.
sQuellpfad = "C:\...\Bewerbungen-Test" 
02.
Q = Array("A2", "B2", "C2", "D2", "E2", "F2", "G2", "H2", "I2", "J2", "K2", "L2") 
03.
Z = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L") 
04.
 
05.
R = 2 
06.
 
07.
Set wbGes = ActiveWorkbook 
08.
Set fso = CreateObject("Scripting.FileSystemObject") 
09.
N = UBound(Q) 
10.
 
11.
For Each oFile In fso.GetFolder(sQuellpfad).Files 
12.
    If LCase(Right(oFile.Name, 4)) = ".xls" Then 
13.
        Application.Workbooks.Open oFile.Path 
14.
        For i = 0 To N 
15.
            wbGes.Worksheets(1).Cells(R, Z(i)).Value = ActiveWorkbook.Worksheets(1).Range(Q(i)).Value 
16.
        Next 
17.
        ActiveWorkbook.Close False 
18.
        R = R + 1 
19.
    End If 
20.
Next 
21.
 
22.
wbGes.Worksheets(1).Activate 
23.
wbGes.Save 
24.
MsgBox

Dann erscheint mir die Fehlermeldung: "Fehler beim Komplieren: Argument ist nicht optional" (ich denke das hat irgendwas mit dem letzten Befahl zu tun der die Datei speichern soll.
Ach ja, die Vorlage hab ich übrigends von hier: https://www.administrator.de/contentid/107948)

Wer kann den helfen, bitte? Was ist falsch?
Grüße
Mitglied: bastla
07.12.2011 um 19:47 Uhr
Hallo EvaM26 und willkommen im Forum!

Wenn Du ohnehin zusammenhängende Zellen übernehmen willst, lässt sich das etwas vereinfachen:
01.
Sub Sammeln() 
02.
sQuellpfad = "C:\...\Bewerbungen-Test" 
03.
 
04.
QZeile = 2 'Zeile in Quelldatei 
05.
QSpalten = 12 'Spaltenanzahl 
06.
QSpalteAb = "A" ' ab dieser Spalte insgesamt "QSpalten" Spaltenwerte übernehmen 
07.
 
08.
ZZeile = 2 'erste Zeile in Zieldatei 
09.
ZSpalteAb = "A" 'erste Spalte in Zieldatei 
10.
 
11.
Set wbGes = ActiveWorkbook 
12.
Set fso = CreateObject("Scripting.FileSystemObject") 
13.
 
14.
For Each oFile In fso.GetFolder(sQuellpfad).Files 
15.
    If LCase(Right(oFile.Name, 4)) = ".xls" Then 'nur ".xls"-Dateien verarbeiten; bei ".xlsx" natürlich die letzten 5 Zeichen vergleichen 
16.
        Application.Workbooks.Open oFile.Path 'Quelldatei öffnen 
17.
        'Zellen lt Vorgabe aus Quelldatei lesen und in aktuelle Zeile der Zieldatei schreiben 
18.
        wbGes.Worksheets(1).Cells(ZZeile, ZSpalteAb).Resize(1, QSpalten).Value = ActiveWorkbook.Worksheets(1).Cells(QZeile, QSpalteAb).Resize(1, QSpalten).Value 
19.
        ActiveWorkbook.Close False 'Quelldatei schließen 
20.
        ZZeile = ZZeile + 1 'Zeilennummer Zieldatei erhöhen 
21.
    End If 
22.
Next 
23.
 
24.
wbGes.Save 'Zieldatei speichern 
25.
End Sub
Die Quelldateien (Dateinamen egal, Dateityp wie in Zeile 15 des Makros) sollten nicht im gleichen Ordner wie die Zieldatei liegen. Daten werden immer nur aus der angegebenen Zeile (siehe Makro-Zeile 4) im ersten Blatt der Quelldatei gelesen.

Grüße
bastla
Bitte warten ..
Mitglied: EvaM26
07.12.2011 um 20:10 Uhr
Hallo bastla!

Super, dass du schreibst! Vielen lieben Dank!
Also ich glaubs grad nicht, es hat tatsächlich geklappt!!! Du bist mein persönlicher Held!! Jippi!
Ich hab jetzt zum testen alle Dateien in ".xls" umgewandelt. Aber es werden aller voraussicht nach sowohl ".xls" als auch ".xlsx" Dateien werden. Was muss ich nun noch anpassen?

Riesengroßes Dankeschön schon mal!!
Grüße
Eva
Bitte warten ..
Mitglied: Biber
07.12.2011 um 20:43 Uhr
Moin EvaM26,

willkommen im Forum.
Schau mal in bastlas Zeile 15... er hat da schon mal was vorbereitet...

Häng einfach noch ein ' OR LCase(Right(oFile.Name, 5)) =".xlsx" 'dran und gut.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
07.12.2011 um 20:55 Uhr
... oder auch:
If LCase(Left(fso.GetExtensionName(oFile.Name), 3)) = "xls" Then
Grüße
bastla
Bitte warten ..
Mitglied: EvaM26
07.12.2011 um 21:51 Uhr
Hallo Biber!
ahja, das war ein sehr guter Tipp von dir! Vielen Dank! Supergeilo! Es funktioniert! Ich bin begeistert! Vielen Dank an euch beide!
Dann markiere ich diesen Thread mal mit erledigt!
Ihr seid klasse!
Dankeschön!
Wunderschönen Abend noch!
Grüße
Eva
Bitte warten ..
Mitglied: Peppino
25.01.2018 um 16:09 Uhr
Hi Ich hoffe ich kann den Thread nochmal zum Leben erwecken,

ich bräuchte etwas ähnliches. Jedoch sollen alle Zeilen der Dateien ausgelesen und kopiert werden. Beginnend ab Zeile 10, Spalte A. Es gibt 15 spalten.
Kann mir da evtl. jemand helfen =/
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Excel 2010 VB Makro Inhalt einer Webseite in Browser kopieren schlägt fehlt

Frage von SweetOneMicrosoft Office17 Kommentare

Hallo liebe Leute! ich möchte den Inhalt einer Webseite in ein Excel Sheet kopieren. manueller Weg: Seite öffnen>Str+A>Str+C>Excel>Str+V also ...

Microsoft Office

Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten

gelöst Frage von packmann2016Microsoft Office5 Kommentare

ich möchte mit Hilfe einem Makro Zellen die einen bestimmten Inhalt ("G" und "A") haben ausblenden. Versuchte mit dem ...

Microsoft Office

Excel Makro

Frage von maloh1984Microsoft Office4 Kommentare

Hallo Habe ein Problem, ein Kunde der hat Excellisten mit Makro die lassen sich öffnen aber die Buttons reagieren ...

Microsoft Office

Excel-Makro

gelöst Frage von yuki13Microsoft Office7 Kommentare

Hallo Zusammen!! :-) Ich bin nicht so fit in Excel Makros und wollte mich hier erkundigen, ob mir jemand ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 18 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 18 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...