Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1028to1032
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

bestimmte Zellen mit Makro dynamisch entsperren

bestimmte Zellen mit Makro dynamisch entsperren
06.12.2008 11:35:18
Suche
Hallo Leute,
ich suche schon seit Tagen nach einem Makro das mir in einer bestimmten Tabelle (Tabelle 1) folgende Aufgabe übernimmt. (Tabellenblatt ist bis auf A1 gesperrt)
wenn in A1 die Zahl 1 steht nichts machen
wenn in A1 die Zahl 2 steht sollen die Zellen B1, B2 entsperrt werden
wenn in A1 die Zahl 3 steht sollen die Zellen B1, B2 und C1, C2 entsperrt werden
wenn in A1 die Zahl 4 steht sollen die Zellen B1, B2 und C1, C2 und D1 und D2 entsperrt werden
Vieleicht kann mir bei dieser schwierigen Aufgabe einer der Guros hier im Forum helfen?
schon jetzt vielen Dank an den Antwortenden!!

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Zellen mit Makro dynamisch entsperren
06.12.2008 12:53:58
Beate
Hallo,
das Marko gehört ins Codefenster der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("$A$1")) Is Nothing Then Exit Sub
    If Target.Cells.Count > 1 Then Exit Sub
    Dim v As Integer
    v = Target.Value
    On Error GoTo Ende
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Cells.Locked = True
    Select Case v
        Case 2
            Range("A1, B1:B2").Locked = False
        Case 3
            Range("A1, B1:C2").Locked = False
        Case 4
            Range("A1, B1:D2").Locked = False
        Case Else
            Range("A1").Locked = False
    End Select
    Ende:
    ActiveSheet.Protect
    Application.EnableEvents = True
End Sub


Guckst Du: Wie und wo fügt man ein Makro bzw. Code ein
Gruß,
Beate
Anzeige
AW: bestimmte Zellen mit Makro dynamisch entsperren
06.12.2008 15:09:55
Suche
Hallo Frau Schmiz,
erst einmal vielen Dank! Die Formel funktioniert in einer leeren Mappe super.
Leider war ich zu doof Ihnen mitzuteilen, dass die Zelle A1 über ein Funktionsfeld gesteuert wird.
Wie müsste die Formel jetz angepasst werden wenn man dies berücksichtigt?
Ich hoffe es macht Ihnen bzw. einem anderen im Forum nicht zu viel Unstende dieses Makro entsprechend anzupassen.
Nochmals schon jetzt vielen Dank beim Ersteller des entsprechenden Makros!!!!!
AW: bestimmte Zellen mit Makro dynamisch entsperren
06.12.2008 15:25:29
Beate
Hallo,
dann könnte man ein Worksheet_Calculate-Makro draus machen. Hat aber den Nachteil, dass es immer anspringt, wenn irgendwo im Blatt eine Neuberechnung geschieht. Das sähe dann so aus:
Private Sub Worksheet_Calculate()
    Dim v As Integer
    v = Range("A1").Value
    On Error GoTo Ende
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Cells.Locked = True
    Select Case v
        Case 2
            Range("A1, B1:B2").Locked = False
        Case 3
            Range("A1, B1:C2").Locked = False
        Case 4
            Range("A1, B1:D2").Locked = False
        Case Else
            Range("A1").Locked = False
    End Select
    Ende:
    ActiveSheet.Protect
    Application.EnableEvents = True
End Sub


