Bonjour à tous,
Voici déjà quelques fois que je suis confronté à la nécessité de développer des tableaux contenant des boutons qui effectuent certaines actions répétitives. A chaque fois, il m'était nécessaire de dupliquer la macro pour chaque bouton, travail que je trouve non-productif et incorrect par rapport à une logique de développement.
Pour me faire comprendre, voici un cas concret:
Je dispose d'un tableau de 200 lignes. Chaque colonne est une information quelconque et l'une d'entre elles contient un chemin d'accès vers un dossier ou fichier. La colonne précédente contient une image (un logo, un bouton, ...) qui, lorsque l'on clique dessus permet d'agir comme un lien hypertexte : une fenêtre s'ouvre affichant le contenu du chemin renseigné.
Je pourrais utiliser des liens hypertextes normaux, mais par soucis de facilité pour le reste de l'équipe au bureau, je voudrais qu'ils puissent simplement copier/coller le chemin d'accès du dossier dans une cellule et que le reste se fasse tout seul.
Voici donc ma façon de procéder:
Dans une cellule (disons G14), se trouve un chemin d'accès. Ex : Commun\Echanges\Dossier_42
Dans la cellule précédente (F14) se trouve un bouton/une image avec la macro suivante :
Et une fonction générale qui est la suivante :
J'aurais pu copier cette fonction pour chaque bouton mais j'ai préféré la rendre indépendante au cas où je dois la modifier un jour.
Ma question est (enfin) la suivante ; il y'a-t-il un moyen d'éviter de dupliquer le premier code (CallPath) pour chacun des boutons ?
N'y a-t-il pas moyen, par exemple, de détecter la ligne sur lequel se trouve le bouton et de l'envoyer comme argument ?
Ah oui... j'ai la facheuse manie de pondre des romans quand je dois m'expliquer. Désolé 😱
D'avance, merci à quiconque se penchera sur la question.
Excellente journée,
Bayn
Voici déjà quelques fois que je suis confronté à la nécessité de développer des tableaux contenant des boutons qui effectuent certaines actions répétitives. A chaque fois, il m'était nécessaire de dupliquer la macro pour chaque bouton, travail que je trouve non-productif et incorrect par rapport à une logique de développement.
Pour me faire comprendre, voici un cas concret:
Je dispose d'un tableau de 200 lignes. Chaque colonne est une information quelconque et l'une d'entre elles contient un chemin d'accès vers un dossier ou fichier. La colonne précédente contient une image (un logo, un bouton, ...) qui, lorsque l'on clique dessus permet d'agir comme un lien hypertexte : une fenêtre s'ouvre affichant le contenu du chemin renseigné.
Je pourrais utiliser des liens hypertextes normaux, mais par soucis de facilité pour le reste de l'équipe au bureau, je voudrais qu'ils puissent simplement copier/coller le chemin d'accès du dossier dans une cellule et que le reste se fasse tout seul.
Voici donc ma façon de procéder:
Dans une cellule (disons G14), se trouve un chemin d'accès. Ex : Commun\Echanges\Dossier_42
Dans la cellule précédente (F14) se trouve un bouton/une image avec la macro suivante :
Code:
Sub CallPath_10()
GoToPath (14)
End Sub
Et une fonction générale qui est la suivante :
Code:
Function GoToPath(Line As Integer)
ActiveWorkbook.FollowHyperlink Address:=Sheets("Récapitulatif").Range("K" & Line), NewWindow:=True
End Function
J'aurais pu copier cette fonction pour chaque bouton mais j'ai préféré la rendre indépendante au cas où je dois la modifier un jour.
Ma question est (enfin) la suivante ; il y'a-t-il un moyen d'éviter de dupliquer le premier code (CallPath) pour chacun des boutons ?
N'y a-t-il pas moyen, par exemple, de détecter la ligne sur lequel se trouve le bouton et de l'envoyer comme argument ?
Ah oui... j'ai la facheuse manie de pondre des romans quand je dois m'expliquer. Désolé 😱
D'avance, merci à quiconque se penchera sur la question.
Excellente journée,
Bayn
Dernière édition: