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

Microsoft 365 Lier cellule et garder le lien après changement de ligne

Deli.Robin

XLDnaute Nouveau
Bonjour à tous.tes !

J'espère que vous pourrez m'aider.

Afin de créer des fiches de marges, j'utilise un fichier source avec tous mes prix. Ce fichier source est amené à être réorganisé (par ordre alphabétique des produits par exemple).
Cependant, lorsque je modifie l'ordre de mes lignes, mes cases liées dans mon doc de marge ne sont plus les bonnes. Le lien est établi sur un numéro de ligne.
Comment faire pour lier la cellule malgré une réorganisation du fichier source ?

Merci beaucoup !
 

Phil69970

XLDnaute Barbatruc
Bonjour @Deli.Robin et bienvenu sur XLD

Sans fichier je te propose cette macro

Je suis parti du principe que tes liens sont dans la colonne A et tu veux les déplacer dans la colonne B

VB:
Sub Deplace_Lien()
Dim DerLig&
DerLig = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To DerLig                                                 'si tu as des en tetes sur la ligne 1 mettre 2 to DerLig
    With Range("A" & i).Hyperlinks(1)                               'Les liens sont en colonnes A à adapter si besoin
        Range("B" & i).Hyperlinks.Add Range("B" & i), .Address      'On les déplace dans la colonne 2 à adapter si besoin
    End With
Next i
End Sub

Code à exécuter une seule fois bien sur

Merci de ton retour

@Phil69970
 

Phil69970

XLDnaute Barbatruc
Re

Et si tu veux supprimer les anciens liens de la colonne A

VB:
Sub Deplace_Lien()
Dim DerLig&
DerLig = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To DerLig                                                 'si tu as des en tetes sur la ligne 1 mettre 2 to DerLig
On Error Resume Next
    With Range("A" & i).Hyperlinks(1)                               'Les liens sont en colonnes A à adapter si besoin
        Range("B" & i).Hyperlinks.Add Range("B" & i), .Address      'On les déplace dans la colonne 2 à adapter si besoin
        Range("A" & i).Hyperlinks.Delete                            'Supprimes les anciens liens de la colonne A
    End With
Next i
End Sub

J'ai rajouté une gestion d’erreur au cas il y a un lien manquant

Merci de ton retour

@Phil69970
 

Deli.Robin

XLDnaute Nouveau
Hello @Phil69970

Merci pour ton retour et merci pour l'accueil !!
Je te joins une capture d'écran de ma situation que j'ai peut-être mal expliquée.
Le doc de droite est mon fichier source.
Comme tu peux le voir ma cellule D14 sur le fichier de gauche est liée à la cellule F95 du fichier de droite.

Pour des questions d'organisation et de fonctionnalité, j'ai besoin de réorganiser le fichier de droite par ordre alphabétique de la colonne D.
Lorsque je procède à cette réorganisation, le lien de ma cellule D14 reste F95 alors que j'aimerais qu'il suive le mouvement de la ligne. Je sais pas si c'est très clair comme explication..!
 

Pièces jointes

  • Excel pb.jpg
    639.3 KB · Affichages: 14

Phil69970

XLDnaute Barbatruc
Re

Travailler avec des images sous excel c'est pas mon truc

Voir la charte §2.5

Essaye quelque chose comme ceci en D14 non testé

=LIEN_HYPERTEXTE('[FICHE DE PRIX DELI.xlsx]PRIX'!$F95;[PRIX]Feuil1!$F95)
Feuil1 est à adapter en fonction du nom de ta feuille

Après tu devrais pouvoir trier ta feuille prix comme tu veux le lien devrait suivre
*Je pense que tes 2 fichiers doivent être ouvert avant le tri

@Phil69970
 

Deli.Robin

XLDnaute Nouveau
Je ne cherche pas à avoir un lien hypertexte, car le jour où, pour prendre ce cas en exemple, il ya une fluctuation du prix, mon but est d'utiliser le fichier source pour que tous les fichiers liés soient impacté. J'ai besoin de garder un format de cellule 'comptable' on va dire.

Le problème est que sur la base du fichier que tu as vu, les produits ne sont pas référencés dans l'ordre alphabétique mais ils ont déjà tous des liaisons sur différents fichiers de marges.
Prenons l'exemple du camembert. Il est dans mon fichier source en F95 et toutes mes fichiers liés l'identifient comme tel. Si je réorganise mon ficher source par ordre alphabétique, la ligne du produit camembert va être différente. Imaginons qu'il se retrouve en F76 suite à la réorganisation. Toutes mes fiches de marges qui ont comme référence F95 pour le prix de ce produit garderons le prix présent en F95 après réorganisation. Cependant le produit correspondant à F95 ne sera plus le camembert.
Ce que je cherche à faire, c'est faire comprendre aux fichiers liés que le prix du camembert après réorganisation n'est plus F95 mais F76 ?
 

Phil69970

XLDnaute Barbatruc
Re

Avec uniquement le morceau de fichier que tu as envoyé

En D14 :
=RECHERCHEV(A14;[SIMUPRIXFROMAGE.xlsx]Feuil1!$C$1:$E$20;3;FAUX)

Et tu peux trier tout ce que tu veux cela fonctionne toujours seul impératif
le nom en A14 doit être absolument identique au nom en C18 dans l'exemple





Ps: Le prix est lui aussi fictif et n'est pas la réalité

@Phil69970
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…