Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro lien hypertexte

  • Initiateur de la discussion Initiateur de la discussion fabienne59
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fabienne59

Guest
Bonjour,

Je n'y connais rien du tout en macro, mais j'aimerai m'y mettre car à ce que j'ai compris ça peut servir à recommencer une action automatiquement au lieu de le refaire tout le temps manuellement.

Je vous explique donc mon problème :
J'ai une feuille avec les achats, une avec les ventes et une avec les contacts, et pour chaque transaction (achat ou vente) il est écrit le contact. Et j'aimerai créer un lien hypertexte qui me permettrai de cliquer sur le contact dans les feuilles achats ou ventes et que ce lien me ramène directement au bon contact contenu dans la feuilles contacts. (sachant que les contacts de la feuille contacts vont changer de cellule puisque je vais en rajouter au fur et à mesure et qu'ils sont par ordre alphabétique)
J'ai réussit à créer ce lien hypertexte, mais je dois le faire pour tous les achats et toutes les ventes et je me demande s'il n'est pas possible que ça se fasse automatiquement.
Je rappelle que je n'est aucune notions dans le domaine de macro

Merci d'avances pour votre aide 🙂
 
Re : Macro lien hypertexte

Voilà, j'ai simplifier le fichier et j'ai mis uniquement des exemples car ceux sont des données plutôt confidentielles.

Pour mettre les liens hypertextes je modifie le noms des cellules, mais dès que les cellules changent de place (si je veux mettre les noms des clients par ordre alphabétique par exemple) les liens ne suivent plus les bonnes cellules.


Merci beaucoup pour votre aide.




OUPS Désolée, comment on joint un fichier excel, le format 2007 ne s'envoie pas, et en 97-03 le fichier est trop gros...
 
Dernière modification par un modérateur:
Re : Macro lien hypertexte

Bonjour,
Joins ton fichier exemple au format 97-03, mais compresse le auparavant
Dans l'explorateur windows click droit sur ton fichier, puis envoyer vers --> dossier compressé
A+
kjin
 
Re : Macro lien hypertexte

Bonjour
J'ai (enfin) réussi à joindre le fichier, et je n'ai toujours pas de réponse à mon problème. Alors si quelqu'un peut m'aider...
Merci beaucoup d'avance !
 

Pièces jointes

Re : Macro lien hypertexte

Bonjour,
Merci beaucoup !! En effet, ça marche bien sur le fichier que vous m'avez envoyé 😀
Par contre, encore une petite question... comment fait-on pour l'intégrer dans un autre fichier..?
 
Re : Macro lien hypertexte

Salut à tous,Qqs commentaires sur le code de Kjin

Sous VBA [Alt+F11]
Double Cliquer sur Feuil1(Recettes)

Le code apparait dans l'environnement VBE
dans la procédure Worksheet_BeforeDoubleClick

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    '	Si sur la feuile Recettes la cellule ou l'on Double Clique
    '   à sa Rangée supérieure à 11 et que sa Colonne = 4 et que cette cellule n'est pas Vide
    If Target.Row > 11 And Target.Column = 4 And Target <> "" Then
        Cancel = True
        '   Trouver la cellule dans la Colonne 1 de la feuille Contacts
        '   contenant la même valeur que la cellule de la feuille Recttes
        Set c = Sheets("Contacts").Columns(1).Find(Target)
        '   Si cette valeur existe alors la sélectionner
        If Not c Is Nothing Then
            Sheets("Contacts").Activate
            c.Select
        End If
    End If
End Sub

Ce code est à copier ( en l'adaptant ) dans le module Worksheet de la feuille du fichier
auquel tu veux l'appliquer
Code:
	.....
	' Zone prise en compte dans le double clic
	If Target.Row > 11 And Target.Column = 4 And Target <> "" Then ....
	.....
	' Nom et colonne de la feuille dans laquelle on recherche
	' la même valeur que celle sur laquelle on a double cliqué
	Set c = Sheets("Contacts").Columns(1).Find(Target)
	.....

En espérant avoir été suffisamment didactique
 
Dernière édition:
Re : Macro lien hypertexte

Zoup Zoup !
Encore une petite question.. Sheets c'est pour "sélectionner" une feuille dans le classeur, maintenant moi je voudrais dire d'aller dans la feuilles "contacts" toujours mais qui se trouve maintenant dans un classeur différent...
J'ai vu sur internet qu'il y avait des "workbooks".. mais ça ne marche pas...
Merci d'avance pour votre aide =)
 
Re : Macro lien hypertexte

Bonjour, ...en gaulois
Là je ne sais pas...

Même principe, sur doubleclick, mais comme tu n'indiques nul part où est situé le classeur qui contient la feuille "Contacts" ni comment il se nomme 🙂rolleyes🙂, on passe par une boite de dialogue, tu adapteras le répertoire d'ouverture par défaut.
J'ai ajouté les messages et contrôles d'erreurs
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 11 And Target.Column = 4 And Target <> "" Then
Cancel = True
ChDir (ActiveWorkbook.Path) 'répertoire du classeur actif - à adapter
Fichier = Application.GetOpenFilename("Classeurs Excel(*.xls), *.xls")
    If Fichier <> False Then
    Workbooks.Open Fichier
    On Error GoTo ErrFeuille 'si la feuille contacts n'existe pas va à la ligne ErreurFeuille (en bas)
    Set c = Sheets("Contacts").Columns(1).Find(Target)
        If Not c Is Nothing Then
            Sheets("Contacts").Activate
            c.Select
        Else 'si le contact n'existe pas
            MsgBox "Contact inexistant !", vbInformation 'message
            ActiveWorkbook.Close False 'fermeture du classeur - supprime cette ligne pour maintenir le classeur ouvert
        End If
    End If
End If

Exit Sub

ErrFeuille: '
        MsgBox "Feuille Contacts intouvable dans ce classeur !", vbInformation
        ActiveWorkbook.Close False

End Sub
A+
kjin
 
Re : Macro lien hypertexte

Bonjour

(mais zoup zoup c'était gentil, c'était un bonjour gai 🙂 )
Bref, il fallait bien que j'adapte cette ligne là :
Fichier = Application.GetOpenFilename("Classeurs Excel(*.xls), *.xls")
?
En mettant, à la place de "classeurs excel", le nom du fichier dans lequel il y a la feuille "contacts"?
Parce que c'est ce que j'ai fait, mais quand je double-clique sur le contact maintenant excel m'ouvre une fenêtre afin que je choisisse le fichier que je veux ouvrir...
Ou alors j'ai mal compris ce qu'il fallait remplacer..?

Merci d'avance (encore)
 
Re : Macro lien hypertexte

Bonjour,

Je repose ma question en plus simple peut être
En fait le code que tu m'as donné kjin ouvre une boite de dialogue, et moi je veux que ça aille directement sur le bon contact lorsque je double clique. (Sachant que le classeur s'appelle "Doc_principal.xlsm" et la feuille "contacts")

Voilà comment j'ai modifié le code pour l'instant :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 11 And Target.Column = 5 And Target <> "" Then
Cancel = True
ChDir (ActiveWorkbook.Path) 'répertoire du classeur actif - à adapter
Fichier = Application.GetOpenFilename("Doc_principal xlsm, *.xlsm")
    If Fichier <> False Then
    Workbooks.Open Fichier
    On Error GoTo ErrFeuille 'si la feuille contacts n'existe pas va à la ligne ErreurFeuille (en bas)
    Set C = Sheets("Contacts").Columns(2).Find(Target)
        If Not C Is Nothing Then
            Sheets("Contacts").Activate
            C.Select
        Else 'si le contact n'existe pas
            MsgBox "Contact inexistant !", vbInformation 'message
            ActiveWorkbook.Close False 'fermeture du classeur - supprimer cette ligne pour maintenir le classeur ouvert
        End If
    End If
End If

Exit Sub

ErrFeuille: '
        MsgBox "Feuille Contacts intouvable dans ce classeur !", vbInformation
        ActiveWorkbook.Close False

End Sub

Je sais qu'il faut que je modifie la ligne : ChDir (ActiveWorkbook.Path)
Mais je ne sais pas comment...


Merci d'avance
 
Re : Macro lien hypertexte

Bonjour,
Adapte le chemin comme ceci en mettant les bons paramètres
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 11 And Target.Column = 5 And Target <> "" Then
Cancel = True
Fichier = "C:\Fabienne\Doc_principal.xlsm" '<-- à adapter
    If Dir(Fichier) <> "" Then
    Workbooks.Open Fichier
    On Error GoTo ErrFeuille 'si la feuille contacts n'existe pas va à la ligne ErreurFeuille (en bas)
    Set C = Sheets("Contacts").Columns(2).Find(Target)
        If Not C Is Nothing Then
            Sheets("Contacts").Activate
            C.Select
        Else 'si le contact n'existe pas
            MsgBox "Contact inexistant !", vbInformation 'message
            ActiveWorkbook.Close False 'fermeture du classeur - supprimer cette ligne pour maintenir le classeur ouvert
        End If
    End If
End If

Exit Sub

ErrFeuille: '
        MsgBox "Feuille Contacts intouvable dans ce classeur !", vbInformation
        ActiveWorkbook.Close False

End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2019 B
Réponses
10
Affichages
659
Réponses
1
Affichages
171
Réponses
1
Affichages
501
D
  • Question Question
Réponses
5
Affichages
250
Didierpasdoué
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…