Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle nach Eingabe sperren (VBA)

Forumthread: Zelle nach Eingabe sperren (VBA)

Zelle nach Eingabe sperren (VBA)
14.12.2003 19:47:52
Ina
Hallo Forum,

ich habe schon wieder ein Problem...

Ist es möglich, eine Zelle (D3) per VBA zu sperren, wenn ein Wert eingegeben wurde und nur per Button wieder zu entsperren, um einen neuen Wert einzugeben?

Wer kann helfen?

Danke und Gruss Ina
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle nach Eingabe sperren (VBA)
14.12.2003 20:08:17
Josef Ehrensberger
Hallo Ina,

probier mal diesen Code.
nach einem Eintrag wird die Zelle "D3" gesperrt,
nach Doppelklick entsperrt.



Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" Then
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$D$3" Then
ActiveSheet.Unprotect
Target.Locked = False
ActiveSheet.Protect
End If
End Sub


     Code eingefügt mit Syntaxhighlighter 2.5


Gruß Sepp
Anzeige
Noch offen: Zelle nach Eingabe sperren (VBA)
14.12.2003 20:40:43
Ina
Hallo Sepp,

vielen Dank für Deinen Tip.

Leider wird mit dem Code nach Eingabe in D3 das ganze Arbeitsblatt gesperrt, ein weiteres Arbeiten in anderen Bereichen der Tabelle soll aber weiter möglich sein.

Und... falls per VBA möglich, soll die Zelle D3 nur per Button wieder entsperrt werden können.

Hast Du vielleicht noch einen anderen Tip?

Danke und Gruss Ina
Anzeige
AW: Noch offen: Zelle nach Eingabe sperren (VBA)
14.12.2003 20:52:22
Ramses
Hallo

worin soll der Sinn liegen, die Zelle zu sperren, wenn jeder über einen Button die Zelle wieder entsperren kann.

Grundsätzlich ist es nur möglich einzelne Zellen zu sperren, wenn für alle anderen zellen der Schutz entfernt wird und nur für diese Zelle gesetzt wird.
Ein Zelle kann nur gesperrt werden, indem die Tabelle geschützt wird.

So sind die Regeln... :-)

Gruss Rainer
Anzeige
AW: Noch offen: Zelle nach Eingabe sperren (VBA)
14.12.2003 21:10:16
Ina
Hallo Ramses,

der Zweck ist, das nur mit Klick auf den Button eine Neueingabe in Zelle D3 ermöglicht und durch den Klick Zellinhalte in einem weiteren Bereich gelöscht werden.

Hast Du einen Tip?

Dank und Gruss Ina
Selektives Sperren einer Zelle
14.12.2003 21:25:48
Ramses
Hallo Ina

dieser Code gehört in das Klassenmodul "Diese Arbeitsmappe"


Option Explicit

Private Sub Workbook_Open()
chkVal = False
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16



Dieser Code gehört in das Klassenmodul der Tabelle wo das ganze funktionieren soll


Option Explicit

Private Sub CommandButton1_Click()
chkVal = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address(FalseFalse) = "D3" And chkVal = True Then
    chkVal = False
ElseIf Target.Address(FalseFalse) = "D3" And chkVal = False Then
    Target.Offset(0, -1).Select
End If
End Sub
 
     Code eingefügt mit Syntaxhighlighter 1.16



Erstelle auf der Tabelle einen Button aus der Steuerelement Toolbox und weise diesem Button den Code von Commandbutton1 zu

Der Code gehört in ein Modul


Option Explicit

Public chkVal As Boolean
 
     Code eingefügt mit Syntaxhighlighter 1.16



Die Mappe speichern und wieder öffnen.
Wenn du nun auf den Button klickst, wird die Variable auf "True" gesetzt und du kannst die Zelle auswählen. Gleichzeitig wird die Variable wieder auf False gesetzt.
Solltest du die zelle so auswählen ohne den Button anzuklicken, wird die zelle links davon ausgewählt.

Mehr geht nicht ohne Tabellenschutz.

Gruss Rainer
Anzeige
AW: Selektives Sperren einer Zelle
14.12.2003 21:59:57
Ina
Hallo Rainer,

der Code funktioniert super (Zelle gesperrt...).

Habe jetzt allerdings ein weitere Problem.
Wie kann ich einen Button mit dem Namen CommandButton1 in die Tabelle einfügen und mit dem Macro verbinden??

