Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
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
Inhaltsverzeichnis

Sub unterbrechen andere Excel aufrufen

Sub unterbrechen andere Excel aufrufen
07.01.2022 10:23:15
Sven
Guten Morgen,
nachdem ich seit zwei Tagen am suchen und verzweifeln bin möchte ich um Hilfe fragen.
Ich habe folgenden code.

Dim bestellformular As Integer
bestellformular = MsgBox("Möchten sie ein neues Bestellformular öffnen?", vbYesNoCancel)
If bestellformular = vbYes Then
bestellformular_öffnen
Else: bestellformular = vbNo
altesFormular = MsgBox("Möchten sie ein altes Bestellformular weiter bearbeiten?", vbYesNo)
If altesFormular = vbYes Then
Shell "C:\WINDOWS\explorer.exe """ & strSparepathTemp & "", vbNormalFocus
End If
End If
Im Sub "bestellformular_öffnen" wird eine .exe ausgeführt die im Hintergrund eine neue .xslm als Bestellformular öffnet.

Sub bestellformular_öffnen()
Application.ScreenUpdating = False
Dim strSparepath As String, strSpareRequestFile As String
strSparepath = Environ("USERPROFILE") & "pfad_zur_Datei"
strSpareRequestFile = "New Request For Spare Parts.exe"                                                     'aktuell nicht möglich direkt eine 2. Excel instanz zu öffnen
Shell (strSparepath & strSpareRequestFile), vbNormalFocus
Application.ScreenUpdating = True
End Sub
Mein Problem ist hierbei dass die "New Request For Spare Parts.exe" nicht geöffnet wird solange das Haupt-Sub läuft.
Kann man den Code irgendwie stoppen lassen, die neue Excel öffnen und dann weiter ausführen? Mit Wait oder Sleep funktioniert es leider nicht.
Ich möchte nicht nach der offenen Datei suchen lassen und dann einen neuen Sub aufrufen. Da die von der .exe erstellten Excel Dateien immer das aktuelle Datum und Uhrzeit im Namen erhalten.
Gruß Sven

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub unterbrechen andere Excel aufrufen
07.01.2022 11:14:04
ChrisL
Hi Sven
Das hat m.E. nichts mit Haupt-/Unterprozedur zu tun (braucht es ja auch nicht zwingend) und das Problem ist eher in deiner EXE-Datei zu suchen.
Nachfolgend ein kleines Beispiel mit dem Windows-Rechner. Dieser öffnet, man kann damit rechnen, während die Hauptprozedur munter weiter läuft.

Sub t()
Dim i As Long
Call bestellformular_öffnen
For i = 1 To 10000
Application.StatusBar = "Programm läuft weiter " & i
Next i
Application.StatusBar = False
End Sub

Sub bestellformular_öffnen()
Shell "Calc.exe"
End Sub
Keine Ahnung, was deine EXE macht. Falls darin auf Excel zugegriffen wird hilft es vielleicht, wenn die Programmierung der EXE über eine separate Excel-Instanz läuft.
cu
Chris
Anzeige
AW: Sub unterbrechen andere Excel aufrufen
07.01.2022 12:30:14
onur
"Mein Problem ist hierbei dass die "New Request For Spare Parts.exe" nicht geöffnet wird, solange das Haupt-Sub läuft."
Hast du das getestet oder nimmst du das nur an?
AW: Sub unterbrechen andere Excel aufrufen
07.01.2022 14:03:20
Sven
Hallo,
ich habe aktuell, bis ich eine neue Lösung finde, die Subs geteilt.
Jetzt öffnet sich auch die ".exe" Datei und kann eine neue Excel erstellen. Leider darf ich an der Excel-Programmierung von der "New Request For Spare Parts.exe" nichts ändern. Die Datei wird nicht von mir verwaltet.
Ich möchte nur die Schnittstelle bauen.
Die restlichen Fragen im "Haupt-Sub" werden jetzt beim Schließen meiner Lagerbestand.xlsm abgearbeitet.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim zeilennummer As Range
Dim beginnZeile As Integer
Dim ergebnisFertig As Integer
beginnZeile = 3 'Zeile 3 unter Lagerbestand zum Suchen anfangen
Set zeilennummer = Worksheets("Übersicht").Range("S3:S60000").Find(what:="Bestellen").End(xlDown)            'Suche letzte Zeile mit Inhalt heraus
ergebnisFertig = MsgBox("Sind die Ersatzteile Bestellt worden?", vbYesNo, "Bestellung ausgeführt?")
If ergebnisFertig = vbNo Then
For Zeile = beginnZeile To zeilennummer.Row                                                                         'Setze Anfangs und Endschleife
If Cells(Zeile, 19).Value = "Bestellen" Then
Sheets("Übersicht").unprotect Password:="***"
Worksheets("Übersicht").Cells(Zeile, 6).Value = Delete                               'Datum in Spalte F löschen
Sheets("Übersicht").protect Password:="***"
End If
Next Zeile
Else
MsgBox "Bitte bei der Lieferung zubuchen!"
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige