VisualBasic Abfrage nur für ein Excel-Blatt

>|Sh4d0w|<

Commander
Registriert
Jan. 2009
Beiträge
2.489
Hallo,
ich bin gerade dabei eine Excel Datei zu überarbeiten. Und zwar suche ich nach einer Möglichkeit, eine Abfrage einzubauen, die nur passiert, wenn man das Makro aus dem Januar-Blatt öffnet. Bei allen anderen würde ich UeStV auf .Visible =false setzen :)
 
Geschieht der Zugriff über VB oder direkt in Excel (VBA)? Bei letzterem sollte eine If Abfrage genügen ob das "Januar" Blatt aktiv ist und dann wird erst der Code ausgeführt. Falls du das mit mehreren machen willst halt dann mit Case.
 
Direkt in Excel (VBA).
Wie würde dieser aussehen?

If ActiveSheet.Januar = True Then
UeStVJanuar.Visible = True
UeStVJanuarEingabe.Visible = True
End If

Haut nicht so richtig hin :/
 
Dim strname As String
strname = ActiveSheet.Name

Dann weiterverarbeiten, gibt den Namen des aktiven Blattes aus.

Oder

If Worksheets("Januar").Select = True Then

Sollte auch klappen.
 
Das schaut schon besser aus :) Nur springt er nun immer zum Blatt "Januar" zurück und somit greift die Abfrage immer.
 
Auch bei der ersten Möglichkeit?
 
Sorry, ich hatte mich da irgendwie verlesen :freak: Variante 1 funktioniert bestens :) Vielen Dank
Ergänzung ()

Hätte da noch eine weitere Frage :)

Ich möchte eine Abfrage nicht dreimal identisch schreiben, sondern diese in eine einzigen Methode verpacken und immer wieder darauf zugreifen. Wie kann ich aus einer anderen Methode auf diese zugreifen?
 
Probiers mal das ganze public zu machen. Also erste Zeile "public sub". Meinst du aus dem gleichen Modul heraus?
 
hm also das funktioniert iwie immer noch nicht :(
Code:
Public Sub CheckJanuar()

If monat = "Januar" Then
    UeStVJanuar.Visible = True
    UeStVJanuarEingabe.Visible = True
    UeStVJanuarEingabe.SetFocus
    Hilfe.Visible = True
End If

End Sub


Private Sub VZ39_Click()

WöStZ.Visible = False
TBStunden.Visible = False

Dim monat As String
monat = ActiveSheet.Name

CheckJanuar()


End Sub
 
Code:
Option Explicit

dim monat as string

Private Sub CheckJanuar()
 
If monat = "Januar" Then
    UeStVJanuar.Visible = True
    UeStVJanuarEingabe.Visible = True
    UeStVJanuarEingabe.SetFocus
    Hilfe.Visible = True
End If
 
End Sub
 
 
Private Sub VZ39_Click()
 
WöStZ.Visible = False
TBStunden.Visible = False
monat = ActiveSheet.Name
 
CheckJanuar
 
End Sub

Probiers mal so, des public war eher darauf bezogen wenn du aus einem anderen Modul zugreifst. Dazu müsste dann zusätzlich noch die Variable als Public deklariert werden, ist aber hier nicht nötig.
 
Also der Debugger meldet sich nicht zu Wort, jedoch greift der Januar nicht, was vorher funktionierte.
 
Habs bei mir grad nochmal versucht, funktioniert. Jedoch ohne den Visible Elementen. Versuch doch nochmal die Zeilen für das Aus-/Einblenden der Blätter konform zu gestalten. Heißt mit Worksheets("Tabellenblattname").Visible = True oder False dann müsste es eigentlich gehen. Oder steckt da noch mehr Code dahinter, welcher Einfluss haben könnte? Etwaige Redundanzen?
 
Zurück
Oben