Collapse column

Autor Thema: Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen  (Gelesen 4966 mal)

Offline Herberthe

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen
« am: Januar 24, 2016, 16:08:57 Nachmittag »
Hallo Alle Miteinander

Ich habe ein Makro das mir nach einer eingestellten meine Datei schliesst.
Dies Makro befindet sich in
Microsoft Excel Objekte
       Diese Arbeitsmappe
Sub Nach_Zeit_beenden()                                                   
Zeit = Now + TimeValue("00:01:00")                             ' Läuft 1 min
Application.OnTime Zeit, "Speichern_und_Beenden"     ' Sub "Speichern und Beenden" aufrufen
End Sub


Das Sub "Speichern_und Beenden" befindet sich in
Module
    Modul1
Sub Speichern_und_Beenden()
Dateiname = Application.ThisWorkbook.Name   
Workbooks(Dateiname).Close SaveChanges:=True 
End Sub

Das ganze funktioniert und die Datei schliesst nach angegebener Zeit

Wenn ich jetzt in Modul 1 vor dem speichern noch eine Sub xyz aufrufen möchte die sich in
Microsoft Excel Objekte
       Diese Arbeitsmappe

befindet,(weil sie da auch beim normalen speichern oder beenden aufgerufen wird) kommt die Fehlermeldung "Sub oder Function nicht definiert".

Ich könnte diese Sub xyz auch in auch in
Module
    Modul1
Sub xyz
einauen, dann funktioniert es.
Dies Sub ist dann aber 2(zwei) mal vorhanden.

Wie schaffe ich es aus Module/Modul1 dies Sub xyz aus "diese Arbeitsmappe aufzurufen".

Weiss jemand Abhilfe


Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Herbert Grom

  • Jr. Member
  • **
  • Beiträge: 76
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2013
Antw: Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen
« Antwort #1 am: Januar 24, 2016, 17:14:22 Nachmittag »
Hallo Namenskollege,

zuerst solltest du keine normalen Makros (Sub ...) in "DieseArbeitsmappe" haben. Diese gehören AUSSCHLIESSLICH in "StandardModul"e!

Dein Problem könntest du lösen, wenn du in "DieseArbeitsmappe" eine "AutoOpen"-Routine (Makro) einbaust und dort das Makro "Sub Nach_Zeit_beenden()" startest, wenn ich dich richtig verstanden habe. Probiers mal.

Servus
Servus

#Bitte Antwort nicht vergessen! ;o)=)

Offline Herberthe

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen
« Antwort #2 am: Januar 24, 2016, 19:18:04 Nachmittag »
Hallo Herbert G.
Danke für die Antwort.
Funktioniert leider nicht.
Allerdings nicht mit AutoOpen sondern mit Sub workbook_open() da die Datei auch von anderen Prgrammen aufgerufen werden kann.

Wie ist das gemeint"zuerst solltest du keine normalen Makros (Sub ...) in "DieseArbeitsmappe" haben. Diese gehören AUSSCHLIESSLICH in "StandardModul"e!"
Ich schaffe das meinen Code einigermassen zum laufen zu kriegen, allerdings ist mir nicht geläufig was ich wohin schreiben muss :(:(

Ich habe mal spasseshalber den Code nach Modul 1 verschoben.
Die Zeit läuft ab wie vorher auch und schliesst die Datei, allerdings funktioeren nun meine anderen Sub's nicht mehr, sie werden nicht mehr angesprochen.
Wechsel ich in den VBA Editor und starte alles mit F5 in der ersten Zeille funktionieren allerdings auch meine anderen Sub's wieder

schönen Abend

Offline Herberthe

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen
« Antwort #3 am: Januar 24, 2016, 22:11:44 Nachmittag »
Hallo Herbert G.
Ich glaube jetzt funktionierst  :) :) :) :) :)
Nach einigem Hin- und Hergeschiebe müsste es jetzt klappen.

Deine Aussage :"zuerst solltest du keine normalen Makros (Sub ...) in "DieseArbeitsmappe" haben. Diese gehören AUSSCHLIESSLICH in "StandardModul"e"
hat mich dazu bewogen mal einiges zu probieren bis es augenscheinlich klappt!
Ich versuche das mal mit meinen Worten zu definieren:
Sub's denen ich einen Namen gebe gehören in "Modul(x)"
Sub's deren Namen von VBA vorgegeben sind (z.B.: Workbook_BeforeSave,   Workbook_AfterSave,   Workbook_BeforeClose,   Workbook_BeforePrint....(die habe ich nämlich verwendet)) gehören in "DieseArbeitsmappe".
Ist das so verständlich und korrekt ?
Zumindest scheint es so zu funktionieren, aber da fehlt mir das Basiswissen zu.
Ich sage nochmal !Danke! , mit dem Tipp bin ich weitergekommen.

Bis demnächst  :)

Herbert


Offline Herbert Grom

  • Jr. Member
  • **
  • Beiträge: 76
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2013
Antw: Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen
« Antwort #4 am: Januar 25, 2016, 09:22:55 Vormittag »
Hallo Herbert,

eine kleine Einführungsrunde in VBA:

"DieseArbeitsmappe": Zuerst klickst du im "Projekt-Explorer" links auf "DieseArbeitsmappe" etc. Anschließend musst Du in dem oberen, linken

Dropdownfeld "Workbook" auswählen. Danach stehen dir im rechten oberen Dropdown-Feld die möglichen Routinen zur Verfügung.

"Classmodule": Zuerst klickst du im "Projekt-Explorer" links auf "Tabelle1" etc. Anschließend musst Du in dem oberen, linken Dropdownfeld

"Worksheet" auswählen. Danach stehen dir im rechten oberen Dropdown-Feld die möglichen Routinen zur Verfügung.

Mit dem Schieberegler rechts kannst du jeweils sehen, welche möglichen Routinen vorhanden sind.

Und da ja bekanntlich ein Bild mehr sagt als 1000 Worte, hier noch ein selbiges:


Noch Fragen? ;o)=)

P.S.: Wenn du dich etwas mehr mit VBA auseinandersetzen willst, dann empfehle ich dir die Seiten von Peter Haserodt: http://www.online-

excel.de
Servus

#Bitte Antwort nicht vergessen! ;o)=)

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Herberthe

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Sub in "Diese Arbeitsmappe" aus "Modul1 aufrufen
« Antwort #5 am: Januar 25, 2016, 19:37:00 Nachmittag »
Hallo Herbert G.

Danke für die ausführliche Antwort.

Werde ich mir dann mal zu Gemüte führen

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.