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

Msgbox

Forumthread: Msgbox

Msgbox
14.04.2022 14:02:07
Benny
Hallo Excel Profis,
Ich habe folgendes Problem:
Beim Ersten öffnen einer Datei in einem neuen Monat wird eine erste MsgBox angezeigt die mit OK bestätigt oder mit Cancel abgebrochen wird.
Nach bestätigen mit OK wird ein Sheet aktiviert und eine zweite MsgBox erscheint, die nach 3 Sek. ausgeblendet werden soll.
Das funktioniert soweit alles super, bis auf das ausblenden nach 3 Sek. Man muss die zweite MsgBox mit OK bestätigen damit sie ausgeblendet wird.
Wurde aber bei öffnen der Datei die erste MsgBox mit Cancel abgebrochen, und das Sheet manuell aktiviert, erscheint die zweite MsgBox und wird nach 3 Sek. ausgeblendet.
Habe schon rumgebastelt und nach Lösungen gesucht, kann aber nichts finden. Habe keine Ahnung wo das Problem liegt.
Wäre toll wenn jemand eine Idee hätte.
Gruß Benny
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Msgbox
14.04.2022 14:13:58
Mullit
Hallo Benny,
zeig uns mal deinen Code u/oder Mappe....
Gruß, Mullit
AW: Msgbox
14.04.2022 14:41:51
Benny

Private Sub Workbook_Open()
'Beim ersten öffnen im Monat öffnet Sheets("1"), sonst Sheets("2")
If Month(Sheets("3").Cells(1, 5))  Month(Sheets("2").Cells(1, 1)) Then
Sheets("1").Activate
If MsgBox("Die Datei wurde das Erste Mal im neuen Monat geöffnet." & Chr(10) & _
"Bitte Sheets(2) mit OK Automatisch aktivieren," & Chr(10) & _
"um letzte Eingaben für den Vormonat zu tätigen." & Chr(10) & _
"Bei Abbrechen, das Sheets(2), bitte Manuell auswählen." _
, vbExclamation + vbOKCancel) = vbOK Then
Sheets("2").Activate
Else
Exit Sub
End If
End If
Sheets("2").Activate
VBA im Sheet 2
Dim f, i, j, y As Integer
j = 3
y = 2021
For f = 1 To 13
If y = Sheets("3").Cells(15, 5).Value Then
For i = 1 To 12
If Sheets("3").Cells(j, 5).Value = Sheets("3").Cells(2, 5).Value Then
MsgZeit
End If
j = j + 1
Next i
End If
y = y + 1
Next f
Modul 2
Sub MsgZeit()
Const bytZeit As Byte = 3
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("!!! Bitte noch die Daten für den Vormonat eingeben wenn nötig !!!" _
& Chr(10) & "Beim aktivieren von Sheet (3) werden die Monatsdaten" _
& Chr(10) & "sowie im Januar die Jahresdaten gespeichert.", _
bytZeit, "Diese Nachricht wird in " & bytZeit & " Sekunden gelöscht", vbExclamation)
Set objWSH = Nothing
End Sub
Benny
Anzeige
AW: Msgbox
14.04.2022 15:11:03
Mullit
Hallo,
ah ja, hab ich mir gedacht, wenn ich richtig erinnere, funktioniert die Popup-Variante in neueren Vers. nicht mehr zuverlässig...Nimm ein UserForm, Schließen über Application.Ontime, oder eine Api-Lösung...
Gruß, Mullit
AW: Msgbox
14.04.2022 19:42:49
Benny
Hallo Mullit,
Danke für den Hinweis, werde dann mal Basteln.
Ist doch aber unlogisch, das beim manuellen anklicken des Sheets die MsgBox nach 3 Sek. verschwindet, und beim automatischen aktivieren nicht.
Gruß Benny
Anzeige
AW: Msgbox
15.04.2022 01:45:14
volti
Hallo Benny,
falls noch nicht gelöst. Hier eine API-Lösung.
Code:


Private Declare PtrSafe Function MessageBoxTimeoutA Lib "user32" ( _ ByVal hwnd As LongPtr, _ ByVal lpText As String, ByVal lpCation As String, _ ByVal uType As Long, ByVal wLanguageId As Integer, _ ByVal dwMiliseconds As Long) As Long Sub test() Dim intMsg As Long, bytzeit As Long bytzeit = 3000 intMsg = MessageBoxTimeoutA(Application.hwnd, _ "!!! Bitte noch die Daten für den Vormonat eingeben wenn nötig !!!" _ & Chr(10) & "Beim aktivieren von Sheet (3) werden die Monatsdaten" _ & Chr(10) & "sowie im Januar die Jahresdaten gespeichert.", _ "Diese Nachricht wird in " & bytzeit & " Sekunden gelöscht", _ vbExclamation, 0, bytzeit) End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Msgbox
15.04.2022 15:07:42
Benny
Hallo Karl-Heinz,
Danke für den Tip. Werde es mal probieren.
AW: Msgbox
15.04.2022 17:40:19
Benny
Habe eine Userform genommen, jetzt funktioniert alles Super.
Danke für Eure Tips.
Gruß Benny
AW: Msgbox
14.04.2022 14:14:51
GerdL
Hallo Benny,
das Problem könnte an deinem nicht gezeigten Code liegen.
Gruß Gerd
Anzeige
AW: Msgbox
15.04.2022 17:44:21
snb
Man sollte gleichartige Daten in nur 1 Arbeitsblatt speichern.
Dann ist dein Vorgehensweise mit MsgBoxen völlig überflüssig.
Anders gesagt: du kreierst Probleme statt sie zu lösen.
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18