-----------------------------------------------
Daher würde ich es wenn möglich bei einem Worksheet_Change Makro belassen. Und dort in der Zeile:
If Intersect(Target, Range("$A$1")) Is Nothing Then Exit Sub
die Zelle $A$1 austauschen gegen die Zelle, die die Vorgängerzelle von A1 ist und auf einer Eingabe beruht. Dann springt das Makro ja immer an, wenn A1 sich ändert.
Gruß,
Beate
Anzeige
AW: bestimmte Zellen mit Makro dynamisch entsperren
06.12.2008 22:30:13
Suche
Hallo Frau Schmitz,
nochmals vielen vielen Dank für Ihre Hilfe!
Durch die vielen Möglichkeiten von Excel und auch der Makrofunktionen(augezeichnete andere beherrsche ich leider nicht) habe ich mein Excel-Programm noch mal komplet umgeschmissen.
Folgende neue Situation:
Ich habe mehrere nicht gesperrte Felder in mein Excelblatt eingebaut in der der Anwender Eingaben machen kann, alle anderen Felder sind gesperrt.
Allerdings wenn der Anwender in einem Funktionsfeld eine Eingabe macht sollen noch nicht gesperrte (nur bedingt (farblich) formatierte Zellen dann mit einem Makro wie folgt von nicht gesperrt auf gesperrt gesetzt werden:
wenn Funktionszellenwert in AC9 =8 keine Zelle sperren
wenn Funktionszellenwert in AC9 = 7 dann U5 , U7 sperren
wenn " " in AC9 = 6 dann U5, U7 und S5 , S7 sperren
wenn " " in AC9 = 5 dann U5 , U7 und S5, S7 und Q5 , Q7 sperren
wenn " " in AC9 = 4 dann U5 , U7 und S5, S7 und Q5, Q7 und O5 , O7 sperren
wenn" " in AC9 =3 dann U5 , U7 und S5, S7 und Q5, Q7 und O5 , O7 und M5, M7 sperren
wenn" " in AC9 = 2 dann U5 , U7 und S5, S7 und Q5, Q7 und O5 , O7 und M5, M7 sperren
wenn" " in AC9 = 1 dann U5 , U7 und S5, S7 und Q5, Q7 und O5 , O7 und M5, M7 sperren
es währe super nett wenn Sie mir hier noch einmal helfen könnten.
Vielen Vielen Dank!!!!!!!!!!!!!!!!!!
Anzeige
bestimmte Zellen mit Makro dynamisch sperren
06.12.2008 23:05:00
Beate
Hallo,
Private Sub Worksheet_Calculate()
    Dim v As Integer
    v = Range("AC9").Value
    On Error GoTo Ende
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Cells.Locked = False
    Select Case v
        Case Is < 4
            Range("U5, U7, S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = True
        Case 4
            Range("U5, U7, S5, S7, Q5, Q7, O5, O7").Locked = True
        Case 5
            Range("U5, U7, S5, S7, Q5, Q7").Locked = True
        Case 6
            Range("U5, U7, S5, S7").Locked = True
        Case 7
            Range("U5, U7").Locked = True
        Case Else
            GoTo Ende
    End Select
    Ende:
    ActiveSheet.Protect
    Application.EnableEvents = True
End Sub


Anzeige
oder meinst du so?
06.12.2008 23:21:42
Beate
Hallo,
ich glaube, ich hatte deine Frage zunächst falschrum verstanden und beantwortet. Ich glaube jetzt, du meinst so:
Private Sub Worksheet_Calculate()
    Dim v As Integer
    v = Range("AC9").Value
    On Error GoTo Ende
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Cells.Locked = True
    Select Case v
        Case Is < 4
            GoTo Ende
        Case 4
            Range("M5, M7").Locked = False
        Case 5
            Range("O5, O7, M5, M7").Locked = False
        Case 6
            Range("Q5, Q7, O5, O7, M5, M7").Locked = False
        Case 7
            Range("S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = False
        Case 8
            Range("U5, U7, S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = False
    End Select
    Ende:
    ActiveSheet.Protect
    Application.EnableEvents = True
End Sub

Gruß,
Beate
Anzeige
AW: oder meinst du so?
07.12.2008 10:27:56
Suche
Hallo Beate:
hat leider nicht geklappt.
Ich habe beide Versionen getestet.
Folgende Probleme:
Da ich dieses "Excel-Programm" für andere Anwender schreibe sollten folgende Punkte erreicht werden ausgehend von der folgenden ist Situation.
IST-Situation:
Die Arbeitsmappe ist bis auf ca. 12 Eingabefelder und drei Funktionsfelder gesperrt damit am Programm nichts verändert werden kann. Wenn jetzt der Anwender im Funktionsfeld (Auswertung auf AC9) angiebt, das nur ein Kind berücksichtigt werden soll (AC9 ist dann 3), dann soll M5 und M7 ungesperrt bleiben und O5, O7 / Q5, Q7/ S5, S7 / U5,U7
die ebenfalls nicht gesperrt waren gesperrt werden, da ich dann vom Anwender kein Geb. Dat. und Laufzeit benötige.
Wenn der Anwender im Funktionsfeld (Auswertung AC9) 2Kinder wählt (AC9 ist dan 4) soll M5 , M7 und O5,O7 ungesperrt bleiben die Zellen Q5, Q7/ S5, S7 / U5,U7 sperren und so weiter.....................
bis max alle hier genannten Zellen ungesperrt bleiben da fünf Kinder eingetragen werden.
Ist der Wert in AC9 kleiner 3 sollen alle hier genannten Zellen gesperrt werden.
Warum benötige ich dieses Makro? Zum einen um bei der Berechnung in einer Anderen Mappe keine falschen Werte zu bekommen weil der Anwender einfach an der falschen Stelle Eingaben gemacht hat und zum zweiten um die Anwendung (das Programm) benutzerfreundlicher zu gestallten da der Anwender mit der Tabulatortaste nur in die nicht gesperrten Felder springen kann.
Eine Passwort Abfrage ist daher auch umbedingt zu vermeiden, da ich ja meine Formeln vor Veränderungen schützen möchte.
Ich hoffe ich habe mich verständlich zu meinem Problem geäussert!?
Anzeige
AW: oder meinst du so?
07.12.2008 10:35:28
Suche
Hallo Beate:
hat leider nicht geklappt.
Ich habe beide Versionen getestet.
Folgende Probleme:
Da ich dieses "Excel-Programm" für andere Anwender schreibe sollten folgende Punkte erreicht werden ausgehend von der folgenden ist Situation.
IST-Situation:
Die Arbeitsmappe ist bis auf ca. 12 Eingabefelder und drei Funktionsfelder gesperrt damit am Programm nichts verändert werden kann. Wenn jetzt der Anwender im Funktionsfeld (Auswertung auf AC9) angiebt, das nur ein Kind berücksichtigt werden soll (AC9 ist dann 3), dann soll M5 und M7 ungesperrt bleiben und O5, O7 / Q5, Q7/ S5, S7 / U5,U7
die ebenfalls nicht gesperrt waren gesperrt werden, da ich dann vom Anwender kein Geb. Dat. und Laufzeit benötige.
Wenn der Anwender im Funktionsfeld (Auswertung AC9) 2Kinder wählt (AC9 ist dan 4) soll M5 , M7 und O5,O7 ungesperrt bleiben die Zellen Q5, Q7/ S5, S7 / U5,U7 sperren und so weiter.....................
bis max alle hier genannten Zellen ungesperrt bleiben da fünf Kinder eingetragen werden.
Ist der Wert in AC9 kleiner 3 sollen alle hier genannten Zellen gesperrt werden.
Warum benötige ich dieses Makro? Zum einen um bei der Berechnung in einer Anderen Mappe keine falschen Werte zu bekommen weil der Anwender einfach an der falschen Stelle Eingaben gemacht hat und zum zweiten um die Anwendung (das Programm) benutzerfreundlicher zu gestallten da der Anwender mit der Tabulatortaste nur in die nicht gesperrten Felder springen kann.
Eine Passwort Abfrage ist daher auch umbedingt zu vermeiden, da ich ja meine Formeln vor Veränderungen schützen möchte.
Ich hoffe ich habe mich verständlich zu meinem Problem geäussert!?
Anzeige
letzter Versuch
07.12.2008 22:30:00
Beate
Hallo,
deine Erklärung weicht von deinen Vorerklärungen ab. Ein letzter Versuch, sonst musst du bitte mal eine Beispieldatei hochladen:
Private Sub Worksheet_Calculate()
    Dim v As Integer
    v = Range("AC9").Value
    On Error GoTo Ende
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Cells.Locked = True
    Select Case v
        Case Is < 3
            GoTo Ende
        Case 3
            Range("M5, M7").Locked = False
        Case 4
            Range("O5, O7, M5, M7").Locked = False
        Case 5
            Range("Q5, Q7, O5, O7, M5, M7").Locked = False
        Case 6
            Range("S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = False
        Case 7
            Range("U5, U7, S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = False
    End Select
    Ende:
    ActiveSheet.Protect
    Application.EnableEvents = True
End Sub


Gruß,
Beate
Anzeige
letzter Versuch
07.12.2008 22:31:28
Beate
Hallo,
deine Erklärung weicht von deinen Vorerklärungen ab. Ein letzter Versuch, sonst musst du bitte mal eine Beispieldatei hochladen:
Private Sub Worksheet_Calculate()
    Dim v As Integer
    v = Range("AC9").Value
    On Error GoTo Ende
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Cells.Locked = True
    Select Case v
        Case Is < 3
            GoTo Ende
        Case 3
            Range("M5, M7").Locked = False
        Case 4
            Range("O5, O7, M5, M7").Locked = False
        Case 5
            Range("Q5, Q7, O5, O7, M5, M7").Locked = False
        Case 6
            Range("S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = False
        Case 7
            Range("U5, U7, S5, S7, Q5, Q7, O5, O7, M5, M7").Locked = False
    End Select
    Ende:
    ActiveSheet.Protect
    Application.EnableEvents = True
End Sub


Gruß,
Beate
Anzeige
AW: letzter Versuch
08.12.2008 17:09:00
Suche
Hallo Beate,
ich bin scheinbar zu doof!
Daher lade ich Dir jetzt als hoffentlich wirklich letzten Versuch die Datei

Die Datei https://www.herber.de/bbs/user/57450.xls wurde aus Datenschutzgründen gelöscht


hoch und hoffe Du kannst daraus Deine Schlüsse ziehen respektive meine Fehler die ich gemacht habe ausmerzen.
Vielen Dank für Dein Durchhaltevermögen!!!!!!!!!!!!!!!!
Gruß vom Sucher
AW: letzter Versuch
08.12.2008 21:12:00
Beate
Hallo,
deine Datei ist Kennwortgeschützt. Wie lautet das?
Gruß,
Beate
AW: letzter Versuch
08.12.2008 22:54:00
Suche
Hallo Beate,
das Kennwort lautet: Schutz
Gruß
Sucher
AW: letzter Versuch
08.12.2008 23:22:00
Beate
Hallo,
du hast die Berechnungszelle verlegt und die Zellen die gesperrt/freigegeben werden sollen. Aber du hättest die Zellen auch im Code anpassen müssen:
https://www.herber.de/bbs/user/57464.xls
Gruß,
Beate
andere Funktionsfelder sind auch gesperrt
09.12.2008 14:23:37
Sucher
Hallo Beate,
das mit den benannten Feldern M5 bis U7 klappt super, aber wie ich bereits geschrieben habe soll bei anderen Zellen auch eine Eingabe möglich sein. Aber mit der derzeitigen Formel ist weder das erste Funktionsfeld veränderbar noch sind Eingabefelder die nicht gesperrt wurden nach dem Ausführen des Makros gesperrt.
Wie kann man das entsprechend anpassen ?
Bei meinem Versuch war ab dem Eingabefeld M16 (ist nicht auf der Hochgeladenen Exceldatei) schluss.
D16 D18 und D38 konnte ich noch selber im Makro so einfügen, das diese nach der Auswahl des Funktionsfelds noch beschreibbar waren.
Frage?
Könnte man sperren über die Farbe auch automatisch über ein Makro veranlassen wenn die Zellenfarbe über bedingte Formatierung durch eine Eingabe verändert wird?
Alle weißen ColorIndex = 2 entsperren wäre doch auch eine Möglichkeit oder?
Gruß
Sucher
AW: andere Funktionsfelder sind auch gesperrt
11.12.2008 00:26:01
Beate
Hallo,
starte doch noch mal neu mit deinem jetztigen Stand einen Beitrag. Und bringe deine Punkte alle von vornean mit Beispieldatei. Und nicht immer wieder was ändern. Sag einfach, wo du bist und was du willst.
Ich kann dir nicht mehr helfen.
Gruß.
Beate
AW: andere Funktionsfelder sind auch gesperrt
11.12.2008 08:23:33
Sucher
Hallo Beate,
auch wenn jetzt nicht das gewünschte Ergebnis erreicht wurde, vielen vielen Dank für Deine Bemühungen!
Und ja, ich bin ständig mit einer neuen Situation und Anfrage an Dich heran getreten, aber das liegt wohl daran, dass ich gerade die gewalltigen Möglichkeiten von Excel kennenlerne und diese neuen Möglichkeiten auch in mein Projekt mit einbauen wollte.
Vielen Vielen Dank!
Gruß
Sucher
AW: bestimmte Zellen mit Makro dynamisch sperren
07.12.2008 00:28:29
Suche
Hallo Beate,
schon mal jetzt vielen vielen Dank!
Ich werde es morgen Testen und dann mitteilen obs geklappt hat!!

107 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige