Microsoft Excel

Herbers Excel/VBA-Archiv

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

Zelleneingabe

    Betrifft: Zelleneingabe von: Thorsten
    Geschrieben am: 30.09.2003 12:35:08

    Hi,

    Ich möchte erreichen, dass in meiner Spalte M nur werte eingetragen werden dürfen, die kleiner bzw. gleich 12 sind. Ansinsten soll eine Fehlermeldung erscheinen und der Wert soll nicht übernommen werden.
    Habe das versucht mit :

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    If Target.Column <> 13 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    If Target.Value > "12" Then MsgBox "Nur Werte <=12!", vbOKOnly + vbExclamation + vbDefaultButton1, "Achtung!"
    
    On Error Resume Next
    End Sub
    


    Das läuft nur nicht sauber. Zum Beispiel bekomme ich ne Fehlermeldung, wenn ich die If Abfragen mit Endif beenden will. Der Eintrag in die Zelle wird auch nicht verhindert...
    Wäre nett, wenn mir jemand bei der Korrektur des Makros zu Hand gehen könnte
      


    Betrifft: AW: Zelleneingabe von: Andi_H
    Geschrieben am: 30.09.2003 12:38:19

    Hi Thorsten,

    so etwa:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    
    If Target.Column <> 13 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    If Target.Value > 12 Then
    MsgBox "Nur Werte <=12!", vbOKOnly + vbExclamation + vbDefaultButton1, "Achtung!"
    Target = ""
    End If
    End Sub
    


    Gruß

    ANdi


      


    Betrifft: AW: Zelleneingabe von: Panicman
    Geschrieben am: 30.09.2003 12:39:56

    Hallo Thorsten,

    ist das nicht einfacher über Daten/Gültigkeit

    M1 makieren Daten/Gültigkeit Zulassen: Benutzerdefiniert Formel: =M1<=12
    nach unten kopieren. Die Fehlermeldung kann man auch besser formulieren.

    Gruß
    Holger


      


    Betrifft: AW: Zelleneingabe von: Thorsten
    Geschrieben am: 30.09.2003 13:06:30

    Hi, Danke,

    das Makro läuft.. nur mit der Gültigkeit kann ich keine Einträge machen, da scheint das nciht zu klappen


      


    Betrifft: AW: Zelleneingabe von: Panicman
    Geschrieben am: 30.09.2003 13:34:20

    Hallo Thorsten,

    Danke für die Rückmeldung,
    Ich habe mal als Beispiel eine Tabelle mit Gültigkeit hochgeladen.
    kannst du dir ja mal ansehen.
    Gültigkeit hat im Gegensatz zum Makro das Problem, das man auch "UNGÜLTIGE" Werte reinkopieren kann.
    Es hat aber den Vorteil, das es sich varialbel anpasst, wenn man Zeilen oder Spalten einfügt.

    Schau es dir mal an
    https://www.herber.de/bbs/user/1215.xls

    Gruß
    Holger


      


    Betrifft: Gültigkeit - Killerbefehl "Kopieren" und... von: Boris
    Geschrieben am: 30.09.2003 13:46:26

    Hi Holger,

    ...Ausschneiden - gefundenes Fressen für jeden DAU und der Tod einer jeden Gültigkeit.

    Da ich die Gültigkeit aber auch gerne verwende, bau ich nur ne Mini-Codezeile in das Selection_Change_Ereignis ein:
    If Application.CutCopyMode then Application.CutCopyMode = False - also ist Kopieren und Einfügen nicht mehr möglich.

    Zusätzlich kann man noch das Drag-and-Drop unterbinden mit
    Application.CellDragAndDrop = False - auch im Selection_Change_Ereignis.

    Ist zwar immer noch nicht 100% wasserdicht (z.B. kann man auch weiterhin noch aus der Bearbeitsungszeile raus kopieren und einfügen), aber für die meisten Dinge reicht das eigentlich schon aus.

    Grüße Boris