Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Makros nacheinander ausführen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Makros nacheinander ausführen (17140 mal gelesen)
piston
Mitglied
Konstrukteur


Sehen Sie sich das Profil von piston an!   Senden Sie eine Private Message an piston  Schreiben Sie einen Gästebucheintrag für piston

Beiträge: 140
Registriert: 18.05.2004

Pro/E WF4<P>Windows XP 64bit

erstellt am: 09. Okt. 2006 17:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,


habe mir mit dem Rekorder 2 Makros erstellt. Nun würde ich gerne mit einer Tastenkombination (mit einem 3. Makro) die beiden Makros nacheinander ausführen - klappt aber leider nicht. Ich habe es mit folgendem Befehl probiert:

Sub Makro3()
    Application.Run "PERSONL.XLS!Makro1"
    Application.Run "PERSONL.XLS!Makro2"
End Sub

Die beiden Makros hintereinander händisch zu starten geht, aber bei dem Versuch die Makros hintereinander auszuführen, wird nur das Makro1 ausgeführt und das Makro2 nicht

Hat bitte jemand einen Lösungsweg?

DANKE!

lG

piston

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 09. Okt. 2006 18:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

hmmm, kenne mich nicht besonders aus mit Makros, die über die über eine Externe XLs gestartet werden soll...
und baue auch jetzt nicht das Szenario nach :-) um auf die eventuellen Gemeinheiten zu treten

ich mache das mit meinen immer so:

Code:
Private Sub Makro1()
  Blabla macht irgendwas...
  Call Makro2 'jump to makro 2
End Sub
Private Sub Makro2()
  Blabla macht irgendwas...
End Sub

und würde dann dem 1 Makro eine Tastenkombi zuweisen,
aber wie gesagt, bei mir sind die Makros immer in der Mappe...

------------------
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

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Okt. 2006 07:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Hallo piston,
Also am Aufruf
Code:
Sub Makro3()
    Application.Run "PERSONL.XLS!Makro1"
    Application.Run "PERSONL.XLS!Makro2"
End Sub

liegt's nicht. Der läuft. Poste doch mal Deine Makros1 und 2, der Wurm muß da drin liegen. Am Besten direkt die ganze Mappe uppen, das spart evtl. weiteres Nachhaken 

Gruß,
Nicole

------------------
Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
----------------
Erfinnder-Gilden-Lehrling Stufe: 5

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Okt. 2006 07:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Nachtrag:
Du kannst Dir sowas auch einfacher machen:

Solange die Sub Public ist, kann sie direkt angesprochen werden:
zu Public und Private siehe Hilfe und das hier

Bsp:

Code:
Sub Makro1()
Range("A5:A7").Select
    Selection.Interior.ColorIndex = 6

    Makro2
End Sub



Code:
Sub Makro2()
    Range("C7:C10").Select
    Selection.Interior.ColorIndex = 8
End Sub

und die Tastenkombination auf Makro1 vergeben, das Makro3 entfällt dadurch komplett.

anstelle von "Makro1" und "Makro2" würd' ich allerdings sinnvollere Namen vergeben, die darfste nämlich durchaus ändern, nur drauf achten, die dann auch überall zu ändern!

------------------
Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
----------------
Erfinnder-Gilden-Lehrling Stufe: 5

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

piston
Mitglied
Konstrukteur


Sehen Sie sich das Profil von piston an!   Senden Sie eine Private Message an piston  Schreiben Sie einen Gästebucheintrag für piston

Beiträge: 140
Registriert: 18.05.2004

Pro/E WF4<P>Windows XP 64bit

erstellt am: 10. Okt. 2006 10:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

mein 1. Makro:

---------------------

Sub Makro1()

    Workbooks.OpenText Filename:= _
        "C:\Dokumente und Einstellungen\user\Eigene Dateien\txt.txt", Origin:= _
        xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
        2), Array(29, 2), Array(48, 2), Array(61, 2), Array(89, 2), Array(103, 2))

End Sub

-----------------------

Bewirkt das aus den Eigenen Dateien ein File "txt.txt" ins Excel eingelesen wird und die Werte entsprechend formatiert werden (Spaltenaufteilung)

Und mein 2. Makro:

------------------------

Sub Makro2()

    Columns("A:F").EntireColumn.AutoFit

End Sub

------------------------

Bewirkt einach das die Spaltenbreiten der Spalten A bis F an die Einträge in den Spalten angepaßt werden.

Wie gesagt, hintereinander ausführen kein Problem, aber in einem Makro zusammenfassen oder über ein drittes Makro beide hintereinander laufen lassen funktioniert leider nicht.

lG

piston

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Okt. 2006 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Sorry,
Kann Dein Problem nicht nachvollziehen:
Code:
Sub Makro1()

    Workbooks.OpenText Filename:= _
        "C:\Dokumente und Einstellungen\user\Eigene Dateien\txt.txt", Origin:= _
        xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
        2), Array(29, 2), Array(48, 2), Array(61, 2), Array(89, 2), Array(103, 2))
Makro2  '<- hier der Aufruf oder direkt: Columns("A:F").EntireColumn.AutoFit
End Sub



läuft ohne Probleme.  

Anmerkung: nur auf Lauffähigkeit, nicht auf Inhalt getestet.

------------------
Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
----------------
Erfinnder-Gilden-Lehrling Stufe: 5

[Diese Nachricht wurde von runkelruebe am 10. Okt. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 10. Okt. 2006 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

da dein Makroaufruf aus der Personal.xls kommt,
die Datei aber in einem anderen Excelmappe erzeugt wird...
woher soll dann

Code:
Sub Makro2()
    Columns("A:F").EntireColumn.AutoFit
End Sub

wissen wo in welche Mappe sich das Columns("A:F").EntireColumn.AutoFit befinden soll :-)

das Makro in der Mappe müsste reibungslos funktionieren. aber aus der Personal.xls... oder schreibt der deine txt.txt in die Personal . xls...

[Thedit]Antwort auf nachfolgende Post :-)

Zitat:
Original erstellt von runkelruebe:
...Und während das Makro noch läuft, sitzt der Focus auf dieser neuen Mappe, also werden auch die Spalten formatiert.


:-) war nur eine ungetestete Mutmassung meinerseits... hätte ja sein können^^ :-)[Theditoff]

[Diese Nachricht wurde von Thomas Harmening am 10. Okt. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Okt. 2006 12:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Nee Thomas, sorry, aber da kann's nich dranliegen..

Habe selber das Ding in einer "Mappe1" nachgestellt.
Sein Makro 1 erzeugt eine eigene Datei "txt.txt" als Excel-Datei.
Und während das Makro noch läuft, sitzt der Focus auf dieser neuen Mappe, also werden auch die Spalten formatiert.

Habe es mittlerweile in der PERSONL.XLS, der Mappe1 und in der txt.txt getestet, mit Modulen mal da, mal da...

mal als Aufruf: Application.Run, mal als Aufruf Makro2, mal als direkte Zeile... immer derselbe Effekt: funzt

Weiß also nicht, wo jetzt noch das Problem liegen könnte.

------------------
Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
----------------
Erfinnder-Gilden-Lehrling Stufe: 5

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 10. Okt. 2006 19:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von runkelruebe:
immer derselbe Effekt: [b]funzt   [/B]

hehe!

:-) zwischen Himmel und Erde ist nicht immer alles erklärbar :-)
manchmal braucht es auch eine gewisse Ambivalenz, damit es zur Zufiedenheit Beider läuft...

hmmm,
... und bei einigen findet sich sowas, gar als Hassliebe wieder
- auch eine Ambivalenz

ich gehe mal den Bildschim streicheln^^

*dies ist nur ein offtopic-Beitrag - muss auch manchmal sein*

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

piston
Mitglied
Konstrukteur


Sehen Sie sich das Profil von piston an!   Senden Sie eine Private Message an piston  Schreiben Sie einen Gästebucheintrag für piston

Beiträge: 140
Registriert: 18.05.2004

Pro/E WF4<P>Windows XP 64bit

erstellt am: 18. Okt. 2006 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


