après moult essais et recherches sur internet, et sur le forum, je n'ai toujours pas résolu mon problème qui est le suivant :
Mon classeur contient 27 feuilles correspondant à des chantiers en cours. Une macro me permet de répertorier tous les noms de chantier en PageAccueil (feuille 1 de mon classeur).
Je souhaite faire en sorte qu'en double cliquant sur le nom d'un chantier, la feuille concernée s'affiche.
Les noms de chantier sont répertoriés dans la colonne A de la ligne 2 à 28 du coup.
Mon dernier code testé est le suivant :
Private Sub Worksheets_OnDoubleClick(ByVal Target As Range)
If ActiveCells.Column = 1 Then
If ActiveCells.Row > 1 Then
Worksheets(ActiveCells.Row + 1).Activate
End If
End If
End Sub
Problème : Quand je double clique sur mes cellules, aucune réaction... Même pas un message d'erreur.
Re : Double clic sur une cellule -> feuille du même nom
Bonjour,
essaye ceci, à placer dans le module de la feuille concernée => click droit sur l'onglet => visualiser le code et tu colles :
Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Cancel = True
Worksheets(Target.Row + 1).Activate
End If
End Sub
Re : Double clic sur une cellule -> feuille du même nom
Bonjour Hellowa, Pierrot, bonjour le forum,
J'aurais plutôt vu les choses comme ça :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Application.Intersect(Range("A2:A28"), Target) Is Nothing Then Exit Sub
Cancel = True
Sheets(Target.Value).Activate
End Sub
Re : Double clic sur une cellule -> feuille du même nom
Bonjour Robert,
je viens de recevoir ton code, il fonctionne, je dois juste tester si je peux appliquer ça à toute la colonne (dans le cas où j'ajouterais des chantiers.)
Merci pour vos réponses!!!
PS : j'ai remplacé "A2:A28" par "A:A", et ça fonctionne toujours à merveille. Merci de m'avoir enlevé cette épine du pied, car j'ai encore des tas de problèmes à résoudre pour rendre ce fichier simple d'utilisation.
Re : Double clic sur une cellule -> feuille du même nom
Bonjour Hallowa, Pierrot, bonjour le forum,
Oui c'est bien ce qu'il me semblait... On ne peut pas comme ça inventer des procédures... Pour être sûr de ton coup, quand tu es dans VBE (l'éditeur Visual basic), tu sélectionnes un objet dans le champ Objet [(Général) par défaut] et dans le champ Procédure tu as la listes des procédures [(Déclarations) par defaut] possibles appliquées à l'objet. Tu aurais vu que la procédure événementielle pour le double-clic est : Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean). En faisant comme ça tu diminues le risque d'erreur...
Sinon ta méthode avec Range("A:A") va planter si tu double-cliques dans une cellule vide...
Re : Double clic sur une cellule -> feuille du même nom
Bonjour Jackfly,
merci de ta réponse, cependant ce code fonctionne à l'inverse de ce que je veux, dans la mesure où ce sont les noms de mes onglets qui commandent le remplissage de la feuille PageAccueil et pas l'inverse.
En effet je fais comme ça car j'ai une macro qui me permet de créer une nouvelle feuille selon un modèle, et le nom est automatiquement écrit sur l'onglet, et par là même dans la feuille PageAccueil.
Je ne sais pas si je me suis bien exprimée.
En tous cas merci Robert, ton code fonctionne très bien. Je l'ai même repris pour d'autres feuilles.
Re : Double clic sur une cellule -> feuille du même nom
Bonjour Hellowa,
Je joins un fichier "expliquant" ce que j'ai voulu faire.
Les onglets ne sont pas créés par mon code, je ne fais que reprendre leurs noms dans la première feuille.
Si tu ajoutes un onglet (ici manuellement), et que tu cliques sur le bouton "actualiser", il s'ajoute à la liste.
Un simple clic sur l'un deux et l'onglet correspondant s'ouvre. -> c'est pas ça que tu cherchais ?
Le code de Robert est très bien, de fait... Je le garde dans mes archives pour plus tard
Ce qui est chouette, c'est de voir la multitudes de possibilités pour arriver à ses fins et j'en apprends tous les jours. Merci à tous les contributeurs.