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

Créer un hyperlien (Résolu)

T77XDD

XLDnaute Occasionnel
Bonjour,
je cherche à rajouter l'hyperlien envoyant au fichier qui viens d'être créé dans cette macro
Code:
Sub Hyper()

Dim Bat$, App$, Loc$, Ent$, DPnum$, NomFichierPDF As String
ActiveCell.CurrentRegion.Select
DPnum = Sheets("Récap DP").Range("$x$276")
Loc = Sheets("Récap DP").Range("$i$276")
Ents = Sheets("Récap DP").Range("$o2$76")
App = Sheets("Récap DP").Range("$G$276")
Bat = Sheets("Récap DP").Range("$H$276")
NomFichierPDF = "DP" & " " & DPnum & " " & Locs & " " & Ents, _
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:= _
Filename:="C:\DP\" & Bat & "\" & App & "\" & NomFichierPDF & ".pdf"

End Sub
L'activeCell est est contenue dans le nom du document créer et avec lequel on cherche à créer le lien soit: "DPnum".
J'ai construit ces instructions en créant une macro qui m'a donné la ligne de code "ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:= _" avec "ActiveCell" qui remplace "ActiveSheet".
Le path "Filename" était arbitraire, à été remplacé par "C\DP....." d'ou la création des Dim etc
En dernier les cellules concernées sont situées dans la colonne X, là l'exemple était dans la ligne 276 mais je ne sais pas trop quoi en faire
 

Pièces jointes

  • Hyper.xlsm
    49 KB · Affichages: 87
Dernière édition:

francedemo

XLDnaute Occasionnel
Re : Créer un hyperlien

bonjour,

à tester

Code:
Sub Hyper()

Dim Bat$, App$, Loc$, Ent$, DPnum$, NomFichierPDF As String

ActiveCell.CurrentRegion.Select
DPnum = Sheets("Récap DP").Range("$x$276")
Loc = Sheets("Récap DP").Range("$i$276")
Ents = Sheets("Récap DP").Range("$o2$76")
App = Sheets("Récap DP").Range("$G$276")
Bat = Sheets("Récap DP").Range("$H$276")

NomFichierPDF = "C:\DP\" & Bat & "\" & App & "\" & "DP" & " " & DPnum & " " & Locs & " " & Ents  & ".pdf"
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:= NommFichierPDF, TextToDisplay:=DpNum

End Sub
sans garantie (pas eu le temps de tester chez moi...)
 

T77XDD

XLDnaute Occasionnel
Re : Créer un hyperlien

Bonjour, désolé pour ce retard à ta réponse ultra rapide
En appliquant ce code j'obtiend l'ensemble des cellules non vide en bleu et soulignées même en ayant corrigé ça "Ents = Sheets("Récap DP").Range("$o2$76")" en "Ents = Sheets("Récap DP").Range("o6")" comme pour les autres valeurs dans Range.
Merci pour ton aide.
 

francedemo

XLDnaute Occasionnel
Re : Créer un hyperlien

c'est normal, dans ton code, tu fais une sélection de toutes les cellules non vide et tu affecte le lien hypertexte à ta sélection,

à tester:
Code:
Sub Hyper()

Dim Bat$, App$, Loc$, Ent$, DPnum$, NomFichierPDF As String

ActiveCell.CurrentRegion.Select

With Sheets("Récap DP")
   DPnum = .[$X$276]
   Loc = .[$I$276]
   Ents = .[$O$276]
   App = .[$G$276]
   Bat = .[$H$276]
End With

NomFichierPDF = "C:\DP\" & Bat & "\" & App & "\" & "DP " & DPnum & " " & Loc & " " & Ents & ".pdf"
ActiveCell.Hyperlinks.Add _
   Anchor:=ActiveCell, _
   Address:=NomFichierPDF, _
   TextToDisplay:=DPnum

End Sub
je t'ai corrigé 2 /3 trucs dans l'écriture
avec ce code, seule la cellule active aura le lien hypertexte
à+

edit: le plus simple serait que tu indiques sur quelle cellule tu veux le lien, et quelle cible tu souhaites avoir pour ce lien
effectivement la ligne 276 ne correspond à rien
 
Dernière édition:

T77XDD

XLDnaute Occasionnel
Re : Créer un hyperlien

Bonjour,
j'ai modifié le code
Code:
Sub Hyper()
Dim Bat$, App$, Loc$, Ents$, DPnum$, NomFichierPDF As String
DPnum = Sheets("Récap DP").Range("T2", .Range("T2").End(xlDown))
Loc = Sheets("Récap DP").Range("I2", .Range("I2").End(xlDown))
Ents = Sheets("Récap DP").Range("O2", .Range("O2").End(xlDown))
App = Sheets("Récap DP").Range("G2", .Range("G2").End(xlDown))
Bat = Sheets("Récap DP").Range("H2", .Range("H2").End(xlDown))
NomFichierPDF = "C:\DP\" & Bat & "\" & App & "\" & "DP " & DPnum & " " & Loc & " " & Ents & ".pdf"
ActiveCell.Hyperlinks.Add _
Anchor:=Range("X" & [X65000].End(xlDown).Row + 0), _
Address:=NomFichierPDF, _
TextToDisplay:=DPnum
ActiveCell = [X60000].End(xlDown).Row
End Sub
j'obtiend le premier "Range" surligné en vert avec MsgBox "Référence incorrecte ou non qualifié.
Pour établir le code je me suis servi du cour "formationVBA et je ne vois pas l'erreur.
Je pense que c'est la bonne piste mais je suis un peu pommé.
Si vous pouvez m'aider ce sera sympa.
Merci
 

Pièces jointes

  • BDD ESSAI (1).xls
    143 KB · Affichages: 45
  • BDD ESSAI (1).xls
    143 KB · Affichages: 38
  • BDD ESSAI (1).xls
    143 KB · Affichages: 40

francedemo

XLDnaute Occasionnel
Re : Créer un hyperlien

bonjour,
avec (remplacer ta macro) :
Code:
Option Explicit
Sub Hyper()

Dim Bat As String
Dim App As String
Dim Loc As String
Dim Ents As String
Dim DPnum As String
Dim NomFichierPDF As String
Dim i As Integer

With Sheets("Récap DP")
   For i = 2 To .Range("A65535").End(xlUp).Row
      DPnum = .Range("T" & i)
      Loc = .Range("I" & i)
      Ents = .Range("O" & i)
      App = .Range("G" & i)
      Bat = .Range("H" & i)
      
      NomFichierPDF = "C:\DP\" & Bat & "\" & App & "\" & "DP " & DPnum & " " & Loc & " " & Ents & ".pdf"

      ActiveCell.Hyperlinks.Add _
         Anchor:=Range("T" & i), _
         Address:=NomFichierPDF, _
         TextToDisplay:=DPnum
   Next i
End With

ActiveCell = [X60000].End(xlDown).Row
End Sub
ça mets des liens en "T"
à voir si ça te convient

à+
 

T77XDD

XLDnaute Occasionnel
Re : Créer un hyperlien (Résolu)

Bonsoir,
Grace à ce que vous m'avez transmis j'ai réussi (toujours sans pouvoir tester le résultat final) à créer ces hyperliens que je préfère faire apparaître sous la forme "Nomfichier" à coté du "DPnum" qui ne bouge pas.
Code:
Option Explicit
Sub Hyper()

Dim Bat As String
Dim App As String
Dim Loc As String
Dim Ents As String
Dim DPnum As String
Dim Obj As String
Dim NomFichierPDF As String
Dim i As Integer

With Sheets("Récap DP")
For i = 2 To .Range("A65535").End(xlUp).Row
    DPnum = .Range("T" & i)
    Loc = .Range("I" & i)
    Ents = .Range("O" & i)
    App = .Range("G" & i)
    Bat = .Range("H" & i)
    Obj = .Range("Q" & i)
If .Range("T" & i) = "F ?????" Then
    'enr Fax
    NomFichierPDF = "C:\DP\Fax\" & Ents & "\" & "Fax " & DPnum & " " & Obj & " " & Ents & ".pdf"
Else
    'enr DP Locataires
    NomFichierPDF = "C:\DP\" & Bat & "\" & App & "\" & DPnum & " " & Loc & " " & Ents & ".pdf"
    If App <> "" Then
    NomFichierPDF = "DP" & " " & DPnum & " " & Loc & " " & Ents
Else
    'enr DP Parties communes
NomFichierPDF = "DP" & " " & DPnum & " " & Loc & " " & Ents

    End If
End If
    
ActiveCell.Hyperlinks.Add _
    Anchor:=Range("V" & i), _
    Address:=NomFichierPDF, _
    TextToDisplay:=NomFichierPDF
   Next i
End With

ActiveCell = [X60000].End(xlDown).Row
End Sub
Merci beaucoup pour ce coup de main.
Il me reste à compiler les trois boutons, je vais essayer dans un premier temps de compiler les enregistrements de travaux et de fax et ensuite d'y rajouter l'hyperlien mais comme je suis un peu dur de la comprenure c'est pas pour demain. Malgré tout bien que le travail me soit maché je progresse et j'apprend énormément et ça c'est de la bombe.
Voilà encore merci.
PS: comment indiquer "Résolu" je l'ai rajouté dans le titre mais il n'apparaît pas quand on fait une recherche dans les messages
 

Pièces jointes

  • BDD ESSAI.xls
    148.5 KB · Affichages: 35
  • BDD ESSAI.xls
    148.5 KB · Affichages: 31
  • BDD ESSAI.xls
    148.5 KB · Affichages: 29
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…