Microsoft Excel

Herbers Excel/VBA-Archiv

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

Nach dem Bestätigen der Eingabe in eine Zelle...

Betrifft: Nach dem Bestätigen der Eingabe in eine Zelle... von: Josef
Geschrieben am: 23.04.2008 06:17:56

Guten Morgen!

Ich habe ein Arbeitsblatt mit dem Namen "Ausprägungen".
Nachdem ich in der Spalte "H" in der nächsten freien Zelle einen Eintrag mit return oder mit der Tab Taste verlasse, möchte ich nun erreichen, dass eine MSG Box mit einem "JA" und "NEIN" Button sich öffnet, mit der Frage: "Ist der Eintrag korrekt?". Ist der Eintrag korrekt, sollte sich die MSG Box schliessen, ist der Eintrag jedoch nicht korrekt, dann soll ein Makro gestartet werden, die MSG Box sollte sich wieder schliessen und die Zelle mit der fehlerhaften Eingabe sollte für eine Korrektur markiert werden.

Mit dem Code

If Target.Column = 8 And Target.Row > 1 Then
Sheets("tabelle1").Cells(Rows.Count, 28).End(xlUp).Offset(1, 0) = Target
End If

wird in einem Worksheet_Change Ereignis der Eintrag in der letzten Zelle in der Spalte H in das Tabellenblatt "Tabelle 1" in die Spalte "AB" in die nächste freie Zelle kopiert.

mit dem Makro

Sub Del_Ausprägung_Kurztext()
On Error GoTo WEITER:
Dim mldg, stil, titel, grc
Dim wks As Worksheet

Set wks = Workbooks("Masterfile.xls").Worksheets("Tabelle1")
'hier wird meldung erzeugt ob daten geändert werden sollen

mldg = "Wert wirklich löschen ?"
stil = vbYesNo + vbCritical + vbDefaultButton2
titel = "Frage ?"
grc = MsgBox(mldg, stil, titel)
If grc = vbYes Then
Else
Exit Sub
End If
    
With wks
        If IsEmpty(.Cells(.Cells(.Rows.Count, 28).End(xlUp).Row, 1)) Then _
        .Cells(.Cells(.Rows.Count, 28).End(xlUp).Row, 28).ClearContents
End With
    
WEITER:
End Sub



sollte bei einer "NEIN" Bestätigung in der MSG Box der fehlerhafte Wert in der "Tabelle 1" wieder gelöscht werden.

Wie würde hier bitte eine VBA Lösung für das Öffnen der MSG Box und den Makrostart lauten?

Danke

Josef

  

Betrifft: AW: Nach dem Bestätigen der Eingabe in eine Zelle... von: Luschi
Geschrieben am: 23.04.2008 08:05:05

Hallo Josef,

so kann man das machen:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x As Integer
    x = MsgBox("Alles richtig?", 32 + vbYesNo + vbDefaultButton2, "Fehlerkontrolle")
    If x = vbNo Then
       Application.EnableEvents = False
       'zurück zur Eingabezelle
       Target.Select
       
       'oder
       
       'Eingabe ungültig machen
       Application.Undo
       Application.EnableEvents = True
    End If
End Sub

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Nach dem Bestätigen der Eingabe in eine Zelle... von: Josef
Geschrieben am: 23.04.2008 11:05:17

Hallo Luschi!

Danke für Deine Antwort und für Deine Hilfe.

Schönen Tag noch

Josef


  

Betrifft: AW: Nach dem Bestätigen der Eingabe in eine Zelle... von: Schnee
Geschrieben am: 23.04.2008 12:08:30

Hallo Josef,

So kann man es auch lösen:
https://www.herber.de/bbs/user/51782.xls


Beste Grüße,
Christian


 

Beiträge aus den Excel-Beispielen zum Thema "Nach dem Bestätigen der Eingabe in eine Zelle... "