Autres Changement de feuille avec Validation de données

Caninge

XLDnaute Impliqué
Bonsoir à tous,

j'ai beau chercher sur le forum. Rien à faire et pourtant je suis persuadé que cette question a été posé.

J'arrête de me torturer la tête lol

Voici mon problème : Comment changer de feuille en utilisant une validation de données.

Bien sympa me dépanner. j'ai mis un fichier
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonsoir Caninge,
je suis persuadé que cette question a été posé.
Oui, de nombreuses fois :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then On Error Resume Next: Application.Goto Sheets(CStr(Target)).[A1]
End Sub
A+
 

Caninge

XLDnaute Impliqué
Tiens Bonjour Job75,

on communique souvent ! J'ai copié la validation de données dans chaque feuille pour se revenir ou se diriger vers les autres feuilles
J'ai copié le code dans chaque page. Je ne sais pas si cela est judicieux et approprié.
Merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,
J'ai copié la validation de données dans chaque feuille pour se revenir ou se diriger vers les autres feuilles
J'ai copié le code dans chaque page. Je ne sais pas si cela est judicieux et approprié.
On a supprimé toutes les procédures des feuilles A, B et C.
On a écrit une seule procédure dans le module de ThisWorkbook
On a rajouté une feuille E à partir de laquelle on ne change pas de feuille même si E3 est modifiée (pour l'exemple)

Procédure de ThisWorkbook:
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' procédure évènementielle quand modif sur une des feuilles du classeur
' Sh est la feuille où s'est produit la modification
' Target est l'ensemble des cellules qui ont changé

'On vérifie que seule une cellule E3 est a été modifiée sinon on quitte la procédure
  If Target.Address <> "$E$3" Then Exit Sub

  ' on ne change de feuille que depuis les feuilles A, B, C mais pas depuis la feuille E
  Select Case Sh.Name
    Case "A", "B", "C"
      On Error Resume Next
      Application.Goto Sheets(CStr(Target)).[A1]
  End Select
End Sub
 

Fichiers joints

Dernière édition:

Caninge

XLDnaute Impliqué
Bonjour Job75, mapomme,

j'ai modifié le code. j'ai copié - coller la validation de données dans toutes les autres feuilles. Dans la feuille "référence" j'utilise la cellule $L$2 et non la cellule $G$3 comment modifier s'il vous plait. merci

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' procédure évènementielle quand modif sur une des feuilles du classeur
' Sh est la feuille où s'est produit la modification
' Target est l'ensemble des cellules qui ont changé

'On vérifie que seule une cellule G3 est a été modifiée sinon on quitte la procédure
If Target.Address <> "$G$3" Then Exit Sub

' on ne change de feuille que depuis les feuilles Jeudi Samedi Dimanche Lundi Références Planning
Select Case Sh.Name
Case "Jeudi", "Vendredi", "Samedi", "Dimanche", "Lundi", "références", "Planning"
On Error Resume Next
Application.Goto Sheets(CStr(Target)).[A1]
End Select

End Sub
 

job75

XLDnaute Barbatruc
Bonjour Caninge, riton00, mapomme,
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If IsNumeric(Application.Match(Sh.Name, Array("Jeudi", "Vendredi", "Samedi", "Dimanche", "Lundi", "références", "Planning"))) _
    And Target.Address = IIf(LCase(Sh.Name) = "références", "$L$2", "$G$3") Then _
        On Error Resume Next: Application.Goto Sheets(CStr(Target)).[A1]
End Sub
A+
 

job75

XLDnaute Barbatruc
Notez que si l'on ne passe pas son temps à écrire les noms des feuilles n'importe où il suffit d'utiliser :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.Goto Sheets(CStr(Target)).[A1]
End Sub
 

Caninge

XLDnaute Impliqué
Bonjour Job75, mapomme et riton00

j'ai adopté le code à mon fichier de base. C'est OK. je continue mon programme. Ce n'est pas rien de s'occuper des autres. Je suis trésorier
dans 2 associations. Enfin vous aussi vous savez ce que c'est le bénévolat.

Merci et à bientôt

CANINGE
 

Discussions similaires


Haut Bas