Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1560to1564
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
Aufruf von Makros anderer Arbeitsmappen
24.05.2017 10:08:08
Makros
Hallo liebe VBA-Kommunity,
mein Name ist Fabian und ich porgrammiere seit mehreren Jahren einfacherere Excel-Listen mit VBA. Ich habe nun folgendes Problem:
Ich möchte während einer Usereingabe Code im Hintergrund verarbeiten. Hierfür rufe ich das Userform mit vbmodeless auf. Mit Application.ontime wird der Code 1 Sekunde nach dem Laden des Userforms ausgeführt. Während der Ausführung des Codes ist es jedoch nciht weiter möglich eine Eingabe zu machen. Ich habe mir gedacht, dass es vielleicht daran liegt, dass VBA nur ein Prozessorkern benutzen kann. Deswegen habe ich mit
Public excelapp As Object
Public xlwb As Excel.Workbook
Sub probe2()
'Dim xlwb As Excel.Workbook
Dim xlWS As Excel.Worksheet
Set excelapp = CreateObject("excel.Application")
Set xlwb = excelapp.Workbooks.Open("Y:\Fabian\Enfernung für Dispo\Lieferantenstammliste.xlsm")
'Application.Run xlwb & "!start", "Arbeitsbühnen", 64832, 70         geht nicht
'Call xlwb.Modul1.test                                               geht auch nicht             _
excelapp.Visible = True
End Sub

eine neue Application gestartet, die einem neuen Prozessorkern zugewiesen bekommt um Code parallel auszuführen. Leider weiß ich nicht wie ich nun Makros ausführen lassen kann in dem xlwb Objekt.
Nun meine Bitte: Könnt ihr mir helfen entweder den Code während ich ein Userform im Vordergrund habe ausführen zu lassen oder auf die Makros des xlwb Objekts zuzugreifen?
Für Eure Hilfe wäre ich sehr Dankbar!
Mit freundlichen Grüßen
Fabian

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 10:37:25
Makros
Hi Fabian
Probiere mal...
Application.Run xlwb.Name & "!start", "Arbeitsbühnen", 64832, 70
Ob sich die Prozesse gegenseitig blockieren müsstest du testen, aber Application.Run benötigt einen String und kein Objekt.
Evtl. könnte "DoEvents" etwas bewirken.
cu
Chris
cu
Chris
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 10:52:32
Makros
Hallo Chris,
vielen Dank für die Antwort. Leider gibt es da auch einen Fehler, dass das Makro nicht gefunden wird.
im Internet habe ich nun das gefunden:
With CreateObject("excel.application")
.Workbooks.Open ("Y:\Fabian\Enfernung für Dispo\Lieferantenstammliste.xlsm")
.Run "Modul1.Start"
.Quit
End With
das funktioniert, jedoch habe ich noch nicht herausgefunden wie ich Werte mitgeben kann.
Gruß
Fabian
Anzeige
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 11:04:52
Makros
Hi Fabian
Blöder Überlegungsfehler von mir. Application ist das erzeugte Objekt
xlwb.Run(xlwb.Name & "!start", "Arbeitsbühnen", 64832, 70)
cu
Chris
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 11:06:42
Makros
Okay es funktioniert mit
With CreateObject("excel.application")
.Workbooks.Open ("Y:\Fabian Schumacher\Enfernung für Dispo\Lieferantenstammliste.xlsm")
.Run "Modul1.test", "b"
.Quit
End With
Das löst allerdings trotzdme nicht das Problem, dass das Formular hängt während er das andere Makro ausführt....
Gruß
Fabian
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 11:12:03
Makros
Hi Fabian
Hast du DoEvents probiert?
Kann man das Makro vielleicht noch optimieren, so dass wenigstens die Laufzeit verkürzt wird?
cu
Chris
Anzeige
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 12:34:29
Makros
Hi Chris,
sorry für die verspätete Antwort, ich weiß leider nicht was doevents macht beziehungsweise wo ich es hinschreiben soll...
Gruß
Fabian
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 12:41:04
Makros
Hi Fabian
DoEvents erlaubt das Ausführen von Events trotz laufendem Makro. Also einfach in die erste Zeile vom Makro schreiben.
Ob es hilft ist eine andere Frage, aber ein Versuch wert. Kein Ahnung was dein Makro eigentlich macht.
cu
Chris
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 12:46:56
Makros
Hi,
also das Makro ist so aufgebaut, dass erst eine Postleitzahl an ein anderes Makro übergibt und Entfernungen berechnet. Während der Berechnung soll ein Userform ausgefüllt werden, dass daraufhin zu eine Standardmail generiert an Lieferanten mit einer maximalen Entfernung. Es klappt alles bis auf die gleichzeitige Eingabe und Berechnung (habe jetzt überall doevents reingeschrieben am Anfang aber hat nichts gebracht).
Gruß
Fabian
Anzeige
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 12:49:34
Makros
Hi,
also das Makro ist so aufgebaut, dass erst eine Postleitzahl an ein anderes Makro übergibt und Entfernungen berechnet. Während der Berechnung soll ein Userform ausgefüllt werden, dass daraufhin zu eine Standardmail generiert an Lieferanten mit einer maximalen Entfernung. Es klappt alles bis auf die gleichzeitige Eingabe und Berechnung (habe jetzt überall doevents reingeschrieben am Anfang aber hat nichts gebracht).
Gruß
Fabian
AW: Aufruf von Makros anderer Arbeitsmappen
24.05.2017 12:53:31
Makros
Hallo Chris,
es funktioniert, wenn ich die neue Excel-Mappe zur Berechnung nicht als Objekt öffne sondern ganz normal!
Vielen Dank!
Gruß
Fabian
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige