Frage zu Excel

Dieses Thema Frage zu Excel im Forum "Microsoft Office Suite" wurde erstellt von a234781, 20. Feb. 2005.

Thema: Frage zu Excel Hallo zusammen ich möchte abhängig vom Inhalt einer Zelle einen Zellenbereich sperren oder öffnen. Beispiel: Wenn...

  1. Hallo zusammen

    ich möchte abhängig vom Inhalt einer Zelle einen Zellenbereich sperren oder öffnen.

    Beispiel:
    Wenn A1 den Wert 1 hat sollen die Zellen B1 bis D1 gesperrt werden,
    wenn A1 den Wert 0 hat sollen die Zellen B1 bis D1 geöffnet werden.

    Ist das möglich?  :-\

    Gruss zoggeli
     
  2. Hi zoggeli,

    es ist möglich  ;)

    Folgendes Makro in der Code-Seite der Tabelle schaltet dir->gesperrt' der Zellen
    abhängig vom Wert in Spalte A (1=sperren, alles ander = entsperren).

    Gruß Matjes  ;)
    Code:
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     ->Wenn SPalte A den Wert 1 hat, Spalte B,C,D sperren
      Const c_SPA As Long = 1->Spalte A
      Const c_spVon As Long = 2->Spalte B
      Const c_spBis As Long = 4->Spalte D
      
      Dim zelle As Range, b_locked As Boolean, sp As Long, v_value As Variant
      
      For Each zelle In Target
        If zelle.Column = c_SPA Then
          If Not IsNumeric(zelle.Value) Then
            b_locked = False
          ElseIf zelle.Value <> 1 Then
            b_locked = False
          Else
            b_locked = True
          End If
          If b_locked And (Not Cells(zelle.Row, c_spVon).Locked) Then
            Range(Cells(zelle.Row, c_spVon), _
                  Cells(zelle.Row, c_spBis)).Locked = True
          ElseIf (Not b_locked) And Cells(zelle.Row, c_spVon).Locked Then
            Range(Cells(zelle.Row, c_spVon), _
                  Cells(zelle.Row, c_spBis)).Locked = False
          End If
        End If
      Next
    End Sub
     
  3. Hallo Matjes

    wie ich sehe bist Du ein richtiger VBA Spezialist denn auch dieses Script funktioniert tadellos solange der Wert nicht aus einem Formelergebnis (Wenn-Dann) kommt.
    Da ich die Zellensperrung durch die Eingabe eines Kurzzeichens (3 Buchstaben) auslösen möchte frage ich Dich ob die Aktivierung auch durch alphanumerische Zeichen erfolgen kann.

    Besten Dank

    Gruss zoggeli
     
  4. Hallo zoggeli,

    da hast Du natürlich Recht.  ;D

    Geänderte Formelergebnisse gehen nicht durch das Change-Ereignis. Das müßte man mit dem Calculate-Ereignis abfangen und die Zellen in Spalte A auf Formeln prüfen.  Ist eine Formel enthalten, müßte man den Wert auslesen und abhängig von diesem den Zustand->Gesperrt' der Zeilenzellen B-D überprüfen und ggf. umschalten.

    Hier jetzt die Version Worksheet_Change mit alphanumerischem Wert:
    (den Wert c_SperrKuerzel bitte anpassen)

    Gruß Matjes  ;)
    Code:
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     ->Wenn SPalte A den Wert 1 hat, Spalte B,C,D sperren
      Const c_SPA As Long = 1->Spalte A
      Const c_spVon As Long = 2->Spalte B
      Const c_spBis As Long = 4->Spalte D
      Const c_SperrKuerzel As String = Zeile gesperrt
      
      Dim zelle As Range, b_locked As Boolean, s_tmp As String
      
      For Each zelle In Target
        If zelle.Column = c_SPA Then
          s_tmp = zelle.Value
          If c_SperrKuerzel = s_tmp Then b_locked = True Else b_locked = False
          If b_locked And (Not Cells(zelle.Row, c_spVon).Locked) Then
            Range(Cells(zelle.Row, c_spVon),  Cells(zelle.Row, c_spBis)).Locked = True
          ElseIf (Not b_locked) And Cells(zelle.Row, c_spVon).Locked Then
            Range(Cells(zelle.Row, c_spVon),  Cells(zelle.Row, c_spBis)).Locked = False
          End If
        End If
      Next
    End Sub
     
  5. Hallo Matjes

    was würde ich nur ohne Dich machen? Auch dieses Script funktioniert super. Ich hoffe dass ich mich einmal bei Dir revanchieren kann.

    Nochmals recht herzlichen Dank

    Gruss zoggeli
     
Die Seite wird geladen...

Frage zu Excel - Ähnliche Themen

Forum Datum
Excel '10 - Frage zu Option "AutoVervollständigen für Zellwerte!" Microsoft Office Suite 16. Juli 2012
Frage Excel 2000 Windows XP Forum 5. Mai 2012
Word und Excel Dokumente fragen nach Codierung Microsoft Office Suite 20. Nov. 2011
Sehr viele Daten in Excel-Datei! Frage! Microsoft Office Suite 11. Sep. 2011
Frage zum Drucken von Excel-Datenblättern Microsoft Office Suite 2. Juni 2010