Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen für Eingabe sperren | Herbers Excel-Forum


Betrifft: Zellen für Eingabe sperren von: Rosi
Geschrieben am: 26.01.2010 07:55:18

Hallo Forum,

ich habe eine Tabelle,in der ich die Eingaben in einige Zellen (z.B. C9 bis C11 und C33 bis C35) abhängig machen will von einer Eingabe in der Zelle C3,d.h. eine Eingabe in den beschriebenen Zellen soll erst möglich sein wenn eine Eingabe in C3 erfolgt ist.
Wird die Eingabe in C3 gelöscht sollen auch die beschriebenen Zellen leer werden.

Wie kriege ich das hin?

Gruß Rosi

  

Betrifft: AW: Zellen für Eingabe sperren von: Hajo_Zi
Geschrieben am: 26.01.2010 08:10:46

Hallo Rosi,

das mit dem beschreiben ist per Datengüligkeit möglich, aber das Leer geht nur per VBA.

GrußformelHomepage


  

Betrifft: AW: Zellen für Eingabe sperren von: welga
Geschrieben am: 26.01.2010 08:24:43

Hallo Rosi,

schriebe folgendes in den Code vom Tabellenblatt:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C3,C9:C11, C33:C35"), Target) Is Nothing Then
    Application.ScreenUpdating = False
    Application.EnableEvents = False
        If Cells(3, 3) = "" Then
        Range("C9:C11").ClearContents
        Range("C33:C35").ClearContents
           End If
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End If
End Sub
Gruß
Welga


  

Betrifft: AW: Zellen für Eingabe sperren von: Rosi
Geschrieben am: 26.01.2010 10:31:40

so,da bin ich wieder,

danke schön für eure Antworten.

Welga das hat einwandfrei funktioniert,habe dann etwas erweitert,nun geht es nicht mehr.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C3, C5:C6, C9:C11, C21:C28, C33:C35"), Target) Is Nothing Then
    Application.ScreenUpdating = False
    Application.EnableEvents = False
        If Cells(3, 3) = "" Then
        Range("C5:C6").ClearContents
        Range("C9:C11").ClearContents
        Range("C21:C28").ClearContents
        Range("C33:C35").ClearContents
           End If
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End If
End Sub

Was habe ich da falsch gemacht?


Gruß Rosi


  

Betrifft: AW: Zellen für Eingabe sperren von: Rosi
Geschrieben am: 26.01.2010 10:55:23

sorry,noch eine Frage,

wie kann ich den Code auf eine weitere Spalte (D) erweitern?


Gruß Rosi


  

Betrifft: AW: Zellen für Eingabe sperren von: welga
Geschrieben am: 26.01.2010 13:37:57

Hallo,

eiegntlich müsste dein Co0de so laufen. Das Erweitern auf Spalte D geht genauso wie du es hier auch schon gemacht hast.

Da das Makro nun nicht mehr läuft:
Hast du es mit unterbrochen? Ich vermute mal, dass deine Events nicht mehr auf true gesetzt wurden. Diese einfach wieder aktivieren und dann sollte dein Makrop laufen.

Kleiner Tipp: Wenn du das Makro bearbeiten willst, schreibe ein " ' " vor die application-Zeilen. Dieses dann später wieder löschen.


  

Betrifft: AW: Zellen für Eingabe sperren von: welga
Geschrieben am: 26.01.2010 13:46:23

Hallo nochmal,
ich würde den Code dann ganz einfach wie folgt abändern:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Range("C:D"), Target) Is Nothing Then
       Application.ScreenUpdating = False
       Application.EnableEvents = False
           If Cells(3, 3) = "" Then
           Range("C9:C11").ClearContents
           Range("C21:C28").ClearContents
           Range("C33:C35").ClearContents
           Range("D:D").ClearContents
           End If
       Application.EnableEvents = True
       Application.ScreenUpdating = True
   End If
   End Sub
Das bedeutet bei jeglicher Eingabe in die Spalte C oder D wird überprüft, ob in C3 nicht leer ist. falls doch dann werden die entsprechenden Bereiche geleert.

Gruß
welga


  

Betrifft: AW: Zellen für Eingabe sperren von: Rosi
Geschrieben am: 27.01.2010 05:43:12

Hallo Welga,

alles ok.
Vielen Dank für Deine Mühe.
Funktioniert wieder (weiss zwar nicht was das war,aber letztlich zählt der Erfolg).


Gruß Rosi


Beiträge aus den Excel-Beispielen zum Thema "Zellen für Eingabe sperren"