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

Makro nur einmal ausführen

Makro nur einmal ausführen
20.06.2006 11:27:26
Falk
Hallo alle zusammen,
folgendes Makro fügt in die Zelle H34 ein "Ja" ein, berechnet und fügt dann ein "Nein" ein.

Sub JA_Eingabe()
Range("H34").Select
ActiveCell.FormulaR1C1 = "Ja"
Calculate
Range("H34").Select
ActiveCell.FormulaR1C1 = "Nein"
Calculate
End Sub

Soweit so gut, ich benötige jetzt eine Erweiterung dieses Makros, das dieses Makro nur einmal durchführt wenn die Datei geöffnet worden ist, sonst nie mehr.
Beim nächsten öffnen dann wieder nur einmal durchführen kann.
Geht das, und wenn ja wie?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur einmal ausführen
20.06.2006 11:41:20
Andi
Hi,
wenn es beim Öffnen automatisch ausgeführt werden soll, dann schreib das Makro in's Workbook_Open-Ereignis im Modul 'DieseArbeitsmappe'.
Wenn's erlaubt ist, noch ein paar Anmerkungen zu Deinem Code:
Select macht ein Makro langsam, unübersichtlich und ist in 99,9% aller Fälle schlicht überflüssig;
Range("H34").Select
ActiveCell.FormulaR1C1 = "Ja"
kannst Du auch so schreiben:
Range("H34").Value = "Ja"
Nachdem vermutlich nicht unbedingt gewährleistet ist, dass immer das richtige Blatt aktiv ist, würde ich die Zelle komplett mit Angabe der Tabelle referenzieren;
der komplette Code in 'DieseArbeitsmappe' sieht dann so aus, wobei Du den Tabellennamen ggf noch anpassen musst:

Private Sub Workbook_Open()
Sheets("Tabelle1").Range("H34").Value = "Ja"
Calculate
Sheets("Tabelle1").Range("H34").Value = "Nein"
End Sub

Schönen Gruß,
Andi
Anzeige
AW: Makro nur einmal ausführen
20.06.2006 12:01:34
Falk
Hallo Andi,
erst einmal Danke für Dein Hinweis, baue mein Makro um, aber ...
... das Makro wird nur über einen Button ausgeführt der auf dem entsprechenden Blatt steht. Hintergrund ist, mit einer DBSET2 Formel (MIS ALEA) kann ich Werte in einer Datenbank schreiben und gleichzeitig addieren, daß soll aber nur einmal, dann wenn ich den Button drücke geschehen. Ich weiß das ich nur einmal drücken darf, meine Vertretung ist nicht ganz so bewandert und kann evtl. hier einen Fehler machen und evtl. die Werte doppelt einlesen.
Kannst Du weiterhelfen, Deine Änderungen verarbeite ich sofort.
Grüß und Dank
Falk
Anzeige
AW: Makro nur einmal ausführen
20.06.2006 12:07:15
Andi
Hi,
dann deaktivieren wir am besten den Button nach einmaligem drücken:

Private Sub CommandButton1_Click()
Range("H34").Value = "Ja"
Calculate
Range("H34").Value = "Nein"
CommandButton1.Enabled = False
End Sub

Wenn der Button eh in der Tabelle ist, dann kann die Referenzierung über Sheets("Tabelle1"). entfallen.
Ins Workbook_open gehört dann nur folgendes, damit der Knopf nach dem Öffnen wieder zur Verfügung steht:

Private Sub Workbook_Open()
Sheets("Tabelle1").CommandButton1.Enabled = True
End Sub

Schönen Gruß,
Andi
Anzeige
AW: Makro nur einmal ausführen
20.06.2006 12:21:40
Falk
Hi, Andi
jetzt scheint das Makro zu schnell zu sein! Warum auch immer, mit meinem Button aus dem Formular Menü funktionierte das Makro.
Den CommandButton aktivieren und deaktivieren funktioniert auch, nur die Berechnung nicht, ...
Grüße
Falk
AW: Makro nur einmal ausführen
20.06.2006 14:02:57
Andi
Hi,
sorry, den Effekt kann ich bei mir nicht nachvollziehen.
Kopiere mal folgendes ins Modul der Tabelle, dann bekommst Du ne Meldung, wenn das Blatt berechnet wird:

Private Sub Worksheet_Calculate()
MsgBox "Berechnung durchgeführt"
End Sub

Wenn die Meldung kommt, wird calculate ganz normal ausgeführt, und das Problem liegt woanders.
Schönen Gruß,
Andi
Anzeige
AW: Makro nur einmal ausführen
20.06.2006 14:08:17
Falk
Hi Andi,
habe das Problem jetzt wie folgt gelöst:

Sub JA()
ActiveSheet.Unprotect
Sheets("Summe").Range("H34").Value = "Ja"
Calculate
Sheets("Summe").Range("H34").Value = "Nein"
Calculate
ActiveSheet.Protect
ActiveSheet.Shapes("Button 250").Visible = False
End Sub

Habe eine Schaltfläche benutzt die ausgeblendet wird, wenn die Datei geöffnet wird, wird die Schaltfläche wieder eingeblendet.
Jetzt funktioniert es perfekt, danke für Deine Hilfe, die hat mich richtig nach vorne gebracht.
Danke
Falk
Gern geschehen...
20.06.2006 14:15:40
Andi
Danke für die Rückmeldung.
Schönen Gruß,
Andi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige