Beschränken Sie das Einfügen in Dropdown-Zellen in Excel

6

Ich habe ein Excel-Blatt, das viele Dropdown-Spalten enthält. Nehmen wir an, eine Spalte enthält Test1, Test2 und Test3 als Dropdown-Optionswerte. Zellen unter dieser Spalte sollten keine anderen Werte als diese 3 akzeptieren. Wenn ich 'XYZ' kopiere und in diese Zellen einfüge, sollte es nicht akzeptieren. Kann mir jemand helfen, wie ich damit umgehen soll?

Charan Raju CR
quelle

Antworten:

7

Richten Sie die Datenüberprüfung ein

Sie möchten die Datenüberprüfungsfunktion in Excel verwenden, um Zellen auf bestimmten Text zu beschränken. In Ihrem Fall: "Test1", "Test2" und "Test3"

  1. Wählen Sie die Zellen aus, die nur die Werte "Test1", "Test2" und "Test3" akzeptieren sollen
  2. Auf den Daten Registerkarte in den Tool Datengruppe, klicken Sie auf die Datenüberprüfung Schaltfläche.

    Speicherort für die Datenüberprüfung in der Office-Multifunktionsleiste

  3. Wählen Sie in der Dropdown- Liste Zulassen: die Option Liste aus

  4. Im Quelle: Feld geben Sie Test1, Test2, Test3

    Einstellungen für die Datenüberprüfung

  5. Klicken Sie auf OK , um die Änderungen zu übernehmen.

Zu diesem Zeitpunkt ist jeder Zelle, die Sie in Schritt 1 ausgewählt haben, eine Dropdown-Liste zugeordnet. Benutzer der Tabelle können nur Test1 , Test2 oder Test3 eingeben . Wenn sie versuchen, etwas anderes einzugeben, wird die folgende Fehlermeldung angezeigt:

Bildbeschreibung hier eingeben

Sie können den Fehlermeldungstext, falls gewünscht, anpassen auf dem durch Klicken auf Fehleralarm Registerkarte in Schritt 4 von oben.

Kopieren / Einfügen über datenvalidierte Zellen verhindern

Dies funktioniert hervorragend, AUSSER wenn jemand Inhalte über die Zellen fügt. Die einzige Möglichkeit, dies zu verhindern, besteht darin, ein Makro zu schreiben, das Aktualisierungen der Zellen erkennt, feststellt, ob die Datenüberprüfung für die Zellen aktiviert ist, und dann das Einfügen zu verweigern, wenn dies wahr ist.

  1. Wählen Sie alle Zellen mit Datenüberprüfung aus und nennen Sie sie DataValidationRange . Sie können Zellbereiche benennen, indem Sie den Namen links von der Formelleiste eingeben, in der sich die Zelladresse befindet.
  2. Fügen Sie im Codemodul für das Arbeitsblatt (z. B. Sheet1) den folgenden Code hinzu:
Private Sub Worksheet_Change (ByVal Target As Range)
    'Hat der Validierungsbereich noch eine Validierung?
    If HasValidation (Range ("DataValidationRange")) Then
        Sub beenden
    Sonst
        Anwendung.Undo
        MsgBox "Fehler: Sie können keine Daten in diese Zellen einfügen." & _
        "Verwenden Sie stattdessen das Dropdown-Menü, um Daten einzugeben.", VbCritical
    End If
End Sub

Private Funktion HasValidation (r) As Boolean
    'Gibt True zurück, wenn jede Zelle in Range r die Datenüberprüfung verwendet
    On Error Resume Weiter
    x = r.Validation.Type
    Wenn Err.Number = 0, dann HasValidation = True, sonst HasValidation = False
Funktion beenden

Leider ist VBA der einzige Weg, um zu verhindern, dass jemand über die Zellen klebt. Dies war von Anfang an ein Problem bei der Datenüberprüfung in Excel. Hoffe es hilft so oder so.


quelle
Hallo Tyler, danke für deine Hilfe. Es funktioniert einwandfrei, wenn ich auf die Zelle tippe oder doppelklicke und den ungültigen Wert einfüge. Es wird jedoch keine Fehlermeldung ausgegeben, wenn ich auf Zelle und Einfügen (einzeln) klicke.
Charan Raju CR
@Charan Ich habe die Antwort mit dem VBA-Code aktualisiert, der erforderlich ist, um das Einfügen zu verweigern. Ohne VBA geht das leider nicht.
0

Eine einfachere Lösung wäre, das Einfügen in die Arbeitsmappe ganz zu deaktivieren. Die Lösung dafür habe ich gerade hier gefunden: http://www.vbaexpress.com/kb/getarticle.php?kb_id=373

mjavon
quelle
Eine bessere Antwort würde die Antwort enthalten und nicht nur einen Link dazu.
Enigma
1
Willkommen bei Super User! Könnten Sie bitte Ihre Antwort so bearbeiten , dass sie die relevanten Informationen von der verlinkten Seite enthält? Dies stellt sicher, dass Ihre Antwort auch dann nützlich ist, wenn sich die verknüpfte Seite ändert oder verschwindet. Vielen Dank!
Hervorragend