Rapatriment lien hypertexte

la lozere

XLDnaute Occasionnel
Bonjour,
Voici le problème:
J'ai un fichier Excel avec 3 zones, en gris la zone invariable, en orange la zone de données rapatriées et en blanc la zone de données saisies
Ainsi dans la zone de données saisies on y trouve des blocs de 6 colonnes. Ainsi, à chaque fois que l'on a une évolution d'un document, on vient remplir un nouveau bloc.
Dans l'exemple, la pièce "1a0 toto" a été reçu une première fois le 01/01/10 avec certaines données et une deuxième fois le 02/02/10 avec d'autres données.
Et la pièce "2i3 test" a été reçu uniquement le 05/02/10 avec certaines données.
Voilà pour la saisie de données.

Ensuite la zone orange contient des cellules allant chercher directement les dernières données reçus de chaque document se trouvant dans la zone de données saisies.
Ainsi, pour le document "1a0 toto", on rapatrie les données du 02/02/10 et pour le document "2i3 test", les données du 05/02/10.

Pour l'instant cela nous suffisait, mais aujourd'hui j'ai un collègue qui me demande de rapatrier en même temps les liens hypertextes qu'il pourrait y avoir dans la zone de données saisies.

Ainsi, dans l'exemple pour le document "1a0 toto", dans la zone de saisie des noms du fichier il a xxxx pour la première date de réception et rrr pour la seconde le tout avec des liens hypertextes. Ainsi, dans la zone de rapatriement, en plus de rapatrier le dernier nom de fichier (rrr), il voudrait pouvoir rapatrier le lien hypertexte correspondant.

Si cela simplifie la chose, on peut se contenter de rapatrier uniquement les liens hypertextes se trouvant dans les colonnes "Nom de fichier".

Et là, je coince. je ne sais pas comment faire. Si quelqu'un à une idée....

Merci.
 

Pièces jointes

  • base.zip
    17.3 KB · Affichages: 27
  • base.zip
    17.3 KB · Affichages: 23
  • base.zip
    17.3 KB · Affichages: 23

Épaf

XLDnaute Occasionnel
Re : Rapatriment lien hypertexte

Salut la Lozère, c'est le dauphiné qui te cause, :D
Quelle est la difficulté que tu rencontres ? Lire la zone de texte ou l'insérer dans une cellule ? Sous quelle forme "simple Texte" ou "Lien hypertexte" ?
Tu dis
A+
 

la lozere

XLDnaute Occasionnel
Re : Rapatriment lien hypertexte

Ce que je souhaite, c'est quand même temps que l'on rapatrie la valeur de la cellule, on re-créer le même lien hypertexte que celui de la cellule rapatrié.

Dans l'exemple, dans la cellule H6, je voudrais en plus de rapatrier la valeur de la cellule S6, y rapatrier le lien hypertexte correspondant. Mais pas sous forme de texte, mais comme un vrai lien hypertexte.

En gros je voudrais que la cellule h6 soit en tous points identiques (sauf mise en forme) à la cellule S6.

Si pas assez clair, n'hésite pas à me le dire.

Merci.

Lozériens d'origine, Isèrois d'adoption :)
 

job75

XLDnaute Barbatruc
Re : Rapatriment lien hypertexte

Bonjour,

Voir le fichier joint.

Fonction macro dans un Module :

Code:
Function HYPER$(cel As Range)
HYPER = cel.Hyperlinks(1).Address
End Function

Formule [Edit : non matricielle] en H6 :

Code:
=SI($G6="-";"";SI(NomFichier="";"";LIEN_HYPERTEXTE(HYPER(NomFichier))))

Nom défini NomFichier (H6 étant sélectionnée) :

Code:
=DECALER(INDIRECT(ADRESSE(MAX((Doc!$I6:$BQ6=Doc!$G6)*LIGNE(Doc!$I6:$BQ6));MAX((Doc!$I6:$BQ6=Doc!$G6)*COLONNE(Doc!$I6:$BQ6))));0;1;1;1)

Comme on le voit, cette solution n'est pas parfaite :

- le lien n'a pas le format traditionnel (bleu souligné)

- la "main" apparaît sur les cellules sans lien...

A+
 

Pièces jointes

  • base(1).zip
    21 KB · Affichages: 28
