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

Daten aus meheren Sheets in mehreren Dateien sammeln

Frage Microsoft Microsoft Office

Mitglied: opto79

opto79 (Level 1) - Jetzt verbinden

16.04.2012, aktualisiert 18.10.2012, 3510 Aufrufe, 8 Kommentare

Hallo zusammen,

bin neu hier im Forum und auch bekennender VBA-Unwissender. Ich suche nach einer Lösung mit der ich aus verschiedenen Dateien, mit jeweils meheren Tabellenblättern immer die gleich Zelle aus jedem Tabellenblatt in eine Zeile (aufsteigend) einer neuen Exceldatei zusammen fassen kann.

Jetzt mal zu den Details:

ich habe eine große Anzahl (einige hundert) Dateien mit dem Namen 225-xxxx_xxxx_raw.tdm (xxxx variiert im Dateinamen und enthält so etwas wie Losnummern also nur Zahlen). Das Dateiformat *.tdm kann ich ganz normal über Doppelklick öffnen (Plugin). In diesen Dateien gibt es jeweils 89 Tabellenblätter. In den Blättern 2-89 (Namen LED 01 bis LED 88) stehen immer an gleicher Stelle Zahlenwerte. Diese möchte ich in einer neuen Datei Auswertung.xlsx zusammen fassen. Pro gelesener Datei soll eine Zeile in Auswertung.xlsx hinzugefügt werden mit Dateinamen in Spalte 1 und den 88 Zahlenwerten in Spalte 2-89.
Ich hoffe ihr verzeiht meine Unwissenheit. Ich habe zwar einige Ansätze zumindest für das Datei öffnen gefunden aber Durchgehen vieler Dateien und mehrerer Blätter hab ich nicht gefunden.

Grüße
Christian
Mitglied: bastla
16.04.2012, aktualisiert 18.10.2012
Hallo opto79 und willkommen im Forum!
Durchgehen vieler Dateien und mehrerer Blätter hab ich nicht gefunden
Ersteres hatten wir etwa hier, und letzteres lässt sich mit einer Schleife der Art
01.
For i = 2 To 89 
02.
    Wert = Sheets(i).Range("A3").Value 
03.
Next
umsetzen ...

Grüße
bastla
Bitte warten ..
Mitglied: NetWolf
16.04.2012 um 17:19 Uhr
Moin Moin,

soweit ich lesen konnte -> Verwenden Sie die COM-API des TDM Excel Add-Ins, um TDM-/TDMS-Dateien per VBA-Script in Microsoft Excel zu laden.
Quelle: http://zone.ni.com/devzone/cda/tut/p/id/7526

Eine andere Möglichkeit sehe im im Moment nicht. Als VBA - Unwissender solltest du deine Kenntnisse diesbezüglich schnell erweitern, wenn du solche Projekte planst.

Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: opto79
16.04.2012 um 18:12 Uhr
Hallo Wolfgang,

kannst du mir sagen wie ich diese COM-API verwende? Ich hab mir jetzt folgenden Code zusammengebastelt:
Sub Zusammenfassen()

01.
Sub Zusammenfassen() 
02.
 
03.
Const sSourcePath = "C:\..........." 'Ordner der Dateien 
04.
Set wbGes = ActiveWorkbook 'aktuelle Mappe und ... 
05.
Set wsZiel = ActiveWorkbook.ActiveSheet '... aktuelle Tabelle zwischenspeichern 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 
08.
Z = 2 'ab Zeile 2 in der Sammeltabelle eintragen 
09.
 
10.
 
11.
Application.ScreenUpdating = False 'während der folgenden Aktionen Excel-Bildschirm "einfrieren"; diese Zeile kann auch auskommentiert / entfernt werden 
12.
For Each oFile In fso.GetFolder(sSourcePath).Files 'alle Dateien des Ordners durchgehen 
13.
    If LCase(fso.GetExtensionName(oFile.Name)) = "tdm" Then 'nur .xls-Dateien bearbeiten; falls "xlsx" bitte anpassen; nur Kleinbuchstaben verwenden 
14.
        Set wbQuellDatei = Application.Workbooks.Open(oFile.Path) 'Datei öffnen 
15.
        For I = 2 To 89 
