Makro gibt 2 mal Aufforderung wieder

Hallo,

ich habe mir in Text ein kleines Makro geschrieben.

_Sub Workbook_Open()

If MsgBox(„Wollen Sie die Wert neu eingeben?“, vbYesNo + vbQuestion, „Frage“) = vbYes Then Worksheets(„Tabelle1“).Range(„H1“).Value = InputBox(„Bitte den Wert eingeben (Zelle B3):“, „Eingabeaufforderung“)
If MsgBox(„Wollen Sie die Wert neu eingeben?“, vbYesNo + vbQuestion, „Frage“) = vbNo Then Exit Sub

End Sub_

Soweit funktioniert auch alles. Nur ein Problem gibt es noch. Wenn ich bei der MsgBox auf Nein klicke, kommt die MsgBox nochmal und erst beim zweiten „NEIN“ verschwindet sie. Wie kann ich das Problem losen?

LG

Dedeus

Hallo Dedeus,

ich habe mir in Text ein kleines Makro geschrieben.

in Text? Was genau meinst du damit?

If MsgBox(„Wollen Sie die Wert neu eingeben?“, vbYesNo +
vbQuestion, „Frage“) = vbYes Then
Worksheets(„Tabelle1“).Range(„H1“).Value = InputBox(„Bitte den
Wert eingeben (Zelle B3):“, „Eingabeaufforderung“)
If MsgBox(„Wollen Sie die Wert neu eingeben?“, vbYesNo +
vbQuestion, „Frage“) = vbNo Then Exit Sub

Soweit funktioniert auch alles.

Nein, kann es gar nicht.

Wenn ich bei der MsgBox auf Nein klicke, kommt die MsgBox
nochmal und erst beim zweiten „NEIN“ verschwindet sie.

Die MsgBox kommt IMMER zweimal, egal was du beim ersten Mal auswählst.
Sie steht ja auch zweimal untereinender im Code.

Gruß
Reinhard

Okay, sie steht 2 mal da. Hmmm…
Wie kann ich das hinbekommen, dass das ganze dennoch funktioniert und die Msgbox nur einmal drinsteht?

LG

Dedeus

Okay, sie steht 2 mal da. Hmmm…
Wie kann ich das hinbekommen, dass das ganze dennoch
funktioniert und die Msgbox nur einmal drinsteht?

Hallo Dedeus,

äh, lösch den zweiten Eintrag.

Es ist mir aus dem Code nicht ersichtlich was du möchtest, insofern kann ich „funktionieren“ nicht einordnen.

Wie soll der Ablauf sein?
Zuerst die Msgbox?
Bei Ja was?
Bei Nein was?

Bei Ja soll wohl die Inpubox kommen, was soll da geschehen?
Bei Abbruch was?
Bei Eingabe von Nix, was?
Bei Eingabe von huhu, aber nur Zahlen sind zugelassen, was?

usw. usw…

Gruß
Reinhard

OT Struktogramm Programmablaufplan (PAP)

Okay, sie steht 2 mal da. Hmmm…
Wie kann ich das hinbekommen, dass das ganze dennoch
funktioniert und die Msgbox nur einmal drinsteht?

Hallo Dedeus,

völlig unabhängig von Vba, das hilft dir in allen Programmiersprachen.
Beschäftige dich mal an einem WE mit schlechtem Wetter mal mit Struktrogramm Programmablaufplan und es gab da noch ne dritte Variante, hab den Namen vergessen.

Ich weiß, vom Prinzip her ist es völlig falsch was ich tue wenn ich Vba codiere, ich leg einfach los.

Bei kleinen Dingen wie einfachen Anfragen hier klappt das auch fast immer.

ABER wenn ich komplexe Strukturen ahbe also verschlungene IF-Abfragen o.ä. o.a., komme ich damit nicht weit, dann wirds egal wie strukturiert ich auch codiere zu unübersichtlich, dann probiere ich dies das, alles Zeit die quasi verschenkt ist.

Wenn ich erkenne so komme ich nicht weiter, schnapp ich mir ein großes Blatt Papier und male/skizziere da je nach laune ein Struktrogramm oder PAP.
Bei einer Prüfung würde ich da sicher saumäßig wenig Punkte für kriege weil ich da auf keinerlei Formalitäten achte, Hauptsache ich weiß wie ich das deute das Gekrakel.

Und wenn das steht, programmiere ich da grad so runter, kinderleicht, entsprechendes Vba-Wissen vorausgestzt eine einfache IF-Schleife zu bauen u.ä.

Und oh Wunder, der Code klappt dann meist UND sieht viel einfacher aus als mein Spaghettigewuselcode vorher.

Falls er nicht klappt, schaue ich nochmal aufs Struktogramm oder PAP, da habe ich wohl einen Denkfehler drin.

Wie auch immer, in deinem Interesse solltest du dir die wesentlichen Dinge von Struktrogramm und PAP „reinziehen“. Sie sind ja grad dafür ersonnen worden um komplexe Dinge in kleine appetitliche leicht umsetzbare Häppchen aufzuteilen.

Noch immer gültig, bin mir grad unsicher, ist das Aufteilen von langen Code in Einzelblocks, die alle dem EVA-Prinzip unterliegen.
EVA = Eingabe Verarbeitung Ausgabe.

Gruß
Reinhard