2.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

ich habe zwar schon viel über dieses Thema gelesen, aber das klappt bei mir alles nicht so richtig.

Ich habe für alle 12 Monate ein Makro geschrieben, bei deren Ausführung sich Formatierungen ändern als auch Spalten/Zeilen aus- bzw. eingeblendet werden.

Den Monat selber lese ich über die Formel "=WERT(TEIL(ZELLE("Dateiname";A1);28;2))" aus.
Dieser steht dann natürlich beim start der Excel-Arbeitsmappe schon drin und wird nicht mehr verändert.
Daher klappt das auch alles nicht mit "in Ahängigkeit eines sich verändernden Zellwertes".

Kann mir einer helfen wie ich das stricken muss das beim Start von Excel das gewünschte "MonatsMakro" ausgeführt wird?

Vielen Dank

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
benutze ActiveSheet.Name

Gruß Hajo
0 Punkte
Beantwortet von
Tut mir leid, aber die Antwort verstehe ich jetzt nicht ganz.

Dieses Makro hatte ich als Basis:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Select Case Target.Value
Case Is <= 5: Call Makro1
Case Is <= 8: Call Makro2
Case Is <= 13: Call Makro3
'usw.
Case Else: MsgBox "Wert ungültig!", , "Info"
End Select
End If
End Sub

Hier muss ich aber den Wert in der Zelle ÄNDERN ... und genau das passiert bei mir nicht, da der Wert über die Formel selbständig "generiert" wird.
Dieses Problem versuche ich gelöst zu bekommen.

Gruß
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
das Du die Antwort nicht verstehst hängt vielleicht damit zusammen das Du die Aufgabe nicht komplett beschrieben hast und kein Makro gezeigt hast.
Aus dem jetzigen Makro könnte man vermuten du möchtest ein Makro ausführen wenn Zelle die Zelle A1 in einer bestimmten Tabelle geändert wird. Das hat meiner Meinung nach aber nichts mit dem ersten Beitrag zu tun. Vielleicht solltest Du in einem Beitrag bei einem Problem bleiben?

Gruß Hajo
0 Punkte
Beantwortet von
In Zelle A1 steht die angegebene Formel um den Monat auszulesen (Bsp.: 2.
Das Makro würde dann die Monatszahl (hier: 2) erkennen und über die Case-Anweisung das entsprechende Makro ausführen
(Case Is = 2: Call Makro_Februar), welches dann wiederum auf Tabellenblatt "Monate" die entsprechende Formatänderung durchführt.

Ich hoffe jetzt alles korrekt beschrieben zu haben?
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
dann mußt Du ein anderes Excel haben als ich. Das Ereignis Private Sub Worksheet_Change(ByVal Target As Range) wird nicht durch eine Formel ausgelöst, bei mir jedenfalls und ich benutze Excel 97 bis 2010 für Windows.

Gruß Hajo
0 Punkte
Beantwortet von
Das ist ja eben genau das, was auch mein Problem ist:

"Hier muss ich aber den Wert in der Zelle ÄNDERN ... und genau das passiert bei mir nicht, da der Wert über die Formel selbständig "generiert" wird."

Beim Start von Excel steht entsprechend des Pfades eine 1 oder eine 3 oder eine 12 oder, wie im Beispiel genannt, eine 2.

Die soll erkannt werden und (Case Is = 2: Call Makro_Februar) und das Makro "Makro_Februar" ausführen.

Tut mir leid ... ich weiß echt nicht wie ich es noch anders beschreiben soll?!
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
dann benutze das Ereignis Private Sub Workbook_Open()
unter diese Arbeitsmappe, da es ja beim öffnen passiren soll.

Gruß Hajo
...