Autor
|
Thema: Öffnen eines Dokumentes per Makro (979 mal gelesen)
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 21. Dez. 2007 00:30 <-- editieren / zitieren --> Unities abgeben:
Hallo, Eigentlich eine ganz einfach Sache, das Öffnen eines Dokumentes per Makro. Workbooks.Open Filename:= _ "W:\........xls" aber, wie man sieht liegt das Dokument auf dem Laufwerk W, anderer PC. Wenn dieser andere PC später gestartet wurde, und ich noch nicht über den Explorer auf das Laufwerk W geschaut habe, findet das Makro diese Laufwerk W nicht. Gibt es per Makro eine Möglichkeit da etwas, was anscheinend noch nicht aktiv ist, zu aktivieren? Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 21. Dez. 2007 08:02 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
Guten Morgen Mike, ungetestet: Du hattest mal ne PDF öffnen wollen. Vielleicht kannst Du so ähnlich vorgehen: Also z.B. einen Dialog aufrufen, der ja dann im Dateimanager auch das bis dahin noch nicht aktivierte LW anzeigt. Danach sollte Excel das LW kennen. Also z.B. eine nur dafür angelegte Textdatei auf diesem LW öffnen und wieder schliessen. Stark um die Ecke gedacht... ich mach mir erstmal nen kaffee ;-)------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arossbach Mitglied Ingenieur Masch.bau
Beiträge: 1181 Registriert: 13.06.2001
|
erstellt am: 21. Dez. 2007 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 21. Dez. 2007 10:15 <-- editieren / zitieren --> Unities abgeben:
Danke ihr beiden, hab die beiden Möglichkeiten in meinen Makros hinterlegt. Da aber mein "Server" über die Nach lief, Datensicherung, muss ich dann mal neu starten um zu prüfen ob es funktioniert, jetzt öffnen natürlich beide. Bei der Shell ist es etwas unschön da ein neues Excel geöffnet wird, könnte aber damit leben. Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 21. Dez. 2007 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 21. Dez. 2007 10:27 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Paulchen: wenn der Rechner noch nicht an ist, ist das Laufwerk (=Drive!) noch nicht vorhanden?!
Schon klar, nur Windows versucht beim Starten die Laufwerke zu verbinden, und gelingt nicht, wenn der zweite PC noch nicht läuft. Dann starte ich den zweiten PC, und dann sind die Laufwerke eigentlich verfügbar, und über den Explorer werden diese auch gefunden, nach einer kurzen Wartezeit (weniger wie 1 Sekunde). Somit geht ich davon aus, dass Windows prüft, ob das Laufwerk jetzt verfügbar ist. Bei meinem Excelmakro wird dies nicht durchgeführt, bez. wird durch den Versucht die Datei zu öffnen auch nicht in Windwos angeworfen, dann auch ein zweiter Versucht bringt dann keinen Erfolg. Das Makro, welches hinter deinem Link zu finden ist, prüft ob eine Verzeichnis vorhanden ist. Werde ich mal probieren, könnte genau die Suche in Windwos anwerfen, welche ich oben angemerkt habe. Gruss und Danke Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 21. Dez. 2007 10:46 <-- editieren / zitieren --> Unities abgeben:
Hallo nachmal, Hab jetzt beide Kisten neu gestartet. Shell bringt eine Fehlermeldung dass er die Datei nicht finden kann. Das Programm von Frederik bringt die Frage ob das Verzeichnis erstellt werden soll. Habs dann noch auf UNC geändert, dann wird das Verzeichnis gefunden, und nicht gefragt ob es neu stellt werden soll. Ein Ja, wenn nicht UNC funktioniert nicht, da dann das Laufwerk nicht gefunden wird. Öffnen der Datei über UNC funktioniert. Das Laufwerk W ist dann per Makro zwar immer noch nicht verfügbar, muss aber auch nicht, denn speichern funktioniert. Gruss und Danke Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 21. Dez. 2007 10:55 <-- editieren / zitieren --> Unities abgeben: Nur für Oberli Mike
vielleicht muss auch der Aufruf auch erst über das API gehen, damit die LW für XL vorhanden sind?? Modul test Code: Sub LwVorhanden() Dim UNC As String If LwTyp("W:") = "" Then MsgBox "Laufwerk W: ist nicht vorhanden." End If UNC = HolUNCName("W:") If UNC = "" Then MsgBox "Laufwerk W: ist nicht vorhanden." Else MsgBox "Laufwerk W: aka " & UNC & "ist vorhanden." End If End Sub
Modul API AufrufeCode: Public Function HolUNCName(strLaufwerk As String) As String Dim strPuffer As String Dim lngLänge As Long strPuffer = Space(255) lngLänge = Len(strPuffer) If WNetGetConnection(strLaufwerk, strPuffer, lngLänge) = 0 Then HolUNCName = Left(strPuffer, lngLänge - 1) End If End Function
Code: Public Function LwTyp(strLaufwerk As String) As String Dim lngRWert As Long 'API-Funktion aufrufen lngRWert = GetDriveType(strLaufwerk) 'Passende Typbezeichnung als eigenen Funktionswert zurückgeben If lngRWert = 2 Then LwTyp = "Diskette/Wechselplatte" ElseIf lngRWert = 3 Then LwTyp = "Festplatte" ElseIf lngRWert = 4 Then LwTyp = "Netzlaufwerk" ElseIf lngRWert = 5 Then LwTyp = "CD-Laufwerk" ElseIf lngRWert = 6 Then LwTyp = "RAM-Disk" Else LwTyp = "" End If End Function
habe leider kein Netzlaufwerk momentan ;-), daher stark ungetestet in punkto Netzlaufwerk;-) ------------------ Am Anfang war kein Licht - und Vater blickte Kalt literaturcafe /// ¡darkerradio! // und den passenden Play für Winamp Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 22. Dez. 2007 16:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, Leider findet Excel mit der Abfrage das Laufwerk nicht. Es scheint ganz einfach noch nicht verbunden zu sein, und somit auch nicht ansprechbar. Durch die Selektierung im Windowsexplorer wird das Laufwerk dann verbunden und auch für ein Makro verfübar. Mit der Methode über UNC kann ich aber sehr gut leben. Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |