Eigene Dateiendung -> bat -> vba

Hei,

ich sitze etwas länger schon an ein Problem und komme da nicht weiter.
Ich habe eine txt Datei mit eigener Endung ("*.gih"). Dieser Name & Pfad der Datei soll in einer Variable eines Makros in Excel geschrieben werden, um sie dort direkt zu bearbeiten. Jedoch ist dieses Excelsheet auch noch nicht geöffnet.
Dafür habe ich mir folgendes gedacht:
gih-datei wird automatisch per Windows mit der Bat- Datei geöffnet
Diese Bat-datei muss die exceldatei öffnen und gleichzeitig den Pfad +Namen der gih-Datei als Parameter an die Sub Workbook_open übergeben.

Es geht mir speziell um die Bat datei.
Wie definiere/vererbe ich den Pfad+Namen der gih-Datei
Wie öffne ich die Excel datei und gebe automatisch den Parameter über?

Vielen Dank im Voraus

gih-datei wird automatisch per Windows mit der Bat- Datei
geöffnet
Diese Bat-datei muss die exceldatei öffnen und gleichzeitig
den Pfad +Namen der gih-Datei als Parameter an die Sub
Workbook_open übergeben.

Es geht mir speziell um die Bat datei.
Wie definiere/vererbe ich den Pfad+Namen der gih-Datei
Wie öffne ich die Excel datei und gebe automatisch den
Parameter über?

Hallo Saoumi,

was du alles Excel beim Öffnen „mitgeben“ kannst steht in der Hilfe von Excel.
Darunter steht wie du Excel mitteilen kannst welche Excel-Mappe es öffnen soll.

In das „Workbook_Open“-Erignis dieser mappe kannst du nun Code stellen, der eine bestimmte Textdatei öffnet und einliest.

Gruß
Reinhard

Hallo Reinhard,

#ich glaube du hast mich falsch verstanden. Bei Datei, die am Anfang ausgeführt wird, handelt es sich um eine normale Datei, die lediglich einen ASCII-code enthält.
Diese Datei sollte allerdings beim öffnen in windows automatisch in eine spezielle Excel Datei eingelesen werden.

Ich dachte, dass man das besser mit einer abt-datei machen könnte.

Gruß
Soumi

Hallo Saoumi,

#ich glaube du hast mich falsch verstanden.

kann sein daß wir noch Kommunikationsstörungen ahben :smile:

Wenn eine ExcelMappe geöffnet wird mit aktivierten Makros
so wird automatisch der Code ausgeführt der im Open-Ereignis
der Mappe steht.
Die Prozedurhülle dieses Codes sieht so aus:

Private Sub Workbook_Open()
End Sub

Ergo kannst du der Prozedur so keinen Parameter, z.B. einen Dateinamen „mitgeben“.

Du kannst in einer Excelmappe, z.B. mymappe.xls, den Open_Code so schreiben:

Private Sub Workbook_Open()
'Öffne Pfad\Name.gih
End Sub

Dies startest du dann mit einer batch (.bat-Datei) in der steht:

Pfad\Excel.exe Pfad\mymappe.xls

Alternativ kannst du die Batch so schreiben:

Pfad\Excel.exe Pfad\Name.gih

Dann müßte/könnte Excel Name.gih als Textdatei ansehen und dementsprechend versuchen die Datei einzulesen.
Wahrscheinlich kommt dann das Fensterchen des Textkonverters.

Falls das nicht klappt, probiere es mit dieser Batch:

xcopy Pfad\Name.gih Pfad\Name.txt
Pfad\Excel.exe Pfad\Name.txt

Bei Datei, die am
Anfang ausgeführt wird, handelt es sich um eine normale Datei,
die lediglich einen ASCII-code enthält.

Was soll das bedeuten? Du hast da eine Textdatei. Gut.
Ausführbar ist die NUR wenn sie eine bestimmte/bekannte Endung hat.
gih ist unbekannt ergo wird die Textdatei nicht ausgeführt sondern
es wird die Anwendung gestartet die an deinem Rechner mit Textdateien verküpft ist.
Vielleicht Notepad oder so.
Wenn das nicht geschieht wird dir Windows mitteilen daß es mit dem Dateityp nix anfangen kann…

Ich dachte, dass man das besser mit einer abt-datei machen
könnte.

.bat ist ein Weg…
Noch sehe ich dein genaues Ziel nur verschwommen am Horizont :smile:

Gruß
Reinhard

Hallo Reinhard,

danke erstmal, dass du dir die Mühe machst, aber es ist immernoch nicht, was ich gerne haben würde…
Meine Datei mit meiner eigenen Dateiendung soll nicht statisch irgendwo liegen, sondern mal direkt auf dem Desktop, mal direkt unter C:\ oder auch einfach als Emailanhang.
Durch Doppelklick auf meine Textdatei mit eigener Endung soll sich eine Batdatei öffnen (das müssen wir /ich über die Windows-Registry oä lösen)
Diese Batdatei muss dann wissen, an welchem Ort sich die Textdatei befindet. Und wie gesagt: der Ort der Textdatei darf nicht statisch sein!
Ich muss also nun „nur noch“ an Excel sagen, mit Hilfe der Bat-Datei:
Es befindet sich eine Textdatei gerade an diesem Ort (z.B. in diesem Moment gerade an C:\Test\test.gih) und Excel soll diese Datei benutzen in der Datei test.xls die immer statisch in einem bestimmten Ordner liegt.

Also erstmal müssen wir es mit der Batdatei schaffen, einen dynamischeb Ort „auszulesen“
Dann diesen an Excel weiterzugeben

Hallo Soumi,

Meine Datei mit meiner eigenen Dateiendung soll nicht statisch
irgendwo liegen, sondern mal direkt auf dem Desktop, mal
direkt unter C:\ oder auch einfach als Emailanhang.
Durch Doppelklick auf meine Textdatei mit eigener Endung soll
sich eine Batdatei öffnen (das müssen wir /ich über die
Windows-Registry oä lösen)

höchstwahrscheinlich hast du Recht und in der Registry wird wohl eine
Liste der Dateitypen (Endungen) stehen und dabei die Programme die sie Öffnen sollen.
Also bei xls Excel, bei doc Word.
Bei jmd. mit open Office steht da wohl
xls OO-Calc doc OO-Writer u.s.w.

Ich habe jetzt mal probehalber der Endung .gih Excel zugewisen.
Das klappt auch, also bei Doppelkick auf .gih-Datei kömmt Excel und öffnet sie.

Bei Win XP machte ich das so
Start—Systemsteuerung—Ordneroptionen—Dateitypen…
Dann mit „Neu“ den datentyp gih angelegt.
Bei „Öffnen mit“ konnte ich aus einer Liste Excel auswählen, das war’s.

Ich denke ich hätte da auch irgendwie eine bestimmte .bat als Öffnungsprogramm für alle .gih angeben können.
In dieser .bat hat man den Namen der .gih wenn man den Parameter %%1
auswertet.
Ob damit auch den Pfad der .gih, weiß ich grad nicht.

Diese Batdatei muss dann wissen, an welchem Ort sich die
Textdatei befindet. Und wie gesagt: der Ort der Textdatei darf
nicht statisch sein!

Ich bin nicht der Schnellste aber das habe ich nun begriffen, (glaub) :smile:)

Ich muss also nun „nur noch“ an Excel sagen, mit Hilfe der
Bat-Datei:
Es befindet sich eine Textdatei gerade an diesem Ort (z.B. in
diesem Moment gerade an C:\Test\test.gih) und Excel soll diese
Datei benutzen in der Datei test.xls die immer statisch in
einem bestimmten Ordner liegt.

Grad das geht SO nicht.
M.E. müßte man da anders vorgehen. Vielleicht wissen ja andere bessere Wege.

Man könnte wie o.g. die Endung .gih mit Excel verknüpfen.
Dann im zweiten Schritt ein Klassenmodul für deine personl.xls
(persönliche Arbeitsmappe) schreiben.
Der Code in dem Modul prüft dann jedesmal wenn Excel eine Mappe öffnet, ob es sich dabei um eine .gih-Datei handelt.

Wenn dem so ist, öffnet Excel zusätzlich deine test.xls.
Dann hast du doch alles was du brauchst, deine test.xls ist geöffnet,
sogar die .gih auch und du kennst Pfad zu der .gih-Datei.

Oder aber man läßt das Klassenmodul weg und schreibt eine Batch, die man mit dem Dateityp .gih verknüpft hat, so:

Pfad\excel.exe %%1
Pfad\excel.exe Pfad\test.xls

Gruß
Reinhard