Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro start

Betrifft: Makro start von: Serkan
Geschrieben am: 10.03.2016 08:49:58

Guten Morgen liebes Forum,

ich stehe ein wenig auf dem Schlauch. Ich habe ein VBA Code geschrieben, welches auch soweit ganz gut funktioniert. Aus einem Tool werden Daten in meine Excel Vorlage exportiert, das Makro wird gestartet und die entsprechenden Zellen werden befüllt, ohne Probleme. Allerdings befindet sich in einem Reiter, ein Feld mit "Bemerkungen" diese Zelle ist nicht immer befüllt, je nach dem ob im Tool was eingetragen wurde oder nicht. Wenn nichts eingetragen wurde, bleibt diese Zelle auch leer, soweit so gut. In dieses Feld kann man auch manuell etwas eintragen (nach dem das Makro durch ist und leer steht). Dann wird die Datei gespeichert, und beendet. Wenn jetzt die Datei nochmal geöffnet wird, dann startet das Makro erneut und das Feld (welches manuell befüllt wurde) wird überschrieben und bleibt dann wieder leer.

Nun zur meiner Frage: Wenn das Makro einmal gelaufen ist, dann soll in Zelle A5 eine 1 drin stehen, und wenn in dieses Zelle A5 eine 1 drin steht, dann soll das Makro nicht laufen. Wie muss der Code hierfür aussehen?

Vielen Dank schon im Voraus und Grüße

Serkan

  

Betrifft: AW: Makro start von: Michael (migre)
Geschrieben am: 10.03.2016 08:57:04

Hallo!

Sub DeinMakro()

    'An den Anfang Deines Codes...
    If Range("A5").Value = 1 Then Exit Sub

    'Nach evtl. weiteren Abbruchsbedingungen, also
    'wenn sichergestellt ist, dass das Makro durchläuft...
    Range("A5").Value = 1
    
    'Dein weiterer Code...

End Sub
LG
Michael


  

Betrifft: AW: Makro start von: Serkan
Geschrieben am: 10.03.2016 09:55:17

Vielen Dank für die schnelle Antwort. Allerdings, ist mir nicht ganz klar welcher Befehl dafür sorgt, dass nach dem Makro eine 1 in die Zelle A5 geschrieben wird. Dass das Makro beendet wird, wenn eine 1 drin steht ist mir klar geworden.

Danke und Grüße


  

Betrifft: AW: Makro start von: Michael (migre)
Geschrieben am: 10.03.2016 10:20:04

Hallo!

mir nicht ganz klar welcher Befehl dafür sorgt, dass nach dem Makro eine 1 in die Zelle A5 geschrieben wird

Du setzt diesen Befehl!...

Range("A5").Value = 1
Heißt nichts anderes, als dass in Zelle A5 (hier: des aktiven Blattes) eine 1 geschrieben wird - wann das im Makro vorkommt, beeinflusst Du, deswegen auch mein Kommentar im Code.

Klar?
LG
Michael


  

Betrifft: AW: Makro start von: UweD
Geschrieben am: 10.03.2016 08:58:53

Hallo

Sub Nur_einmal()
    If Sheets("Tabelle1").Range("A5") = 1 Then Exit Sub
    'dein Makro
    MsgBox "Makro gestartet"
    '
    

End Sub

Gruß UweD