datenimport.zip

 
Hallo Leute,


Danke das Ihr Euch die Mühe gemacht habt und das Beispiel nachgebaut habt, nur leider bekomme ich meine Makros nicht hin.

Ich habe Euch in der Anlage meine Textdatei und die Module (welche ich in meiner Personl.xls unter Module habe) angehängt.

Im Modul1 müßtet Ihr den Pfad für die Textdatei an Euren Speicherplatz anpassen.

Modul1 alleine funktioniert
Modul2 alleine funktioniert
Modul4 alleine funktioniert

aber Modul3 (sollte 1 und 4 hintereinander ausführen, funktioniert nicht)

Wenn Ihr Euch das Ding mal ansehen könntet

DANKE!!!!!!!!


lG

Piston

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 18. Okt. 2006 13:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich


piston.xls.txt

 
Hallo piston,
ganz kurz und trocken:
ich habe mal die Makros umbenannt, wie oben schon mal empfohlen.
Makro1 = Public Sub Einlesen()
Makro4 = Public Sub Verzahnung()

und in Makro 3 steht dann nur noch:

Code:
Sub Makro3()
   
    Call Einlesen
    Call Verzahnung

End Sub



Makro3 ausführen und zack damit werden beide nacheinander abgearbeitet.
Den Pfad "C:\CAD-de\Down\datenimport\datasheet.txt" in Einlesen() mußt Du natürlich wieder ändern!

Ich stelle die mappe wieder rein.
hth
Nicole

PS: wie vorher: code nicht angeschaut, nur auf "Läuft oder läuft nicht" geprüft, da könnte man bestimmt nochmal straffend tätig werden 

------------------
Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
----------------
Erfinnder-Gilden-Lehrling Stufe: 5

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 18. Okt. 2006 13:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Jo,

Subs müssen "Public" sein, wenn sie von subs aus anderen Modulen auf diese (einfache) Weise aufgerufen werden. Guck dazu nochmal z.B. hier: http://ww3.cad.de/foren/ubb/Forum226/HTML/000571.shtml#000013

(Außerdem tauchen (nach meiner Erfahrung) Private Subs nicht in xls unter "Ausführen" auf.)
Hieraus folgt: Aufruf von sub2 durch sub1 innerhalb eines Moduls: sub2 kann Private sein. Steht sub2 in einem anderen Modul: Public sub2.

Gruß,
Frederik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

piston
Mitglied
Konstrukteur


Sehen Sie sich das Profil von piston an!   Senden Sie eine Private Message an piston  Schreiben Sie einen Gästebucheintrag für piston

Beiträge: 140
Registriert: 18.05.2004

Pro/E WF4<P>Windows XP 64bit

erstellt am: 18. Okt. 2006 14:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,


wiedereinmal vielen Dank für Eure Bemühungen!!!

Jetzt habe ich aber erst bemerkt woran es wirklich scheitert:

Das Problem ist das Marko 3 zum Ausführen von 1+4. Wenn man versucht das Makro 3 über einen Shortcut (in meinem Fall: Strg+Shift+H) auszuführen wird nur das Makro 1 ausgeführt. Wenn ich den Shortcut auf Strg+H ändere, bzw. einfach über Makro ausführen gehe, funktioniert es?!?

Damit wäre mein Problem gelöst, obwohl es doch einwenig eigenartig ist, das die Ausführung eines Makros vom verwendeten Shortcut beeinflußt wird.

DANKE!DANKE!DANKE!


lG

Piston

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 18. Okt. 2006 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für piston 10 Unities + Antwort hilfreich

Hallo Piston,

mal so ganz ins hell-blaue hinein:

Zitat:
... obwohl es doch einwenig eigenartig ist, das die Ausführung eines Makros vom verwendeten Shortcut beeinflußt wird.
Könnte daran liegen, WO Du beim Aufzeichnen Dein Makro speicherst:
"Makro speichern in
-Diese Arbeitsmappe
-Persönliche Arbeitsmappe
-Neue Arbeitsmappe"

Wer da wem den Rang abläuft, weiß ich leider nicht:-(
Der Blauäugige

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz