Anzeige
Archiv - Navigation
556to560
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
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Private Sub

Private Sub
31.01.2005 13:53:45
Teddy
Hallo,
kann mir bitte schnell mal einer sagen, wie ich aus einer Private Sub eine andere Private Sub aufrufe? Mit Application.Run wird das nicht gehen, oder?
Danke.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Private Sub
UweD
So

Private Sub Test1()
Call Test2
End Sub


Private Sub Test2()
MsgBox "Test2 läuft"
End Sub

Gruß UweD
AW: Private Sub - Uwe
31.01.2005 16:32:41
Teddy
Hallo Uwe,
erstmal Danke. Leider geht auch dieser Trick nicht. Zumindest weiß ich jetzt, wie PrivateSubs aus PrivateSubs heraus aufgerufen werden.
:)
Deklariere die Frage als weiterhin offen.
Mal sehen...
Ciao
Anhang zu "Private Sub"
31.01.2005 14:53:21
Teddy
Hier einige Erläuterungen zur ersten Anfrage bzgl. PrivateSub...
Diese Arbeitsmappe-Code:

Private Sub Workbook_Open()
Set AppObject.ap = Application
End Sub

Modul1-Code:
Public AppObject As New clsevents
Klassenmodul "Clsevents" - Code:
Public WithEvents ap As Application

Private Sub ap_WorkbookOpen(ByVal Wb As Workbook)
Application.EnableCancelKey = xlDisabled
Application.ScreenUpdating = False
Workbooks.Open FileName:="D:\Eigene Dateien\1\1.xls", Password:=""
Workbooks("1.xls").Activate
If Workbooks("1.xls").ActiveSheet.Name = "Ende" Then GoTo Normal Else GoTo Wiederherstellung:
Normal:
ActiveWorkbook.Unprotect Password:=""
Sheets("Ende").Visible = False
Sheets("Eingabe").Visible = True
ActiveWorkbook.Protect Password:="", Structure:=True, Windows:=True
GoTo Ende:
Wiederherstellung:
ActiveWorkbook.Unprotect Password:=""
ActiveWorkbook.Protect Password:="", Structure:=True, Windows:=True
GoTo Ende:
Ende:
Application.ScreenUpdating = True
ThisWorkbook.Close
End Sub

So...
Das Ding macht folgendes. Es öffnet eine Mappe, schaut ob das Blatt "Ende" aktiv ist (außer diesem ist noch ein zweites Blatt eingeblendet - Keine Sorge!) und wenn ja, macht es alles unter NORMAL.
Falls das Blatt "Ende" nicht aktiv ist, wird alles unter WIEDERHERSTELLUNG ausgeführt.
So weit, so gut. Klappt bis hierher wunderbar.
Was ich aber jetzt noch einfügen möchte, ist das hier (Alles zwischen den beiden Ausrufezeichen):
Wiederherstellung:
ActiveWorkbook.Unprotect Password:=""
ActiveWorkbook.Protect Password:="", Structure:=True, Windows:=True
! Workbooks.Open FileName:="D:\Eigene Dateien\1\2.xls", Password:=""
Workbooks("2.xls").Activate
ActiveWorkbook.Unprotect Password:=""
ActiveWorkbook.Protect Password:="", Structure:=True, Windows:=True
Workbooks("1.xls").Activate !
GoTo Ende:
Aber das klappt leider nicht. Ich bekomme dann immer wieder den Fehler "Index ausserhalb des gültigen Breichs".
Kann mir da einer helfen? Ich mache damit jetzt schon `ne ganze Zeit lang rum - Ohne Ergebnis.
Muß ich eine weitere PrivateSub deklarieren, welche dann aus der ersten heraus aufgerufen wird? Oder was muß ich tun? Habe es auch schon mit `ner ganz normalen SUB-Routine versucht. Scheitert aber auch.
Ach Ja - Wundert euch bitte nicht über die vielen Protect & Unprotect & Password Stellen. Die sind genauso gewollt und beabsichtigt. Habe nur die Passwörter rausgenommen.
Schon mal vielen lieben Dank im Voraus (Falls mir jemand hilft).
Schönen Tag noch...
Teddy
Anzeige
Noch was vergessen...
31.01.2005 14:56:50
Teddy
Was wichtiges noch:
Diese ganze Sache befindet sich in einer PERSONL.XLS !
Ciao

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige