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

Forumthread: zelle sperren wenn bedingung nicht erfül

zelle sperren wenn bedingung nicht erfül
16.07.2020 14:44:07
Sonja
Hallo Excel-King´s,
brauche mal wieder Euren geschätzten Rat:
Ich benötige ein Makro, das überprüft ob in der Nachbarspalte eine Eintragung vorgenommen ist. Wenn der Eintrag größer 0 ist, soll in der Spalte vorher das Eintragen von Zahlen (Stunden) ermöglicht werden. Wenn der Eintrag 0 ist, dann soll die Eintragung nicht möglich sein und eine Messagebox aufgehen. (z.B. "Es wurde kein Stundensatz hinterlegt!")
Beispiel Zelle Q27 sperren
Q27 (betrifft die ganze Spalte ab Zeile 27) der User will 1,5 Stunden eintragen
R27 steht "0"
Messagebox: "Eintrag nicht möglich, es wurde kein Stundensatz hinterlegt!"
Beispiel Zell Q27 freigeben
Q27 (betrifft die ganze Spalte ab Zeile 27) der User will 1,5 Stunden eintragen
R27 steht "51,20"
Eintrag soll möglich sein
Das ganze soll über das Tabellenblatt verteilt auch erreicht werden.
Spalte S Eintrag
Spalte T Prüfung
und so weiter....
Ich hoffe sehr, dass ich mich verständlich ausgedrückt habe und danke euch schon mal vorab...
S.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zelle sperren wenn bedingung nicht erfül
16.07.2020 14:50:42
Sonja
Das Wichtigste hab ich noch vergessen...
Die Eintragung in die Tabelle geschieht über eine Userform. Das heißt, dass am Besten die Fehlermeldung bereits beim ausfüllen der Userform kommen müsste.
Da das Tabellenblatt für Eintragungen offen ist, brauch ich beides.
1. Überprüfung und ggf. Meldung beim eintragen in die Userform
2. Überprüfung und ggf. Meldung beim eintragen im Tabelleblatt
Sorry
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen in Excel sperren und freigeben basierend auf Bedingungen


Schritt-für-Schritt-Anleitung

Um in Excel Zellen zu sperren, wenn eine bestimmte Bedingung nicht erfüllt ist, kannst Du ein Makro erstellen. Befolge diese Schritte:

  1. Öffne Excel und das entsprechende Arbeitsblatt.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim rng As Range
       Set rng = Range("Q27:Q100") ' Anpassung des Bereichs nach Bedarf
    
       If Not Intersect(Target, rng) Is Nothing Then
           Dim rowNum As Long
           rowNum = Target.Row
    
           If Cells(rowNum, "R").Value = 0 Then
               Application.EnableEvents = False
               Target.ClearContents
               MsgBox "Eintrag nicht möglich, es wurde kein Stundensatz hinterlegt!"
               Application.EnableEvents = True
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und teste das Makro, indem Du in die Zellen Q27 bis Q100 Werte eingibst.

Diese Schritte ermöglichen es, die Zelle Q27 zu sperren, wenn die Bedingung in der Nachbarzelle R nicht erfüllt ist.


Häufige Fehler und Lösungen

  • Fehler: „Das Makro wurde nicht ausgeführt“

    • Lösung: Überprüfe die Makrosicherheitseinstellungen in Excel. Stelle sicher, dass Makros aktiviert sind.
  • Fehler: Die Messagebox erscheint nicht

    • Lösung: Stelle sicher, dass das Event „Worksheet_Change“ korrekt geschrieben und aktiviert ist.

Alternative Methoden

Eine weitere Möglichkeit, Zellen in Excel auszugrauen, wenn eine Bedingung nicht erfüllt ist, ist die Verwendung von bedingter Formatierung:

  1. Markiere die Zellen, die Du anpassen möchtest.

  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.

  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib folgende Formel ein:

    =R27=0
  4. Wähle das Format „Ausgegraut“ aus, um die Zellen zu kennzeichnen.


Praktische Beispiele

  1. Zelle Q27 sperren: Wenn R27 den Wert 0 hat, wird die Eingabe in Q27 nicht erlaubt.
  2. Zelle Q27 freigeben: Wenn R27 einen Wert größer als 0 hat, kann der Benutzer Stunden eingeben.

Diese Beispiele zeigen, wie Du die Zellen in Excel sperren oder freigeben kannst, basierend auf den angegebenen Bedingungen.


Tipps für Profis

  • Verwende benutzerdefinierte Formeln: Du kannst die Bedingungen in den Formeln anpassen, um komplexere Logik zu ermöglichen.
  • Kombiniere Makros und bedingte Formatierung: So erhältst Du eine visuell ansprechende und funktionale Lösung.
  • Teste Deine Makros: Stelle sicher, dass Du Deine Makros gründlich testest, um unerwartete Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Zelle sperren, wenn ich eine Userform benutze?
Du kannst ähnliche Logik in den Code der Userform einfügen, um die Eingabe zu überprüfen, bevor die Daten in das Arbeitsblatt geschrieben werden.

2. Funktioniert dies in allen Excel-Versionen?
Ja, die oben genannten Schritte und Methoden sind für Excel 2010 und neuere Versionen anwendbar.

3. Was passiert, wenn ich die Zelle manuell entsperren möchte?
Du kannst die Zelle manuell wieder aktivieren, indem Du die Zelle auswählst und die Eingabe erneut versuchst, jedoch wird die Messagebox erscheinen, wenn die Bedingung nicht erfüllt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige