Herbers Excel-Forum - das Archiv

Zelle nach Eingabe sperren (VBA)

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zelle nach Eingabe sperren (VBA)
von: Ina
Geschrieben am: 14.12.2003 19:47:52
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

Bild

Betrifft: AW: Zelle nach Eingabe sperren (VBA)
von: Josef Ehrensberger
Geschrieben am: 14.12.2003 20:08:17
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
Bild

Betrifft: Noch offen: Zelle nach Eingabe sperren (VBA)
von: Ina
Geschrieben am: 14.12.2003 20:40:43
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
Bild

Betrifft: AW: Noch offen: Zelle nach Eingabe sperren (VBA)
von: Ramses
Geschrieben am: 14.12.2003 20:52:22
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
Bild

Betrifft: AW: Noch offen: Zelle nach Eingabe sperren (VBA)
von: Ina
Geschrieben am: 14.12.2003 21:10:16
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
Bild

Betrifft: Selektives Sperren einer Zelle
von: Ramses
Geschrieben am: 14.12.2003 21:25:48
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
Bild

Betrifft: AW: Selektives Sperren einer Zelle
von: Ina
Geschrieben am: 14.12.2003 21:59:57
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
Bild

Betrifft: AW: Selektives Sperren einer Zelle
von: Ramses
Geschrieben am: 14.12.2003 22:05:33
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
Bild

Betrifft: AW: Selektives Sperren... Danke Ramses
von: Ina
Geschrieben am: 14.12.2003 22:12:36
Hallo Rainer,

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

Grüsse Ina
Bild

Betrifft: Merci :-)) Geschlossen. o.T.
von: Ramses
Geschrieben am: 14.12.2003 22:19:02
...
Bild

Betrifft: AW: Zelle nach Eingabe sperren (VBA)
von: Werner
Geschrieben am: 14.12.2003 20:51:14
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
Bild
Excel-Beispiele zum Thema " Zelle nach Eingabe sperren (VBA)"
Zelleingaben speichern Bei falscher Eingabe alten Wert wiederherstellen
Eingabeerleichterung bei Zeitformaten Nichtnumerische Eingaben verhindern
Eingabe in Großbuchstaben wandeln Eingaben aufaddieren
Automatisches Komplettieren einer Zelleingabe Nur numerische Eingaben zulassen
Vereinfachte Zeiteingabe Datumseingabe in Textfeld erzwingen