16.
            Wert = Sheets(I).Range("F5").Copy 'Zelle auslesen und ... 
17.
            wsZiel.Cells(Z, I).Paste '... einfügen  
18.
        Next 
19.
        Z = Z + 1 'Zeilennummer der Zieltabelle für das nächste Einfügen erhöhen 
20.
        wbQuellDatei.Close 'Datei schließen 
21.
    End If 
22.
Next 
23.
Application.ScreenUpdating = True 'Excel-Bildschirmanzeige wieder "auftauen" ;-) 
24.
wsZiel.Activate 'zur Sicherheit Zieltabelle aktivieren 
25.
wbGes.Save 'Sammeldatei speichern 
26.
MsgBox "Fertig." 
27.
End Sub
Die TDM Datei versucht diese Funktion auch zu oeffnen, allerdings ist die Formatierung exakt die die Excel ohne dasc Add-On erzeugt. Hier existiert dann nur ein Tabellenblatt und ich bekomme einen Index-Fehler.

Ich werde diese Projekte auch nicht regelmäßig angehen. Ich habe nur auf einer Anlage jede Menge Daten im o.g. Format gefunden von denen niemand wusste das sie existieren, jetzt möchte ich diese für eine Statistik nutzen.

Grüße
Christian
Bitte warten ..
Mitglied: bastla
16.04.2012 um 18:21 Uhr
Hallo opto79!
kannst du mir sagen wie ich diese COM-API verwende?
Eine Beschreibung ist auf der von NetWolf genannten Seite verlinkt: http://zone.ni.com/devzone/cda/tut/p/id/10207
Um übrigens noch den Dateinamen in Spalte A unterzubringen, könntest Du vor Zeile 15 einfügen:
wsZiel.Cells(Z, "A").Value = oFile.Name
Grüße
bastla
Bitte warten ..
Mitglied: opto79
16.04.2012 um 18:29 Uhr
Danke, werd mich morgen weiter damit rumplagen .

Grüße
Christian
Bitte warten ..
Mitglied: opto79
17.04.2012 um 14:02 Uhr
Hello again ,

ich hab mich jetzt mal versucht mit dem Add-In zu beschäftigen. Habe zunächst versucht lediglich via VBA die *.tdm zu öffnen (Ist dann als Mappe1.xlsx aktiv) und dann wieder mit dem Dateinamen.xlsx abzuspeichern. Es scheitert wohl am Aufruf des Objektes, jedenfalls bekomme ich immer den Fehler Objekt erforderlich.

01.
Sub Umbenennen() 
02.
 
03.
COMAddIns.Item ("ExcelTDM.TDMAddin") 
04.
 
05.
Const sSourcePath = "Q:\....." 
06.
 
07.
For Each oFile In fso.GetFolder(sSourcePath).Files 'alle Dateien des Quellordners durchgehen 
08.
    If LCase(fso.GetExtensionName(oFile.Name)) = "tdm" Then 'nur .tdm-Dateien bearbeiten, es sind auch noch tdx Files vorhanden 
09.
        Set wbQuellDatei = Object.ImportFile(oFile.Path) 
10.
        Active.Workbook.SaveAs (oFile.Name) 
11.
    End If 
12.
Next 
13.
 
14.
End Sub
könnt ihr mir beim Aufruf dieses ExcelTDM.TDMAddin helfen?

Grüße
Christian
Bitte warten ..
Mitglied: bastla
17.04.2012 um 14:48 Uhr
Hallo opto79!

Wird's mit dieser Zeile 3
Set Object = COMAddIns.Item("ExcelTDM.TDMAddin") 
besser?

Grüße
bastla
Bitte warten ..
Mitglied: opto79
17.04.2012 um 15:11 Uhr
Nein leider nicht, der Fehler bleibt der gleiche. Ich hab auch die PDF Anleitung von NI durchgesehen und in der VBA Hilfe gesucht wie ich das Add In aktiviere. Wenn ich nämlich im VBA auf Add-Ins klicke zeigt er mir das TDM-AddIn nicht an.

Grüße
Christian
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Microsoft Office
Excel Daten aus diversen Tabellen sammeln (9)

Frage von FitforLife zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell: Dateien nach Version löschen in mehreren Ordnern (4)

Frage von ImmerKind zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...