Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Öffnen von Dateien
24.02.2021 14:48:57
Dateien
Hallo zusammen,
in Eurem Forum habe ich gefunden, dass man Dateien per Hyperlink oder auch über eine Shell öffnen kann.
Beides funktioniert, aber leider werden die Dateien erst nach Beendigung des Makros geöffnet.
Solange befindet sich das Programm in einem (für mich) undefinierten Zustand.
Die zu öffnenden Links befinden sich in einem Datenablagesystem, welches Windows URL zur Verfügung stellt.
In diesen Links wird keine Anwendung benannt.
--------_View/interactive?zeichnung.z_nummer=Y999999&zeichnung.z_index=A
Setzt man einen Stop-Punkt im Debugger, wird die Datei nach dem Stop sofort geöffnet. DoEvents und Wait bringen keine Abhilfe.
Hat jemand eine Idee?
Danke im Voraus
Gruß Heidi
Dim strMakroMappe As String 'Dateiname der Makrodatei
Dim strHyLi As String 'Hyperlink
Dim strZELLE As String 'Zelle, auf der der Link steht
Sub Datei_AUF()
strZELLE = "L1"
strMakroMappe = ThisWorkbook.Name
Workbooks(strMakroMappe).Sheets(1).Range(strZELLE).Activate
strHyLi = Range(strZELLE).Hyperlinks(1).Address
Call SamStarten(strZELLE, strMakroMappe, strHyLi)
End Sub

Sub SamStarten(strZELLE As String, strMakroMappe As String, strHyLi As String)
Dim sh
Set sh = CreateObject("Shell.application")
sh.Open CStr(strHyLi)  'Rechner starten
Workbooks(strMakroMappe).Sheets(1).Activate
DoEvents
Application.Wait (Now + TimeValue("0:00:02"))
Set sh = Nothing
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Öffnen von Dateien
25.02.2021 12:26:39
Dateien
Hallo Heidi,
Frage Breakpoint:
wenn Du den BP auf die Zeile "sh.Open" legst, dann stoppt der Code VOR die Ausführung diese Anweisung. Was passiert, wenn Du den BP auf die erste Anweisung danach legst?
Frage "nach dem Makro geöffnet":
im Prinzip wird schon die Datei vorher geöffnet und verfügbar sein. Nur da das Makro noch die Hand hat, könnte es sein, dass die Anzeige noch nicht freigegeben wird.
Wobei es sich hier auf das Öffnen mit Workbook.Open bezieht, nicht unbedingt auf deas Öffnen über Shell.
Öffnen über Shell könnte dazu führen, dass die Datei in eine zweite Excel-Application geöffnet wird (nochmalerweise nicht).
Dass eine Datei in einer zweiten Excel-Instanz geöffnet hat, merkt man spätestens, wenn man dort den VBA-Editor öffnet: es öffne sich einen separaten Editor.
Ansonsten kann man die Anzahl von Instanzen mit dem Code von Roland Hochhäuser
(aus: https://www.herber.de/forum/archiv/1040to1044/1042598_Excel_Instanzen_finden_und_Anzeigen.html )
Sub ExcelInstanezn_Zählen()
Dim l As Long
l = ReadProcessData("EXCEL.EXE")
MsgBox l & " Excel-Instanzen offen"
End Sub
Function ReadProcessData(ByVal Prozess As String) As Long
Dim objWMIService As Object
Dim colProcesses As Object
Dim sinProcess As Object
Set objWMIService = GetObject("winmgmts:")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
ReadProcessData = 0
For Each sinProcess In colProcesses
With sinProcess
If .Name = Prozess Then ReadProcessData = ReadProcessData + 1
End With
Next
Set objWMIService = Nothing
Set colProcesses = Nothing
End Function

(gerade bei mir erfolgreich gelaufen)
VG
Yal
Anzeige

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige