Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Popup Nachricht die nicht immer erscheinen soll
09.03.2016 13:16:52
Michael
Hallo Zusammen,
habe wieder einmal ein Problem und zwar möchte ich das die Popup Anweisung wie
unten im Code geschrieben, nicht die ersten 7 Tage erscheint, sondern am Anfang des Monats ( z.B. den 1. oder 2. )je nachdem wann das Programmm das erste Mal im Monat geöffnet wird. Sobald es mit "Okay" bestätigt wird, soll es nicht mehr in diesem Monat erscheinen. Bei abbrechen, soll es solange im Monat auftauchen, bis man es einmal mit okay bestätigt hat.
Kann mir da jemand Hilfestellung geben?
Gruß MM
Private Sub CommandButton54_Click()
Dim objShell As Object
If Day(Date) >= 1 And Day(Date) 

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
10.03.2016 09:38:02
Michael
Hallo Michael!
Arbeitest Du hier absichtlich mit einem Shell.Popup? Dafür tut's doch eine einfache Msg-Box auch, und damit würde ich dann so vorgehen: Erfasse das Klicken auf "OK" nach der Meldung in irgendeiner freien Zelle, auf einem beliebigen Blatt, sowie das Datum des "OK"-Klicks. Am Anfang des Codes wird dann geprüft, ob dieser Kontroll-Wert schon vorhanden ist. Am Anfang eines Monats werden einfach etwaige Kontrollwerte zurückgesetzt.
Du brauchst drei globale Konstanten:
Public Const OkBest As String = "A1" 'anpassen
Public Const OkDat As String = "A2" 'anpassen
Public Const OkBlatt As String = "Tabelle1" 'anpassen
In Deinem Schaltflächen-Code folgende Ergänzung:
Sub CommandButton54_Click()
Dim Warnung
If Tabelle1.Range(OkBest)  1 Then
Warnung = MsgBox("Monatliche Sicherung durchgeführt?", vbOKCancel, _
"Erinnerung")
If Warnung = vbOK Then
With Worksheets(OkBlatt)
.Range(OkBest).Value = 1
.Range(OkDat).Value = Date
End With
End If
End If
'Restlicher Code...
End Sub
Und beim Öffnen der Mappe setzt Du am Anfang eines neuen Monats einfach die Kontrollzellen zurück (im Klassenmodul der Mappe):
Private Sub Workbook_Open()
If Month(Date) > Month(Worksheets(OkBlatt).Range(OkDat)) Then
With Worksheets(OkBlatt)
.Range(OkBest).Clear
.Range(OkDat).Clear
End With
End If
End Sub
LG
Michael

Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 08:24:58
Michael
Hallo Michael,
vielen Dank für deine Mühe. Bin leider erst jetzt dazugekommen. Kannst du mir sagen,
wo ich das eintrage:
Public Const OkBest As String = "A1" 'anpassen
Public Const OkDat As String = "A2" 'anpassen
Public Const OkBlatt As String = "Tabelle1" 'anpassen
hab da echt keine Ahnung.
Gruß MM

AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 11:04:45
Michael
Hallo Michael,
ich hab das jetzt in ein Klassemodul eingefügt. Ich hoffe, dass war so in Ordnung? Er bring mir aber ein Fehler (Fehler 424, Objekt nicht definiert), obwohl ich "Public Const OkBlatt As String = "Tabelle1" angepasst habe. Der Fehler tritt bei mir im CommandButton54 auf (If Tabelle1.Range(OkBest) 1 Then). Dort habe ich IF Tabelle1 mit dem Namen meines Tabellenblattes ersetzt. Ist das Falsch gewesen?
Über eine Antwort würde ich mich freuen.
Gruß MM

Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 12:14:56
Michael
Hallo Michael!
Da hab ich jetzt aber fast nicht mehr reingeschaut ;-)...
Nein, vergiss das Klassenmodul. Die drei öffentlichen Konstanten schreibst Du einfach in ein allgemeines Modul - also zB dort wo Du Deinen Schaltflächen-Code hast, einfach ganz oben im Modul (Unter Option Explicit, das dort hoffentlich steht) und vor der ersten Sub().
Klappt?
LG
Michael

AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 14:03:49
Michael
Die Option Explicit kam erst, nachdem ich in Extras - Optionen - Variablendeklaration erforderlich -
einen Haken gesetzt habe und anschließend ein neues Modul eingefügt habe. Sonst ging das bei mir micht.
Jetzt kommt der Fehler
"Fehler beim kompilieren "mehrdeutiger Name:OKbest.
Weißt du was damit gemeint ist?
Gruß MM

Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 14:25:02
Michael
Servus Michael!
Deine diversen Fehlerangaben kann ich leider, so isoliert, nicht nachvollziehen.
Bitte zeig mir doch Deine Mappe so, wie sie jetzt ist, damit ich schauen kann, wie Du meinen Code eingepflegt hast. Mir reicht die Mappe ohne wirkliche Daten, Überschriften und Aufbau sollten aber drinnen sein - alles an sensiblen Daten raus! Und dann hier hochladen (inkl. Code!).
Dann schau ich mir das an, ok? So wird das nämlich nix ;-)
LG
Michael

AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 15:32:21
Michael
Alles klar, werde ich machen. Kann es aber erst heute abend erledigen.
Gruß MM