Dernière édition:

Épaf

XLDnaute Occasionnel
Re : Rapatriment lien hypertexte

Pour le principe
Code:
Sub test()
Dim FL1 As Worksheet, NomFich As String
    NomFich = "D:\xls\Add si tu veux bien.xls"
    Set FL1 = Worksheets("Feuil1")
    FL1.Hyperlinks.Add FL1.Cells(1, 1), NomFich
    
    Set FL1 = NoThing
End Sub
A adapter en prenant le nom du fichier là où il est pour le placer là où tu veux qu'il soit ;)

A+
 

la lozere

XLDnaute Occasionnel
Re : Rapatriment lien hypertexte

Alors,
J'ai testé ton fichier job75, il marche bien mais lorsque je veux mettre un "nom_convivial" à la place de tout le texte du lien, cela ne marche plus....
Ceci en utilisant la formule de lien hypertexte sous al forme suivante:
Code:
=lien_hypertexte(emplacement_lien;nom_conviviale)

Je te renvois ta base avec en H11 ta formule de base qui marche (texte long) et en H6 ta formule modifiée (texte court) qui ne marche plus.

Cela dis, ça ne marche plus uniquement quand j'utilise pour nom_convivial, "NomFichier", alors qu'avec un texte quelconque, ça marche.

D'où cela peut-il venir?

Maintenant je vais tester la solution de Epaf.
Je vous tiens au courant.
 

Pièces jointes

  • base(2).zip
    21 KB · Affichages: 25
  • base(2).zip
    21 KB · Affichages: 26
  • base(2).zip
    21 KB · Affichages: 26
Dernière édition:

job75

XLDnaute Barbatruc
Re : Rapatriment lien hypertexte

Re,

J'avais bien vu que ça ne marchait pas avec le nom_convivial, sinon je l'aurais mis...

C'est comme ça, la fonction LIEN_HYPERTEXTE fonctionne comme ça.

Si l'on veut la perfection, il faut une macro pour tout entrer en colonne H : la valeur et le lien hypertexte.

Je vois ça si j'ai le temps.

A+
 

job75

XLDnaute Barbatruc
Re : Rapatriment lien hypertexte

Re,

Donc maintenant une solution entièrement par macro pour renseigner la colonne H :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("H6:H65536")) Is Nothing _
  And Application.CountIf(Intersect(Target.EntireColumn, Rows(5)), "Nom de fichier") = 0 Then Exit Sub
Dim i As Long, j As Integer
Application.ScreenUpdating = False
Application.EnableEvents = False
Range("H6:H65536").ClearContents
For i = 6 To Range("D65536").End(xlUp).Row
  For j = Cells(i, 256).End(xlToLeft).Column To 9 Step -1
    If Cells(5, j) = "Nom de fichier" And Cells(i, j) <> "" Then Exit For
  Next
  If j > 8 Then Me.Hyperlinks.Add Anchor:=Cells(i, 8), _
    Address:=Cells(i, j).Hyperlinks(1).Address, TextToDisplay:=Cells(i, j).Text
Next
Application.EnableEvents = True
End Sub

J'ai fait en sorte qu'on ne puisse pas effacer les liens hypertextes en colonne H (voir le 1er test).

A+
 

Pièces jointes

  • base(2).zip
    23.4 KB · Affichages: 29
  • base(2).zip
    23.4 KB · Affichages: 23
  • base(2).zip
    23.4 KB · Affichages: 29

la lozere

XLDnaute Occasionnel
Re : Rapatriment lien hypertexte

Alors,
En ce qui concerne la solution par macro, chez moi, cela bug lorsque je saisie un nom de fichier sans lien hypertexte. Et si je change le lien hypertexte ou le nom du fichier, il faut ré-ouvrir le fichier pour que la modif soit prise en compte.

Je m'en suis sortie avec la solution par formule. Parfait.
Concernant, le problème du nom convivial, j'ai bidouillé un truc dans des colonnes masquées et du coup ça marche. Et pour avoir la mise en forme traditionnelle des liens, je gère ça par mise en forme conditionnel.
Et pour la main.... tampis.

Merci à vous deux.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 286
Messages
2 086 790
Membres
103 392
dernier inscrit
doc_banane