Makro Hilfe benötigt!
Hallo Braue noch mal eure hilfe!
Habe diesen Code
Private Sub Workbook_Open()
Worksheets("Januar").Activate
End Sub
in meine Arbeitsmappe eingetragen.
Klappt auch wunderbar, nun möchte ich aber das die Arbeitsmappe immer in dem aktuellen Monat geöffnet wird.
(sprich jetzt Juli und ab morgen August)
Mein Gedanke:
Kann man da was schreiben womit sich die Mappe mit der PC Zeit/Datum abgleicht?
Oder gibts da ne bessere/andere Lösung?
Wie würde das dann aussehen?
Vielen Dank für die Hilfe schon mal im Voraus
MfG Benjä
Antwort schreiben
Antwort 1 von nighty vom 31.07.2020, 13:22 Options
hi Benjä
wie gewuenscht
gruss nighty
Worksheets(MonthName(Month(Date))).Activate
Antwort 2 von BenjaminM vom 31.07.2020, 14:03 Options
Hallo Nighty!
Hab das eingefügt, aber wo gleicht er das Datum ab?
Es funzt net!
MfG Benjä
Antwort 3 von rainberg vom 31.07.2020, 16:12 Options
Hallo Benjamin,
Du darfst den Code von nighty nicht zusätzlich einfügen, sondern Deinen damit ersetzen.
Ein Datum wird damit übrigens nicht abgeglichen, sondern nur der aktuelle Monat.
Month(Date) ergibt die Zahl 7 (nur heute noch)
MonthName(7) ergibt den String "Juli"
somit bedeutet der Code letztendlich weiter nichts als
Worksheets("Juli").Activate, nur mit dem Unterschied, dass sich der Sheetname immer dem akuellen Monat anpasst.
Ich hoffe ich konnte Dir helfen, obwohl die Blumen nigthy gehören:-))
Gruß
Rainer
Antwort 4 von BenjaminM vom 01.08.2020, 07:43 Options
Hallo Rainer!
Ja ich hab meinen Code ersetzt!
Vorher:
Private Sub Workbook_Open()
Worksheets("Januar").Activate
End Sub
Nachher:
Private Sub Workbook_Open()
Worksheets(MonthName(Month(Date))).Activate
End Sub
So, was ist jetzt falsch?
Muss ich da noch was änder?
z.B. (Date) oder so?
Danke für deine hilfe MfG Benjä
Antwort 5 von rainberg vom 01.08.2020, 07:59 Options
Hallo Benjamin,
der Code ist richtig.
Wenn dieser tatsächlich im Codefenster von "DieseArbeitsmappe" steht und die Tabellennamen die Bezeichnungen Januar, Februar, März .....usw. haben, funktioniert der Code.
Ich spreche hier von den Excelversionen 2003 und 2007, andere kann ich leider nicht testen.
Lade doch notfalls Deine Datei mal hoch, sensible Daten kannst Du ja löschen oder verfälschen.
Gruß
Rainer
Antwort 7 von DukeNT vom 01.08.2020, 08:33 Options
Hi Benjä,
bei mir funktioniert deine Tabelle ohne Probleme.(Excel2000)
Denk dran, das die Monatstabelle nur beim Öffnen der Datei ausgewählt wird und du Makros zulässt.
Gruß Niels
Antwort 9 von rainberg vom 01.08.2020, 10:23 Options
Hallo Benjamin,
offensichtlich kann Excel97 nicht mit diesen Befehlen umgehen.
Mangels dieser Version kann ich Dir leider keine Ersatzbefehle nennen.
Vielleicht hilft Dir ein VBA-kundiger Excel97-Besitzer aus der Patsche.
Gruß
Rainer
Antwort 10 von nighty vom 01.08.2020, 14:52 Options
hi all
was ich zwar nicht glaube :-))
aber hier eine alternative
gruss nighty
Private Sub Workbook_Open()
Dim monate(12) As String
monate(1) = "Januar"
monate(2) = "Februar"
monate(3) = "März"
monate(4) = "April"
monate(5) = "Mai"
monate(6) = "Juni"
monate(7) = "Juli"
monate(8) = "August"
monate(9) = "September"
monate(10) = "Oktober"
monate(11) = "November"
monate(12) = "Dezember"
Worksheets(monate(Val(Mid(Date, 4, 2)))).Activate
End Sub
Antwort 11 von nighty vom 01.08.2020, 15:02 Options
hi all
korrigiert
gruss nighty
Private Sub Workbook_Open()
Dim monate(11) As String
monate(0) = "Januar"
monate(1) = "Februar"
monate(2) = "März"
monate(3) = "April"
monate(4) = "Mai"
monate(5) = "Juni"
monate(6) = "Juli"
monate(7) = "August"
monate(8) = "September"
monate(9) = "Oktober"
monate(10) = "November"
monate(11) = "Dezember"
Worksheets(monate(Val(Mid(Date, 4, 2)) - 1)).Activate
End Sub
Antwort 12 von rainberg vom 01.08.2020, 15:42 OptionsLösung
Hallo Benjamin,
eine weitere Alternative wäre...
Option Explicit
Private Sub Workbook_Open()
Worksheets(WorksheetFunction.Choose(Mid(Date, 4, 2), _
"Januar", "Februar", "März", "April", "Mai", "Juni", _
"Juli", "August", "September", "Oktober", "November", "Dezember")).Activate
End Sub
Gruß
Rainer