Dem vorhandenen Button (aus einer anderen Excel8-Tabelle kopiert) kann ich einfach nicht beibringen, was er zu machen hat. :-(

Kannst Du noch einmal helfen?

Danke und Gruss Ina
Anzeige
AW: Selektives Sperren einer Zelle
14.12.2003 22:05:33
Ramses
Hallo

Ansicht - Symbolleisten - "Steuerelement Toolbox"

Dort einen Button auf die Tabelle ziehen
Doppelklick auf den Button
Code einfügen

Entwurfmodus ausschalten ( Symbol mit Dreieck ganz links in der Symbolleiste )

Viel Spass

Gruss Rainer
AW: Selektives Sperren... Danke Ramses
14.12.2003 22:12:36
Ina
Hallo Rainer,

vielen Dank noch einmal für Deine Mühe.
Das hat alle wunderbar geklappt!

Grüsse Ina
Anzeige
Merci :-)) Geschlossen. o.T.
14.12.2003 22:19:02
Ramses
...
AW: Zelle nach Eingabe sperren (VBA)
14.12.2003 20:51:14
Werner
Hallo Sepp
habe dein VBA Code sofort bei mir ausprobiert.
Toll !
1 Nachteil ist aber da. Nach Eingabe in D3 ist das ganze Blatt und nicht nur die Zelle geschützt. Hast du dafür auch was ?

Tschüs Werner

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

Infobox / Tutorial

Zelle nach Eingabe sperren in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel nach der Eingabe zu sperren, kannst du VBA (Visual Basic for Applications) nutzen. Hier ist eine einfache Anleitung:

  1. Öffne Excel und gehe zu der Arbeitsmappe, in der du die Zelle sperren möchtest.

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

  3. Füge den folgenden Code in das Klassenmodul der Tabelle ein, in der du arbeiten möchtest:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$D$3" Then
           ActiveSheet.Unprotect
           Target.Locked = True
           ActiveSheet.Protect
       End If
    End Sub
    
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Target.Address = "$D$3" Then
           ActiveSheet.Unprotect
           Target.Locked = False
           ActiveSheet.Protect
       End If
    End Sub
  4. Erstelle einen Button aus der Steuerelement-Toolbox und weise ihm den folgenden Code zu:

    Private Sub CommandButton1_Click()
       chkVal = True
    End Sub
  5. Speichere die Arbeitsmappe und öffne sie erneut. Der Button wird jetzt die Zelle D3 entsperren, wenn du darauf klickst.


Häufige Fehler und Lösungen

  • Problem: Nach der Eingabe wird das gesamte Arbeitsblatt gesperrt.

    • Lösung: Stelle sicher, dass du nur die Zelle D3 sperrst, indem du den Code korrekt anpasst. Füge den Code in das richtige Modul ein.
  • Problem: Der Button funktioniert nicht.

    • Lösung: Überprüfe, ob der Button im Entwurfsmodus ist und dass der Code korrekt mit dem Button verknüpft ist.

Alternative Methoden

Eine andere Möglichkeit, eine Zelle in Excel zu sperren, ist die Verwendung von Formeln oder Datenvalidierungen. Diese bieten zwar nicht denselben Schutz wie VBA, können aber hilfreich sein, um Eingaben in Zellen zu steuern. So kannst du beispielsweise den Benutzer auffordern, einen bestimmten Wert einzugeben, und andere Eingaben verhindern.


Praktische Beispiele

  1. Zelle D3 sperren: Wenn in die Zelle D3 ein Wert eingegeben wird, wird sie automatisch für weitere Eingaben gesperrt.
  2. Button zur Entsperrung: Mit einem Button kannst du die Zelle D3 wieder entsperren, um eine neue Eingabe zu ermöglichen.

Tipps für Profis

  • Nutze Fehlerbehandlungsroutinen im VBA-Code, um unerwartete Probleme zu vermeiden.
  • Teste den Code zuerst in einer Kopie deiner Arbeitsmappe, um sicherzustellen, dass alles wie gewünscht funktioniert.
  • Halte deinen VBA-Code gut dokumentiert, damit du ihn in Zukunft leicht anpassen kannst.

FAQ: Häufige Fragen

1. Wie kann ich eine andere Zelle als D3 sperren?
Du musst die Adresse in dem Code von "$D$3" auf die gewünschte Zelle ändern.

2. Kann ich mehrere Zellen gleichzeitig sperren?
Ja, du kannst die Logik im VBA-Code anpassen, um mehrere Zellen zu berücksichtigen. Füge einfach weitere Bedingungen hinzu.

3. Funktioniert dies in Excel Online?
Leider ist VBA nicht in Excel Online verfügbar. Du musst dies in der Desktop-Version von Excel durchführen.

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