Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
408to412
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
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

counter-funktion für makros? nur einmal ausführen!

counter-funktion für makros? nur einmal ausführen!
Ulf
Hi,
bei aktivierung von einem blatt wird folgender makro gestartet:

Private Sub Worksheet_Activate()
Mldg = "blabla"
Stil = vbInformation
Titel = "Instructions"
Antwort = MsgBox(Mldg, Stil, Titel)
End Sub

wie kann ich diesen nur einmal ausführen lassen,wenn ich ein weiteres mal diese blatt aktiviere?
gibt es sowas wie eine counter-funktion für makros?
danke
uLf
AW: counter-funktion für makros? nur einmal ausführen!
soendi
ja... klar
schreib eine 0 in irgend eine zelle (annahme: A1)

Private Sub Worksheet_Activate()
If Range("A1")<>0 Then Exit Sub
Mldg = "blabla"
Stil = vbInformation
Titel = "Instructions"
Antwort = MsgBox(Mldg, Stil, Titel)
Range("A1").Value = 1
End Sub

geht natürlich auch mit anderen sachen, wie buchstaben, etc...
gruss
soendi
he he, warum kompliziert wenns auch... THX
Ulf
genial einfach
AW: he he, warum kompliziert wenns auch... THX
soendi
geht natürlich auch mit 2 mal anzeigen...
am anfang if range > 2 then exit sub...
dann machst du einen zähler und am schluss sagst du i = i+1
danke für die rückmeldung!
gruss
soendi
Anzeige
das interessiert mich un doch
Ulf
wo ist grad der haken?

Private Sub Worksheet_Activate()
If Range("A1") > 2 Then Exit Sub
Mldg = "blabla"
Stil = vbInformation
Titel = "Instructions"
Antwort = MsgBox(Mldg, Stil, Titel)
i = i + 1
Range("A1").Value = i
End Sub

AW: das interessiert mich un doch
05.04.2004 16:24:22
soendi
hallo...
du musst ihm zuerst sagen, was i ist...

Private Sub Worksheet_Activate()
i = Range("A1").Value 'am anfang noch bei 0!
If i > 2 Then Exit Sub
Mldg = "blabla"
Stil = vbInformation
Titel = "Instructions"
Antwort = MsgBox(Mldg, Stil, Titel)
i = i + 1
Range("A1").Value = i
End Sub

gruss
soendi
Anzeige
AW: das interessiert mich un doch
Nepumuk
Halo Ulf,
der Haken ist der, wenn du die Mappe speicherst und wieder öffnest, kommt die Meldung nicht mehr, da in A1 schon was drin steht. Wenn eine Meldung dauerhaft nicht mehr angezeigt werden soll, dann schreib einen Eintrag in die Registry. Wenn die Meldung Nach dem öffnen der Mappe nur einmal angezeigt werden soll, dann deklariere eine öffentliche Variable, die du in dem Meldungmakro abfrägst und nach der Meldung einen Wert zuweist.
Beispiel: https://www.herber.de/bbs/user/4964.xls
Gruß
Nepumuk
AW: das interessiert mich un doch
Ulf
hatte das nun so gelöst, dass beim start die zählzelle den wert 0 bekommt
aber deine variante ist eleganter!
kann man hier auch ein zählfunktion einbauen?
also max. 3 mal einblenden
Anzeige
AW: das interessiert mich un doch
Nepumuk
Hallo Ulf,
man kann, frau auch. Ändere die Variable in Modul1 so:
Public bytgemeldet As Byte
und das Makro in Tabelle2 so:


Private Sub Worksheet_Activate()
    If bytgemeldet < 3 Then
        MsgBox "blabla", 64, "Instructions"
        bytgemeldet = bytgemeldet + 1
    End If
End Sub


Gruß
Nepumuk
Anzeige
AW: das interessiert mich un doch
06.04.2004 09:30:01
uLf
THX
wird zeit, dass ich nen vba-kurs bekomme, damit ich nicht nur lesen, sondern auch richtig schreiben kann
u.

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige