Collone en Hypertexte

Bonjour,

Je cherche à mettre toute une colonne (B) en lien hypertexte automatique.

Via le VBA afin de laisser la cellule clean

Tout les fichiers seront en PDF dans le même répertoire

Exemple: P:\repertoire\FICHIER01.PDF

Il ne restera plus qu'a mettre le nom du fichier exacte du genre FICHIER01 ou FICHIER01.PDF. dans la cellule en question sur la colonne (B).

J'ai fais quelques recherches et essai mais je doit manquer complètement quelque chose.

Merci d'avance

Toriix

bonjour

pas besoin de VBA

mettre le chemin du répertoire en A1 (uniquement dans A1, ne pas étendre cette valeur)

en colonne B mettre les noms : MonFichier

en colonne C mettre =LIEN_HYPERTEXTE(A1&B1&".pdf";B1)

tirer la formule vers le bas

amitiés

bonne année

Bonjour,

Un exemple à adapter.

Cdlt.

Public Sub Create_Hyperlinks()
Const strFOLDER As String = "P:\repertoire\"
Dim i As Long, n As Long
    With ActiveSheet
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        For i = 1 To n
        .Hyperlinks.Add .Cells(i, 2), strFOLDER & .Cells(, 2).Text
        Next rw
    End With
End Sub

@ jmd : Pourquoi intervenir pour préconiser une solution qui ne répond pas à la question posée ?

salut Jean-Eric

parce que 99 fois sur 100, une solution alternative simple est acceptée (le questionneur ayant exprimé un besoin mal formulé)

ici il semble raisonnable de comprendre : "je voudrais pouvoir ouvrir d'un clic un pdf dont le nom figure dans une liste"

non ?

amitiés

pas besoin de VBA

mettre le chemin du répertoire en A1 (uniquement dans A1, ne pas étendre cette valeur)

en colonne B mettre les noms : MonFichier

en colonne C mettre =LIEN_HYPERTEXTE(A1&B1&".pdf";B1)

tirer la formule vers le bas

Dans ce cas je condamne plusieurs cellule

Public Sub Create_Hyperlinks()
Const strFOLDER As String = "P:\repertoire\"
Dim i As Long, n As Long
    With ActiveSheet
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        For i = 1 To n
        .Hyperlinks.Add .Cells(i, 2), strFOLDER & .Cells(, 2).Text
        Next rw
    End With
End Sub

Ici j'ai adapté le chemin mais je suis assez novice donc quelque chose me manque encore

Et du coup je n'ai pas d'hyperlink lors de mes test dans la colonne B

pas besoin de VBA

mettre le chemin du répertoire en A1 (uniquement dans A1, ne pas étendre cette valeur)

en colonne B mettre les noms : MonFichier

en colonne C mettre =LIEN_HYPERTEXTE(A1&B1&".pdf";B1)

tirer la formule vers le bas

Dans ce cas je condamne plusieurs cellule

je ne comprends pas ta remarque

Excel dispose d'assez de colonnes pour ne pas te gêner si tu as besoin d'une de plus

???

Re,

@ Toriix,

Joins un petit fichier pour illustrer tes propos et voir la structure de tes données.

@ jmd,

La question est clairement définie et tu (ne) réponds pas à celle-ci.

Le message de Sébastien du 29 décembre dernier n'était pas clair ?

Voici le fichier

Merci de votre aide

4book1.xlsx (9.31 Ko)

Re,

Dans ton message initial, tu indiques que la colonne B comporte le nom du fichier.

Avec ou sans extension !?

Dans ton fichier, la colonne B comprend le chemin et le nom du fichier sans son extension !

Alors, comment fait on ?

Cdlt.

Je t'ai envoyé ce fichier pour exemple car le base est un fichier comprenant déja une macro.

Dans mon répertoire source c'est à dire P:\Maintenance\Purchase orders\Offre de prix j'y ai des fichiers en extensions PDF (exemple offre01.pdf)

Et dans le fichier excel il faudrait que dans la colonne B en y mettant le nom du fichiers (exemple offre01.pdf) ça soit mis directement en raport avec le répertoire P:

Désolé j'essaie d'être le plus claire possible.

Re,

Un nouvel essai :

4thoriix.xlsm (22.59 Ko)
Public Sub Create_Hyperlinks()
Const strFOLDER As String = "P:\Maintenance\Purchase orders\Offre de prix\"
Dim i As Long, n As Long
    With ActiveSheet
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        For i = 2 To n
            .Hyperlinks.Add _
                    anchor:=.Cells(i, 2), _
                    Address:=strFOLDER & .Cells(i, 2).Text
        Next i
    End With
End Sub

Re, merci pour tas réponse.

On est obligé de partir sur un bouton ?

Bonjour toutes et tous,

merci et coucou à Jean Eric

@Toriix

Tu peux mettre directement sur ta feuil1 et sans aucun bouton en reprenant le code de Jean-Eric

Worksheet_Change

Exemple 1:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Const strFOLDER As String = "P:\Maintenance\Purchase orders\Offre de prix\"
Dim i As Long, n As Long
    With ActiveSheet
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        For i = 2 To n
            .Hyperlinks.Add _
                    anchor:=.Cells(i, 2), _
                    Address:=strFOLDER & .Cells(i, 2).Text
        Next i
    End With
End Sub

Exemple 2

Note: il faudrait juste que ta colonne B en présence de virgule soit remplacé par un point ",", "." pour l'extension .pdf

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Const strFOLDER As String = "P:\Maintenance\Purchase orders\Offre de prix\"
Dim i As Long, n As Long
    With ActiveSheet
        n = .Cells(.Rows.Count, 2).End(xlUp).Row
        For i = 2 To n
            .Hyperlinks.Add _
                    anchor:=.Cells(i, 2), _
                    Address:=strFOLDER & .Cells(i, 2).Text

        Columns("B:B").Select             ' remplacer , par point
    Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
       ReplaceFormat:=False
    Range("B1").Select
      Next i
    End With
End Sub

ci-joint l'exemple 2

crdlt,

André

4thoriix-v2.xlsm (22.42 Ko)

Super, ça semble fonctionner

J'ai une autre petite demande complétement optionnel est-ce qu'il est possible de faire la même manip sans devoir ecrire .pdf à la fin du nom de fichier ?

J'ai essayé de rajouter ça dans vos maccro mais ça n'a pas été un succès

Exemple à la place de mettre Offre.pdf on met Offre et la maccro mettre le .pdf elle même ou le reconnaitra en .pdf

re,

Tu peux effectuer comme ceci (une méthode qui à l'air de fonctionner)

- la cellule ne marquera pas . pdf mais l'hyperlien lui le fera

recherche:

Address:=strFOLDER & .Cells(i, 2).Text

modifie par:

Address:=strFOLDER & .Cells(i, 2).Text & ".pdf"

crdlt,

André

Fonctionne parfaitement

Un tout grand merci

Rechercher des sujets similaires à "collone hypertexte"