Microsoft 365 Macro qui crée un lien hypertexte + se déclenche OnClick

chantalc33

XLDnaute Nouveau
Bonjour à tous!

J'ai une liste de client avec laquelle j'aimerais :
  1. Que, lorsque j'ajoute manuellement un client en remplissant les infos dans la feuille LISTE (Par exemple en A5 à C5 dans mon fichier ci-joint), un lien hypertexte soit automatiquement créer en D5, lien qui pointerait vers la feuille DÉTAILS et qui copierait, lorsqu'on cliquerait sur ce lien, le code client en A5 de la feuille LISTE dans la cellule B2 de la feuille DÉTAILS;
  2. Que les liens dans la colonne D se rafraichissent dès qu'il y a un changement sur la feuille LISTE dans l'une ou l'autre des colonnes A à C afin que je puisse modifier les clients déjà présents et que le lien soit toujours up-to-date si je change le code d'un client existant, par exemple;
  3. Et finalement, je veux pouvoir ajouter autant de client que je le souhaite.
Ci-joint, un exemple de ce que j'essais de faire, avec le client SNOJ4567.

L'un d'entre vous a sûrement une solution pour moi, parce que vous êtes des AS !! ;)

Merci à l'avance!!

Chantal
 

Pièces jointes

  • Classeur1.xlsx
    11.1 KB · Affichages: 5
Solution
Bonjour à toutes & à tous, bonjour @chantalc33

Voilà, avec l'événement SelectionChange de la feuille SEARCH lorsque l'on sélectionne un Code Client.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     With Target
          If .Count = 1 And .Column = 4 And .Row >= 5 And .Cells(1).Value <> "" Then
               Sh_Details.[C2].Value = Target.Value
               Application.Goto Sh_Details.[C2]
          End If
     End With
    
End Sub

(Un tableau structuré pourrait quand même très bien convenir à ta feuille SEARCH mais ...)

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir à toutes & à tous, bonsoir @chantalc33
En transformant ta liste de client en tableau structuré ("tb_Clients") avec la fonction LIEN_HYPERTEXTE qui envoie sur la cellule nommée "Détail_CodeClient", 2 formules RECHERCHEV pour renvoyer les autres valeurs et l'événement Worksheet_SelectionChange de la feuille "Liste" pour mettre à jour le code client dans la feuille Détails :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

     If Not Intersect(Target, Me.[tb_Clients[Voir fiche détaillée]]) Is Nothing Then
          Sh_Détails.[Détail_CodeClient].Value = Intersect(Target.EntireRow, Me.[tb_Clients[Code client]]).Value
     End If
    
End Sub
voir pièce jointe
Nota : le tableau structuré s'étend automatiquement lorsque tu saisis un nouveau code client en fin de liste.
 

Pièces jointes

  • Classeur1 AtTheOne.xlsm
    20 KB · Affichages: 6

chantalc33

XLDnaute Nouveau
Bonsoir à toutes & à tous, bonsoir @chantalc33
En transformant ta liste de client en tableau structuré ("tb_Clients") avec la fonction LIEN_HYPERTEXTE qui envoie sur la cellule nommée "Détail_CodeClient", 2 formules RECHERCHEV pour renvoyer les autres valeurs et l'événement Worksheet_SelectionChange de la feuille "Liste" pour mettre à jour le code client dans la feuille Détails :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

     If Not Intersect(Target, Me.[tb_Clients[Voir fiche détaillée]]) Is Nothing Then
          Sh_Détails.[Détail_CodeClient].Value = Intersect(Target.EntireRow, Me.[tb_Clients[Code client]]).Value
     End If
   
End Sub
voir pièce jointe
Nota : le tableau structuré s'étend automatiquement lorsque tu saisis un nouveau code client en fin de liste.
Merci pour la suggestion! Est-ce qu'il n'y aurait pas une façon de le faire sans que ce soit avec un tableau structuré? Dans la feuille DÉTAIL, je n'ai besoin que du code client car de là, je vais programmer autre chose pour aller chercher des infos ailleurs dans mon vrai fichier, à partir du code client. Je te joins le fichier excel réel sur lequel je travail. J'aurais certainement dû le mettre dès le début, malheureusement je n'y avais pas accès quand j'ai fais mon message ce matin et j'ai voulu faire un exemple rapide...

Donc, dans la feuille SEARCH, les gens tapent une recherche et les résultats s'affichent à partir de la base de données contenu dans la feuille SDC.
De là, je voudrais que le lien Hypertext qui se crée dans la colonne G de la feuille SEARCH, pointe vers la feuille DÉTAILS et que le code client lié se copie automatiquement dans la cellule C6. De la, je vais faire des RECHERCHEV pour aller chercher d'autres infos qui sont dans un autre fichier Excel.

Là où je bloque, c'est vraiment
1) La création du lien Hypertext de façon automatique qui pointerait vers la feuille DÉTAIL. J'arrive a créer un lien hypertext qui pointe vers un fichier externe, mais pas vers la feuille DÉTAIL.
2) La copie automatique du code client à partir du quel on clique sur le lien Hypertexte, dans la feuille DÉTAIL.

J'espère que ce sera plus clair... Encore désolée.

Merci beaucoup!! :)
 

Pièces jointes

  • 1A - LISTE DES SYNDICATS.xlsm
    69.2 KB · Affichages: 4

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @chantalc33

Voilà, avec l'événement SelectionChange de la feuille SEARCH lorsque l'on sélectionne un Code Client.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     With Target
          If .Count = 1 And .Column = 4 And .Row >= 5 And .Cells(1).Value <> "" Then
               Sh_Details.[C2].Value = Target.Value
               Application.Goto Sh_Details.[C2]
          End If
     End With
    
End Sub

(Un tableau structuré pourrait quand même très bien convenir à ta feuille SEARCH mais ...)
 

Pièces jointes

  • 1A - LISTE DES SYNDICATS AtTheOne.xlsm
    70.2 KB · Affichages: 11

Discussions similaires