Suche in Dateien

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

pappa
**
Beiträge: 24
Registriert: Fr, 05.01.2007 15:24

Suche in Dateien

Beitrag von pappa »

Hallo,

folgendes Problem:

Ich habe hunderte gleichförmiger Dateien (Rechnungen bzw. Lieferscheine) und möchte die jenigen finden, die etwas bestimmtes in einer bestimmten Zelle stehen haben.

Beispiel: Die Dateien aus "/home/office/Lieferscheine" in denen "Meier GmbH" in Zelle "B8" steht

Geht so etwas? Wenn ja, wie?

Gerne auch Hinweise ob mein Problem schon einmal hier abgehandelt wurde ;-)

Danke im Voraus

Grüße
Achim
AhQ
*******
Beiträge: 1096
Registriert: Fr, 15.06.2007 11:03
Wohnort: Regensburg
Kontaktdaten:

Re: Suche in Dateien

Beitrag von AhQ »

Hallo Achim,

also, eine einfache Lösung wäre wahrscheinlich irgendwas mit Makro oder so, da kenn ich mich nicht wirklich aus. Was ich an Deiner Stelle mit dem mir zur Verfügung stehenden Wissen machen würde, wäre eine extra Tabelle, in der die zu durchsuchenden Dateinamen und die dazu gehörigen Zellen der Reihe nach aufgelistet sind. Und diese Liste kannst Du dann leicht z.B. mit Vergleich() absuchen und Dir dann den entsprechenden Dateinamen ausgeben lassen. Um aber soweit zu kommen, solltest Du Dir erst einmal anschauen, wie Sanne hier das mit der Datei-Verknüpfungsgeschichte erklärt. Wenn das ein Weg ist, den Du gehen willst, dann helf ich Dir beim Rest auch gerne, weil das dann im Grunde nicht mehr aufregend ist. (Über Vergleich() bekommst Du die Zeilennummer der Übereinstimmung, den setzt Du bei Indirekt("SpalteMitDateinamen"&Vergleich()) ein und schon hast Du den Dateinamen erhalten)

Viele Grüße
AhQ
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Suche in Dateien

Beitrag von turtle47 »

Hallo Zusammen,

wenn man folgendes Makro aus einem Calc-Dokument startet werden alle Dateinamen des angegeben Ordners
in Spalte A geschrieben und in Spalte B die direkte Verknüpfung zu der angegebenen Zelle und dessen Wert
bzw. Text angezeigt.

In dem Ordner dürfen aber nur ausschließlich odt-Dateien enthalten sein !!
Nach dem Starten bitte abwarten bis Abschlussmeldung erfolgt.

Am Anfang würde ich mit ein paar Testdateien versuchen.

Code: Alles auswählen

Sub Zellen_auslesen
	Dim sFile as String, sPath As String
	Dim sDir as String, sValue as String
	Dim sFullPath As String
	Dim iFIle as Integer
	sPath = "D:\NeuerOrdner" 'Ort der die Dateien enthält >> Pfad anpassen!
	dPath = converttourl(sPath)
	i = 0
	sValue = Dir$(sPath & getPathSeparator() & "*", 0)
	Do
	sValue1 = svalue
	sValue = Dir$
	myDoc = thisComponent
	mySheet = myDoc.sheets(0) 'erstes Tabellenblatt
	mycell1 = mysheet.getCellByPosition(0,i)'Spalte A > Dateinamen
	mycell2 = mysheet.getCellByPosition(1,i) 'Spalte B > Formel
	mycell1.string = svalue1
	mycell2.formula= "=('" & dPath & "/" & sValue1 & "'#$Tabelle1.B8)" 'Wert aus Tabelle1 Zelle B8 
	i=i + 1
	Loop Until sValue = ""
	msgbox "Der Vorgang ist abgeschlossen" ,64 , "Zellen auslesen"
End Sub
Hilft das weiter?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
AhQ
*******
Beiträge: 1096
Registriert: Fr, 15.06.2007 11:03
Wohnort: Regensburg
Kontaktdaten:

Re: Suche in Dateien

Beitrag von AhQ »

Hallo,
turtle47 hat geschrieben:Hilft das weiter?
Klasse, irgendwann muß ich mir auch mal programmieren beibringen.

@Achim

ja, man nehme Jürgens Makro, lasse das in einer Datei laufen. Dann hast Du, wie Jürgen schreibt, in Spalte A die Dateinamen und in Spalte B die Werte der entsprechenden Zelle. In z.B. D1 schreibst Du jetzt den gesuchten Begriff. Und drunter kommt dann folgende Formel:

=INDIREKT("A"&VERGLEICH(D1;B2:B400;0)+1)

Damit erhälst Du den Dateinamen mit der ersten (!) Übereinstimmung. Wenn die Formel nicht in Zeile 2 steht, mußt Du das bei dem +1 entsprechend angleichen. Solltest Du mehrere Übereinstimmungen haben, dann muß man sich da noch was ausdenken. Da gabs vor einiger Zeit hier im Forum mal ein Problem, wo Eia dann den Startpunkt der Suche hat wandern lassen. Sowas könnte man dann ausprobieren. Du könntest natürlich auch noch ein =ZÄHLENWENN(B2:B400;D1) einbauen, dann wüßtest Du schon immer gleich, wieviele Treffer Du insgesamt hast und suchen solltest.

Ich hoffe, das alles hier hilft Dir schon mal weiter.

Viele Grüße
AhQ
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Suche in Dateien

Beitrag von turtle47 »

Hallo Zusammen,

auch wenn Achim sich anscheinend nicht mehr für das Thema interessiert habe ich die Handhabung
etwas vereinfacht. Vielleicht kann es ja noch jemand anders gebrauchen.

In der angefügten Datei ist eine Schaltfläche enthalten mit dem man das Makro startet.
Es öffnet sich ein Dialog, in dem man den Ordner auswählen kann, in dem sich die Dateien befinden.
Im zweiten Dialog kann man dann den Tabellennamen eingeben und im dritten Dialog wird dann die
Zelle eingeben die abgefragt werden soll. Man braucht also nicht mehr in den Makrocode einzugreifen. 8)

Es ist jetzt auch egal wenn auch andere Dokumententypen als *.ods in dem Ordner enthalten sind, diese werden
jetzt einfach übersprungen. :lol:

Das Ganze ist getestet unter Ubuntu 8.04 und Win XP.

Jürgen
Dateianhänge
Dateinamen_Ordner_ auslesen.ods
(9.41 KiB) 157-mal heruntergeladen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten