2016-09-28 4 views
0

Auf Blatt 1 (viva-2) Zeile 11 hat ein Dropdown (Validierung) mit Ja/Nein. Standardmäßig ist der Wert "no" und der Tabellenbereich 11 (Manage-d) des Zellenbereichs A11: D30 sollte deaktiviert/gesperrt sein. Wenn Sie "Ja" auswählen, sollte Benutzer in der Lage sein, Sheet11 (Manage-d) und Zellen aus dem Bereich A11 auszuwählen: D30 sollte entsperrt sein.VBA zum Auswählen eines Blattes basierend auf dem Zellenwert eines anderen Blattes

Ich bin neu in VBA, aber ich gebe mir Mühe zu lernen.

Public Sub Worksheet_SelectionChange(ByVal Target As Range) 


    Dim RNG       As Range 


    If Target.Row = 11 Then 
    If Range("11").Value = "YES" Then 
      Sheets("Manage-d").Select 
      Sheets("Manage-d").Range("A11:D30").Locked = False 
      Sheets("Manage-d").Range("A11:D30").Activate 
     Else 
      Sheets("Manage-d").Range("A11:D30").Locked = True 
    End If 
    End If 
+0

Range ("11") Referenz keine gültige Bereich liegt. –

Antwort

0

Ich benutze die Worksheet_Change anstelle des Worksheet_SelectionChange so dass der Benutzer nicht Ciack hat eine andere Zelle, um das Makro auszulösen.

das Drop-down (Validierung) Unter der Annahme ist in Range("A11"):

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Not Intersect(Target, Range("A11")) Is Nothing Then 
     With Sheets("Manage-d") 

      .Range("A11:D30").Locked = (UCase(Target.Value) = "NO") 

      If UCase(Target.Value) = "YES" Then 
       Application.Goto .Range("A11:D30"), True 
      End If 

     End With 
    End If 

End Sub 

enter image description here

1

Range-Objekt stellt eine einzelne Zelle oder einen Bereich von cells.This Code arbeitet für mich

If Range("A1").Value = "YES" Then '' Range A1 is the first cell 
     Sheets("Manage-d").Select 
     Sheets("Manage-d").Range("A11:D30").Locked = False 
     Sheets("Manage-d").Range("A11:D30").Activate 
    Else 
     Sheets("Manage-d").Range("A11:D30").Locked = True 
End If 
+0

@Thomas Inzina, ich habe 2 Bedenken mit dem Code, den Sie angegeben haben. 1. Es funktioniert wie erwartet, Zellen werden aktiviert/entsperrt, wenn der Dropdown-Wert ja ist. Ich kann die Daten eingeben, aber das Problem ist es nicht die Zelle hervorheben, wenn ich darauf klicke (On Sheet Manage-d) 2. Ist es möglich, eine Aufforderung an den Benutzer zu werfen, um den Dropdown-Wert zu ändern, wenn er versucht Klicken Sie auf gesperrte Zellen, wenn der Wert von Drop-Down "Nein" ist. – Manu

+0

@Thomas Inzina, willst du, dass ich eine andere Frage stelle? wie diese Frage beantwortet wird. – Manu

+0

Ich denke, es macht Sinn, neue Frage zu stellen. Daher habe ich eine andere Frage nach den Richtlinien gestellt. Bitte helfen Sie wenn möglich http://stackoverflow.com/questions/39776578/vba-to-disable-sheet-based-on-cell-value – Manu

Verwandte Themen