Macro pour lien relatif

Bonjour à tous

Je suis à la recherche d'une petite macro qui transforme le contenu de la cellule en lien relatif.

Je sais que cela est possible sans macro via le menu créer un lien, mais comme j'aurai beaucoup de cellule a transformer :)

Merci d'avance

Bonne journée

Bonjour,

Qu'appelez vous exactement lien relatif ? Un petit exemple sous forme de fichier avec les données à dispo et le résultat attendu est le bienvenu. Idem suite à quelle action est faite ce lien relatif ?

Il y a bien la méthode .Hyerlinks.Add qui est dispo mais nous avons besoin de plus d'informations pour travailler.

Cdlt,

En fait je voudrai transformer le text en lien

Ci-joint un fichier

Merci

3lien.xlsm (12.44 Ko)

Bonjour,

Merci beaucoup. A ce moment là après un clic droit (le mode d'activation peut être personnalisable) sur la cellule, si le PDF se trouve dans le même dossier que le classeur :

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D3:D" & Range("D3").End(xlDown).Row)) Is Nothing Then
    ActiveCell.Hyperlinks.Add Anchor:=Range(ActiveCell.Address), Address:=ThisWorkbook.Path & "\" & ActiveCell
End If
End Sub

Cdlt,

4copie-de-lien.xlsm (18.08 Ko)

Bonjour Ergotamine

Merci pour ton code fonctionnelle.

Je me pose une autre question, par l’intermédiaire d'un formulaire est-il possible de pouvoir choisir quelle colonne sera traitée et de pouvoir introduire manuellement le préfixe du répertoire (Exemple dans la cellule j'indique uniquement le nom du PDF et dans le formule je lui donne le nom du répertoire ou se trouve le fichier)

Le répertoire qui contient les pdf sera toujours au même emplacement que mon fichier Excel.

Je joint le fichier avec le formulaire.

Merci d'avance

3lien.xlsm (24.11 Ko)

Bonjour,

Si j'ai bien compris, un nouveau test avec une pré selection du répertoire où se trouvent les PDF dans USF.

Private Sub CommandButton1_Click()
With ActiveSheet
    Set PLAGE = .Range(.Cells(3, Me.TextBox1), .Cells(.Cells(3, Me.TextBox1).End(xlDown).Row, Me.TextBox1))
    For Each REF In PLAGE
        REF.Hyperlinks.Add Anchor:=REF, Address:=Me.TextBox2 & ActiveCell
    Next REF
End With
End Sub

Private Sub CommandButton2_Click()
Set DOSSIER = Application.FileDialog(msoFileDialogFolderPicker)
DOSSIER.Show
Me.TextBox2 = DOSSIER.SelectedItems(1) & "\"
End Sub

Cdlt,

Merci Ergotime

Comment je fait pour la sélection de ma plage ?

Sinon pour le répertoire c'est impecable

Merci

Bonjour,

Dans ce cas si vous partez sur une sélection :

Private Sub CommandButton1_Click()
With ActiveSheet
    Set PLAGE = .Range(.Cells(Selection.Rows(1).Row, Me.TextBox1), .Cells(Selection.Rows.Count + Selection.Rows(1).Row - 1, Me.TextBox1))
    For Each REF In PLAGE
        REF.Hyperlinks.Add Anchor:=REF, Address:=Me.TextBox2 & ActiveCell
    Next REF
End With
End Sub

Cdlt,

Re Ergotamine

Pour la sélection cela ne fonctionne pas, j'ai un message d'erreur.

J’aurais aimé avoir quelque chose du genre :

Je sélectionne les cellule a transformer via la souris et dans mon formulaire un bouton "confirmer la sélection" qui rempli la textbox1.

Je sais pas si je suis assez clair dans ma description.

Merci

Bonjour,

Chez moi la manipulation fonctionne :
- Je sélectionne ma plage exemple D4:D7
- J'actionne Menu
- Je renseigne 4 dans la textbox colonne
- Je sélectionne mon dossier de destination
- Je clic sur le bouton go
- Mes liens sont créés sur la plage sélectionnée.

Je ne comprend pas le "un bouton "confirmer la sélection" qui rempli la textbox1.", vous souhaitez que la colonne soit automatiquement renseigné dans l'USF ? A ce moment à quoi sert cette textbox ?

Cdlt,

A Ok je comprend mieux, moi je renseignais D et pas 4.

Encore un tout grand merci pour ton aide.

Bonne journée

Re Ergotamine

En fait je ne vois pas l'utilité de ma textbox1 est-il possible de prendre en compte uniquement la plage sélectionnée

Merci

Bonjour,

Je ne la vois pas non plus mais comme c'était votre besoin ..

Ci-joint le fichier modifié.

Cdlt,

Les liens créés sont identique pour chaque ligne est-ce normal ?

Car chaque ligne doit pointer vers un fichier différent.

Merci

Bonjour,

Autant pour moi erreur de ma part a force de modifier je me suis emmêlé les pinceaux.

Ci-contre la version corrigée.

Désolé.

Cdlt,

Merci Ergotamine

C'est tip top.

Je t'en remercie

Bonne fin de journée

Re Bonjour Ergotamine

J'ai encore une petite question.

Si j'ouvre la boite de dialogue pour indique le répertoire, si je fais Ok cela fonctionne mais si je fais annuler j'ai un message d'erreur.

Est-il possible de mettre une condition ? pour ne plus avoir cela.

Merci

Bonne journée

Bonjour,

Dans ce cas mettez ce code à la plage :

Private Sub CommandButton2_Click()
Set DOSSIER = Application.FileDialog(msoFileDialogFolderPicker)
If DOSSIER.Show = -1 Then
    Me.TextBox2 = DOSSIER.SelectedItems(1) & "\"
    Else
    Exit Sub
End If
End Sub

Cdlt,

Merci Ergotamine

Bonne journée

Rechercher des sujets similaires à "macro lien relatif"