Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

2 Anweisungen in ein Workbook Open

Forumthread: 2 Anweisungen in ein Workbook Open

2 Anweisungen in ein Workbook Open
24.01.2025 17:06:07
chris58
Hallo Experten !
Wie kann ich diese beiden VBA Codes beim Öffnen der Datei aufpoppen lassen.
Wobei der zweite Code nur aufpopen soll, wenn das Tabellenblatt "History" mit einem Sprung in das Tabellenblatt angesprochen wird und das nur am Anfang jeden Monats (nicht wie hier auch am Ende das Monats). Kann man das irgendwie zusammenfassen ?
Danke für Eure Hilfe
chris58


Private Sub Workbook_Open()
ThisWorkbook.Activate
If Format(Now, "DD.MM") = "01.01" Or Format(Now, "DD.MM") = "02.01" Then
MsgBox "Vor Dateneingabe zum Jahreswechsel " & Chr(10) & " " & Chr(10) & " Button - Sichern Jahresende - " & Chr(10) & " " & Chr(10) & " für Tabellenblatt History drücken", vbOKOnly
'weitere Anweisungen
End If
Sheets("Berechnung").Activate
Range("A2").Select

UserForm1.Caption = "Datenmaske geöffnet von: " & GetTheUserName
UserForm1.TextBox3 = Format(Date - 1, "DD.MM.YYYY")

UserForm1.Show
End Sub
..............................................................................................................................................................
Private Sub Workbook_Open()
If Day(Date) = 1 Or Day(Date) = 2 Or _
Date = WorksheetFunction.EoMonth(Date, 0) Or _
Date = WorksheetFunction.EoMonth(Date, 0) - 1 Then
MsgBox "Sind wir im richtigen Monat ? Ansonst Formelbutton drücken"
End If
End Sub
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 17:43:11
Yal
Hallo Chris,

manchmal ist es hilfreich, bestimmte Prüfung in Functions abzulegen und einen sprechenden Namen zu geben.
Auch die Aktionen können in separaten Subs abgelegt werden.

Private Sub Workbook_Open()

If IstAnfangDesJahres Then
MsgBox "Vor Dateneingabe zum Jahreswechsel " & Chr(10) & " " & Chr(10) & " Button - Sichern Jahresende - " & Chr(10) & " " & Chr(10) & " für Tabellenblatt History drücken", vbOKOnly
AktionJahresanfang_durchführen
ElseIf IstEndeDesMoants Then
If MsgBox("Sind wir im richtigen Monat ? Ansonst Formelbutton drücken", vbYesNo) = vbYes Then
AktionMonatsende_durchführen
End If
End If
End Sub

Private Sub AktionJahresanfang_durchführen()
Sheets("Berechnung").Activate
Range("A2").Select
UserForm1.Caption = "Datenmaske geöffnet von: " & GetTheUserName
UserForm1.TextBox3 = Format(Date - 1, "DD.MM.YYYY")
UserForm1.Show
End Sub

Private Sub AktionMonatsende_durchführen()
'hier Anweisungen eintrage
End Sub

Private Function IstAnfangDesJahres() As Boolean
'liefert True, wenn Datum 01.01. oder 02.01. ist
IstAnfangDesJahres = CBool(Month(Now) = 1 And Day(Now) = 2)
End Function

Private Function IstEndeDesMonats() As Boolean
'liefert True, wenn Abstand Heute zum ersten den nächsten Monat = 2
'Dim NächsteMonatStart As Long
' NächsteMonatStart = DateSerial(Year(Now), Month(Now) + 1, 1)
' IstEndeDesMonats = CBool((NächsteMonatStart - Now) = 2)
IstEndeDesMonats = CBool((DateSerial(Year(Now), Month(Now) + 1, 1) - Now) = 2)
End Function


VG
Yal
Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 17:49:32
Onur
DAS in ein (neues) allg. Modul:
Pubic op

DAS ins Modul WorkBook:
Private Sub Workbook_Open()

Dim dat
ThisWorkbook.Activate
dat = DateSerial(Year(Date), 1, 1)
If Date - dat 2 Then
MsgBox "Vor Dateneingabe zum Jahreswechsel " & Chr(10) & " " & Chr(10) & " Button - Sichern Jahresende - " & Chr(10) & " " & Chr(10) & " für Tabellenblatt History drücken", vbOKOnly
'weitere Anweisungen
End If
Sheets("Berechnung").Activate
Range("A2").Select
op = True
UserForm1.Caption = "Datenmaske geöffnet von: " '& GetTheUserName
UserForm1.TextBox3 = Format(Date - 1, "DD.MM.YYYY")
UserForm1.Show
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim dat, dy
dy = Day(Date)
If op And Sh.Name = "History" Then
op = False
dat = CDate(WorksheetFunction.EoMonth(Date, 0))
If dy = 1 Or dy = 2 Or Date = dat Or Date = dat - 1 Then
MsgBox "Sind wir im richtigen Monat ? Ansonst Formelbutton drücken"
End If
End If
End Sub
Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 18:59:23
chris58
Hallo Onur !
Bitte nicht böse sein !
Ich habe Deinen Code anstatt dem vorhandenen reinkopiert. Nur es ging nicht und ich bin nicht in der Lage etwas zu ändern, damit das geht, wenn ich in das Tabellenblatt History springe, dann rührte sich nichts. Ich habe meine Original kopiert (um nichts kaputt zu machen) und rumprobiert - ohne Erfolg.
Nun dachte ich mir, in meiner grenzenlosen Niavität vielleicht finde ich einen Code der nur einmal aufpoppt und bin dann auf diesen gestossen:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Left(Date, 2) * 1 = 1 Then
MsgBox "Sind wir im richtigen Monat ? Ansonst Formelbutton im Tabellenblatt History drücken"
End If
End Sub

Dazu habe ich Deinen Anfang genommen und den neuen Code zwischen den Zeilen (Privat........ und .......End Sub) eingefügt. Der funktionierte gleich - NUR .................der kommt am 1. jeden Monats aber .......................egal, wohin ich springe ..................also in jedem Tabellenblatt wohin ich am 1. des Monats springe, poppt die msgBox auf.
Ich wollte eigentlich nur, das der Text beim Sprung in das Tabellenblatt History aufpoppt.
Bitte nicht böse sein ...................das ich rumprobiert habe .............................. Ich dachte dann, ich kann das mit dieser Zeile von Dir bereinigen:

If op And Sh.Name = "History" Then ........................ habe diesen eingefügt, doch das ging dann auch nicht..

Ich bin da nicht so firm, das ich das dann selbst erledigen könnte.
Kannst mir nochmal helfen .................ich entschuldige mich
Danke
chris58

Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 19:03:03
Onur
Kennst du deine eigenen Vorgaben nicht?
Da kann sich doch auch nichts rühren, da wir den 25. Januar haben !
Gehe mal in Einstellungen (Windows) und ändere das Datum auf z.B. 1.1.2025 oder 31.1.2025 und starte die Datei neu.
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 19:46:32
chris58
Hallo Onur !
Ich habe das umgestellt .............
Liegt es vielleicht daran, das ich nur 2003 Excel .xls habe ?
chris58
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 20:34:54
chris58
Hallo Onur !
Ich habe das Datum umgestellt .............
Liegt es vielleicht daran, das ich nur 2003 Excel .xls habe ?
Das andere, also das was ich noch gepostet habe, das funktioniert.
Nur halt das, das bei jedem Tabellenblatt die msg Box aufpoppt.
Danke lg
chris58
Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 21:57:12
Onur
Wenn du doch Excel2003 hast, wieso benutzt du dann die EndOfMonth-Funktion ? Die gibt es erst seit 2007.
Tausche mal im 2. Makro das
dat = CDate(WorksheetFunction.EoMonth(Date, 0))

gegen das
dat = DateSerial(Year(Date), Month(Date) + 1, 0)

Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 22:12:13
Onur
Poste mal die Datei - Daten kannst du von mir aus vorher löschen.
Datei
24.01.2025 22:29:50
chris58
Hallo !
Also das mit dem aupoppen bei jedem Tabellenblatt ist, das, wenn ich auf ein anderes Tabellenblatt gehe, dan kommt dort auch die Msg-Box - also am 1. des Monats kommt dann diese Box mit der Nachricht bei jedem Tabellenblatt auf das ich klicke. Bei dieser Datei ist dieser VBA Code drinnen, nicht der, den Du mir gepostet hast, den bei diesem kamen immer Fehler. Ich hoffe es ist verständlich von mir dargestellt.
Danke für Deine Mühe und vor allem Zeit.
chris58

https://www.herber.de/bbs/user/175176.xls
Anzeige
Danke ....... Danke
24.01.2025 23:40:52
chris58
Hallo !
Danke, phänomenal ......sagenhaft ..........Danke vielmals
chris58
Gerne !
25.01.2025 00:22:35
Onur
Anzeige
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 22:07:34
Onur
"Das andere, also das was ich noch gepostet habe, das funktioniert. Nur halt das, das bei jedem Tabellenblatt die msg Box aufpoppt."
Was heisst "Das andere" und was meinst du mit "daß bei jedem Tabellenblatt die msg Box aufpoppt" ?
AW: 2 Anweisungen in ein Workbook Open
24.01.2025 19:05:01
Onur
24. Januar natürlich....

Forumthreads zu verwandten Themen

Anzeige
Anzeige