PDA

Vollständige Version anzeigen : Automatisches Auslesen von Dateinpfaden


Daniel L
19.07.2012, 09:37
Halli hallo erstmal,

ich hätte eine kurze Frage hier. Bei der Arbeit muss ich mit einem Oszillatorausleseprogramm arbeiten, welches mit seinen Daten eine Excel Tabelle erstellt. Nun habe ich eine andere Excel Tabelle welche mit einem Makro besagte Dateien ausliest und diese als Graphen auswertet. Damit er jetzt aber diese Dateien ausliest muss ich manuell ihm den Dateinpfad geben damit er die Exceldatei mit den Oszi-Daten findet.

Meine Frage ist jetzt ob es möglich ist eine Makro zuschreiben oder dergleichen, dass Excel auf Knopfdruck das selber macht. Da es sehr viele Exceltabellen jedes mal sind verliere ich hier unnötig Zeit.

Grüße
Daniel

IngGi
19.07.2012, 11:00
Hallo Daniel,

und woher weiß Excel, welche Datei die richtige ist? Du hast sicher mehr als nur eine Exceldatei auf deinem PC gespeichert.

Ganz allgemein kannst du zum Beispiel mit Dir oder mit dem FileSystemObject nach Dateien auf Laufwerken suchen.

Gruß Ingolf

Daniel L
19.07.2012, 11:34
Danke für die Antwort.

Das ist eine berechtigte Frage; kann ich leider nicht beantworten muss ich checken. Sagen wir das die Excel tabelle dies garnicht check sondern einfach nur die Werte aus dem Oszi übernimmt. Sie werden ja immer im selben Format abgespeichert.

Genau das will ich ja nicht. Ich will abschaffen das ich manuell nach der Datei suchen muss. Die Frage ist bloß wie stelle ich das an. Der Dateiname ändert sich ja jedes Mal deswegen kann ich auch keinen festen Pfad anlegen.

Gruß
Daniel

IngGi
19.07.2012, 11:53
Hallo Daniel,

wenn ich mal davon ausgehe, dass alle relevanten Dateien in demselben Ordner gespeichert werden und das von diesen Dateien jeweils die zuletzt erstellte Datei die richtige ist, dann könnte man das zum Beispiel so machen:

<blockquote><div style='background-color: #F2F2FF; border: 1px solid #3300B2; padding: 0px 24px;'><pre style='font-size: 12px; padding: 0px 10px;'><span style="color: #0000FF">Sub</span> Datei_suchen<span style='color: #B200CC;'>(</span><span style='color: #B200CC;'>)</span><br><br><span style="color: #0000FF">Dim</span> oFSO <span style="color: #0000FF">As</span> <span style="color: #0000FF">Object</span><br><span style="color: #0000FF">Dim</span> oFolder <span style="color: #0000FF">As</span> <span style="color: #0000FF">Object</span><br><span style="color: #0000FF">Dim</span> oFile <span style="color: #0000FF">As</span> <span style="color: #0000FF">Object</span><br><span style="color: #0000FF">Dim</span> dErstelldatum <span style="color: #0000FF">As</span> <span style="color: #0000FF">Date</span><br><span style="color: #0000FF">Dim</span> sDateipfad <span style="color: #0000FF">As</span> <span style="color: #0000FF">String</span><br><span style="color: #0000FF">Dim</span> wbQuelldatei <span style="color: #0000FF">As</span> Workbook<br><br><br><span style='color: #008000;'>'FileSystemObject initiieren<br></span><span style="color: #0000FF">Set</span> oFSO = CreateObject<span style='color: #B200CC;'>(</span><span style='color: #CC9900;'>"Scripting.FileSystemObject"</span><span style='color: #B200CC;'>)</span><br><span style='color: #008000;'>'Ordner mit den Dateien angeben<br></span><span style="color: #0000FF">Set</span> oFolder = oFSO.GetFolder<span style='color: #B200CC;'>(</span><span style='color: #CC9900;'>"C:\Temp"</span><span style='color: #B200CC;'>)</span><br><br><span style='color: #008000;'>'Alle Dateien in diesem Ordner abklappern<br></span><span style="color: #0000FF">For</span> <span style="color: #0000FF">Each</span> oFile <span style="color: #0000FF">In</span> oFolder.Files<br> <span style='color: #008000;'>'Wenn Exceldatei (ohne Makros)<br></span> <span style="color: #0000FF">If</span> LCase<span style='color: #B200CC;'>(</span>Right<span style='color: #B200CC;'>(</span>oFile.Name,<span style="color: #FF0000"> 4</span><span style='color: #B200CC;'>)</span><span style='color: #B200CC;'>)</span> = <span style='color: #CC9900;'>"xlsx"</span> <span style="color: #0000FF">Then</span><br> <span style='color: #008000;'>'Wenn neuer als alle bisher geprüften Dateien<br></span> <span style="color: #0000FF">If</span> oFile.DateCreated &gt; dErstelldatum <span style="color: #0000FF">Then</span><br> <span style='color: #008000;'>'Pfad in Variable übernehmen<br></span> sDateipfad = oFile.Path<br> <span style='color: #008000;'>'Erstelldatum in Prüfvariable übernehmen<br></span> dErstelldatum = oFile.DateCreated<br> <span style="color: #0000FF">End </span><span style="color: #0000FF">If</span><br> <span style="color: #0000FF">End </span><span style="color: #0000FF">If</span><br><span style="color: #0000FF">Next</span> <span style='color: #008000;'>'file<br></span><br><span style='color: #008000;'>'Neueste Datei öffnen<br></span><span style="color: #0000FF">Set</span> wbQuelldatei = Workbooks.Open<span style='color: #B200CC;'>(</span>sDateipfad<span style='color: #B200CC;'>)</span><br><br><span style='color: #008000;'>'Die Datei ist nun geöffnet und kann verwendet werden<br></span><br><span style="color: #0000FF">End </span><span style="color: #0000FF">Sub</span><br></pre><hr style='color: #3300B2; background: #3300B2; height: 1px;'><p style='font-size: 8px; font-family: Verdana; text-align: right;'>VBA/HTML - CodeConverter für Excelforen<br>AddIn für Excel XP+2003 - komplett in VBA geschrieben von IngGi<br>Anbindung an VBE-Kontextmenü geklaut ;-) bei: <a href='http://www.cpearson.com/excel/VbeMenus.aspx'>http://www.cpearson.com/excel/VbeMenus.aspx</a></p></div></blockquote>

Gruß Ingolf

Daniel L
19.07.2012, 12:11
Uhhh sieht kompliziert aus und ich muss des erstmal ausprobieren, aber der Ansatz ieht schonmal genial aus, vielen Dank. Nachdem ich die ausprobiert habe werde ich einen edit hier schreiben.

Grüße
Daniel :)