La "Convalida" vedo che l'hai impostata in C2 per una sola classe di servizi; supponiamo che le altre due vengano impostate in C3-C4.
Userai poi una macro sull'evento WorksheetChange per attivare il foglio target. Il codice potrebbe essere:
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myArea As String
'
myArea = "C2:C4" '<<< Le celle con la convalida
'
If Not Application.Intersect(Target, Range(myArea)) Is Nothing Then
If Target.Count = 1 Then
On Error Resume Next: Application.EnableEvents = False
Sheets(Target.Value).Select
On Error GoTo 0: Application.EnableEvents = True
End If
End If
End Sub
Va messo nel "Modulo di Classe del foglio HOME"; vedi
viewtopic.php?f=26&t=103893&p=647675#p647675Richiede che i valori inseriti nelle celle con Convalida siano esattamente uguali ai nomi dei fogli.
Una alternativa piu' flessibile potrebbe seguire invece questo schema:
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myArea As String
'
myArea = "C2:C4" '<<< Le celle con la convalida
'
If Not Application.Intersect(Target, Range(myArea)) Is Nothing Then
If Target.Count = 1 Then
On Error Resume Next: Application.EnableEvents = False
If Target.Value = "Scelta1" Then '<<< Il valore in Convalida
Sheets("PrimoFoglioScelto").Select '<<< Il foglio da attivare
ElseIf Target.Value = "Scelta2" Then
Sheets("SecondoFoglioScelto").Select
ElseIf Target.Value = "Scelta3" Then
Sheets("TerzoFoglioScelto").Select
' altre ElseIf per ognuna delle altre scelte
End If
Sheets(Target.Value).Select
On Error GoTo 0: Application.EnableEvents = True
End If
End If
End Sub
Il vantaggio e' che c'e' piu' flessibilita' nella scelta dei fogli da attivare, ma la macro andra' aggiornata man mano che modifichi le convalide. Ved tu...
Se invece preferisci non usare le macro allora vedi il link suggerito da Dylan (messaggio precedente)
Ciao