AW: Popup Nachricht die nicht immer erscheinen soll
14.03.2016 18:36:45
Moore
https://www.herber.de/bbs/user/104324.xls
hier das Programm. Ich hoffe es hat geklappt. Makros müssen aktiviert werden. Passwörter habe ich gelöscht. Mußt nur auf okay klicken, wenn er nach Passwörtern fragt.

Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
15.03.2016 12:39:02
Michael
Hallo (Michael? Moore? was denn jetzt?)!
Hier Deine Datei überarbeitet: https://www.herber.de/bbs/user/104348.xlsm
Die Warnmeldung funktioniert nun, beim Klick auf Commandbutton54 - Du hast im Code des Commandbutton geschrieben
If Verfügungen.Range(OkBest)  1 Then
Warnung =
Das geht aber nur, wenn "Verfügungen" auch ein Blatt-Codename wäre, was er nicht ist. Deshalb hab ich Dir ja die Konstanten empfohlen, damit schreibst Du dann eben

If Worksheets(OkBlatt).Range(OkBest)  1 Then
Warnung =
Das war mal der grds. Fehler. Außerdem hattest Du die von mir empfohlenen Konstanten in mindestens zwei Modulen deklariert - das geht natürlich nicht. Überhaupt hab ich Dir mindestens 5 leere (!) Module aus der Mappe geschmissen; dass Du da die Übersicht verlierst wundert mich nicht.
Noch eine Empfehlung - Option Explicit solltest Du IMMER (!) nutzen, und zwar bevor (!) Du Code schreibst. Wenn Du es jetzt einfügst wirst Du Fehlermeldungen ohne Ende kassieren, weil bei Dir eben nichts deklariert ist. Das aber nur so nebenbei.
Die Warnmeldung funktioniert jedenfalls, aber in Deinem VBA-Projekt solltest Du beizeiten aufräumen und etwas Übersicht hineinbringen; ggf. nochmals umschreiben unter Nutzung von Option Explicit - so ist das Kraut und Rüben.
LG
Michael

Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
15.03.2016 13:37:18
Michael
Hallo Michael,
erst einmal vielen herzlichen Dank für deine großartige Hilfe. Mein Vorname ist Michael, sorry...bin da durcheinander gekommen.
Das mit den 2 Modulen hast du richtig erkannt. Ich hatte das im ersten probiert und gedacht, dass ich es wieder gelöscht habe. Anscheinend nicht. Die leeren Module habe ich auch gesehen, aber ich wußte nicht, ob die standardmäßig vorhanden waren oder nicht. Jedenfalls danke für die Information.
Das mit dem Option Explicit war mir echt nicht bekannt. Ich sehe, dass ich noch sehr viel lernen muss. Ich hatte leider nie einen richtigen Excel/VBA Kurs. Das meiste habe ich mir durch "learning by doing"
beigebracht.
Ich gelobe Besserung. Jedenfalls werde ich jetzt erstmal, alles unötige löschen und den Laden mal aufräumen.
Trotzdem möchte ich mich für deine Unterstützung bedanken. Noch eine Frage, hast du mir einen Tip,
wie ich das von Grund auf richtig erlernen kann (z.B. Buchempfehlung).
Gruß Michael

Anzeige
AW: Popup Nachricht die nicht immer erscheinen soll
15.03.2016 13:54:54
Michael
Servus Michael!
Ich sehe, dass ich noch sehr viel lernen muss
Dazu lernen kann man immer; das ist doch was Positives. Ich lern ständig Neues in Excel/VBA - nur nicht glauben, dass man schon alles kennt, das macht blind ;-).
Ich gelobe Besserung.
Du stehst hier nicht vor dem Pranger, jeder macht seine Fehler. Ich habe Dir das nicht geschrieben um Dich anzuklagen, sondern als "Stubser" in die richtige Richtung. Das was mir persönlich bisher am meisten in VBA (aber Excel generell) gebracht hat, war übersichtlich zu arbeiten. D.h. immer Option Explicit setzen, alle Deklarationen an den Anfang des Moduls, Einrückungen verwenden (damit man sieht wo beginnt zB eine Schleife, wo endet sie und was passiert dazwischen)...
Tip, wie ich das von Grund auf richtig erlernen kann (z.B. Buchempfehlung).
Da wird Dir vermutlich jeder was anderes raten, da jeder für sich selbst anders lernt. Wenn Du bisher mit Programmierung/Skripten wenig bis nichts am Hut hattest, dann empfehle ich schon mal einen kleinen Kurs zu belegen (schau Dich mal in der Nähe bei Dir um - der Erwachsenenbildungsmarkt sollte da schon was hergeben). Da reichen Dir ja ein paar Tage, damit Du mal was von Variablen, Konstanten und Programmstrukturen in VBA hörst/lernst - und auf dieser Basis setzt Du dann mit Übung auf. Wenn die Grundlagen da sind tust Du Dir auch leichter bei der Recherche hier im Forum (sehr gut um sich weiterzuentwickeln, zum Lernen vermutlich etwas heftig) oder in den Weiten des Internet. Sehr gute Lehrmaterialien gibt es auch hier bei Herber, als Einstieg zB https://www.herber.de/wiki.html. Und natürlich nicht die integrierte Hilfe bei Excel bzw. in VBA vergessen - oft stehen da wichtige Hinweise, die Dich im Programmieren weiterbringen.
Viel Erfolg noch!
Michael

Anzeige
...und Danke für die Rückmeldung ;-) owT
15.03.2016 13:55:20
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige