Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kombinationsfeld mit msgbox + vbYesNo

Kombinationsfeld mit msgbox + vbYesNo
Dietmar
Hallo zusammen
ich benötige ein weiteres Featur in meinem Progrämmle.
Ich habe ein Kombinationsfeld, dem ich eine Liste von Ziffern 1- 20 zugewiesen habe. Das Ergebnis der Auswahl wird in A1 gezeigt.
Dem Kombinationsfeldes habe ich nachfolgendes Makro zugewiesen.
Wie kann ich erreichen, dass die Dropdownauswahl NICHT ausgeführt wird, wenn ich auf NEIN klicke?
Der neue Wert in A1 soll also nur dann akzeptiert werden, wenn ich JA klicke.
Option Explicit
Sub Abfrage()
If MsgBox("Soll neuer Wert akzeptiert werden?", vbQuestion + vbYesNo, "Abfrage") = vbNo Then
MsgBox "NEIN", vbExclamation
End
Else
MsgBox "OK, neue Auswahl berücksichtigen"
End If
End Sub

Vielen Dank
Dietmar aus Aachen
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kombinationsfeld mit msgbox + vbYesNo
15.04.2010 16:20:35
Michael
Hallo,
der Code muss ins Click Ereignis der Combobox

Private Sub ComboBox1_Click()
If MsgBox("Soll neuer Wert akzeptiert werden?", vbQuestion + vbYesNo, "Abfrage") = vbNo Then
MsgBox "NEIN", vbExclamation
End
Else
[a1] = ComboBox1.Value
End If
End Sub
Grüße
Michael
Anzeige
AW: Kombinationsfeld mit msgbox + vbYesNo
15.04.2010 16:47:21
Dietmar
Hallo Michael,
vielen Dank!
Ich habe mich für den Code von NoNet entschieden.
Mit Value-Ergebnissen habe ich im Zshg. mit Klick-Ereignissen keine so guten Erfahrungen gemacht (funzt zu.B. bei Optionsfeldern nicht).
Viele Grüße
Dietmar aus Aachen
Abfrage Kombinationsfeld Wertaktualisierung
15.04.2010 16:28:31
NoNet
Hallo Dietmar,
ansatzweise köntest Du das so lösen (Name der ComboBox bitte anpassen !) :
Dim AlterWert 'Aktueller Wert der Zelle A1
Dim blnAlterWert 'Flag, ob AlterWert gerade zurückgeschrieben wird
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
WertSpeichern
End Sub
Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
WertSpeichern
End Sub
Private Sub ComboBox1_Change()
If Not blnAlterWert Then Abfrage
End Sub
Sub WertSpeichern()
AlterWert = [A1].Value 'Aktuellen Wert der Zelle A1 speichern, sobald Kombinationsfeld  _
angeklickt wird
End Sub
Sub Abfrage()
If MsgBox("Soll neuer Wert akzeptiert werden?", vbQuestion + vbYesNo, "Abfrage") = vbNo  _
Then
'MsgBox "NEIN", vbExclamation
blnAlterWert = True
[A1].Value = AlterWert 'Gespeicherten Wert wieder in A1 zurück schreiben
blnAlterWert = False
Else
'MsgBox "OK, neue Auswahl berücksichtigen"
End If
End Sub
Gruß, NoNet
Anzeige
Ja, damit komme ich gut klar ...
15.04.2010 16:44:45
Dietmar
Hallo NoNet,
herzlichen DANK! Das erscheint mir zwar recht aufwendig, funktioniert aber bestens!
Allerdings bleibt der Inhalt der Combobox aktiviert (invers). Lässt sich das noch umgehen. Range("XY").select wäre ja möglich, ist aber wohl nicht die erste Wahl, oder?
Hast Du dafür noch eine Idee?
Viele Grüße
Dietmar aus Aachen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige