Seite 1 von 1

gelöst: Alle Dateien eines Ordners per Makro einlesen

Verfasst: So, 04.05.2008 18:06
von erikafuchs
Hallo zusammen,

ich brauche mal wieder Hilfe:
Ich möchte per Makro aus allen CalcDateien in einem Ordner jeweils ein Blatt in eine neue Tabelle einfügen. Die Dateien haben alle Namen der Form "Rechentrainer_Vorname_Nachname.odt" das können zwischen 20 und 30 Dateien sein. Seht ihr eine Möglichkeit alle Dateien einzulesen ohne die einzelnen Namen und Vornamen vorher einzugeben?

Grüße von
Pit

Re: Alle Dateien eines Ordners per Makro einlesen

Verfasst: So, 04.05.2008 21:56
von turtle47
Hallo Tante Erika :wink:,

schau dir mal diesen Beitrag an.

In der dort hinterlegten Datei findest Du einen Code der alle Dateien in einem Ordner, in diesem Fall von Writer, der Reihe nach öffnet, eine Aktion durchführt, und das Dokument wieder schließt. Ich denke das dieses schon mal ein guter Ansatz für Dein Vorhaben ist.

Schöne Grüsse.

Jürgen

Re: Alle Dateien eines Ordners per Makro einlesen

Verfasst: So, 04.05.2008 23:04
von erikafuchs
Lieber Jürgen,

vielen Dank, das sieht doch ganz gut aus! Da werde ich mich dann mal durcharbeiten.

So long

Pit

Re: Alle Dateien eines Ordners per Makro einlesen

Verfasst: Mo, 05.05.2008 11:08
von komma4
wenn ich mal anmerken darf:


in der Bibliothek TOOLS findet sich die Funktion READDIRECTORIES(), welche genutzt werden kann. Mit dem folgenden Aufruf werden alle Dateinamen ab dem gegebenen Pfad in einem Array zurück geliefert:

Code: Alles auswählen

' Funktion aus Tools, liefert array von URLs ab dem Basisverzeichnis
aDateien = ReadDirectories(  "d:\" , TRUE , FALSE , FALSE ) 
HTH

Re: Alle Dateien eines Ordners per Makro einlesen

Verfasst: Mo, 05.05.2008 12:14
von erikafuchs
Lieber Wilfried,

man lernt immer dazu - Vielen Dank! Mit den eingebauten Makros habe ich noch nie gearbeitet - das sieht aber doch richtig gut aus! Kannst du mir auch noch einen Tip geben, wie ich die Anzahl der Dateien berechne damit ich eine Schleife konstuieren kann?

Grüße
Pit

Re: Alle Dateien eines Ordners per Makro einlesen

Verfasst: Mo, 05.05.2008 12:20
von komma4
aDateien ist das Array mit den Dateinamen.

Mit uBound( aDateien ) erhälst Du den oberen Index des Arrays, also:

Code: Alles auswählen

If uBound( aDateien ) > -1 then 
  Anzahl = uBound( aDateien ) + 1 
  print "Anzahl gefundener Dateien: " & Anzahl
  for i = lBound( aDateien ) to uBound( aDateien ) 
  print "bearbeite Datei " & aDateien( i ) 
  ' ...
  next i
End If
Hilft das?

Re: Alle Dateien eines Ordners per Makro einlesen

Verfasst: Di, 06.05.2008 16:27
von erikafuchs
Lieber Winfried,

perfekt - vielen Dank!

von Pit

Re: gelöst: Alle Dateien eines Ordners per Makro einlesen

Verfasst: Di, 06.05.2008 16:34
von erikafuchs
Lieber Winfried,

eine Frage hätte ich noch: Um auf die Funktion in den Tools zugreifen zu müssen, muss ich den Tools Ordner einmal aufmachen - das geht doch sicher auch einfacher?

Noch´n Dank
Pit

Re: gelöst: Alle Dateien eines Ordners per Makro einlesen

Verfasst: Di, 06.05.2008 17:06
von komma4
Ja: Bibliotheken, deren Funktionen genutzt werden sollen, müssen geladen werden.

Code: Alles auswählen

If _
 ( Not GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) ) _
 Then
  GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
End If