Boussole pour lien hypertexte en VBA

Le
Lune Rousse
Bonsoir,
Sur une feuille Excel j’ai dans la colonne A ( de A1 à A 2500) un
texte par cellule qui est l’adresse complète d’un dossier.
Dans la colonne B j’ai le nom d’un fichier par cellule.
Je souhaite, en VBA, si cela est possible, mettre un lien sur les mots
contenu en B1 le lien est écrit dans A1.
Idem pour B2 son lien est en A2 etc.
Au final si je clic sur B4, je souhaite ouvrir le dossier dont
l’adresse est écrite en A4.
Je sais poser un lien manuellement mais sur 2500 lignes, il me
faudrait trop de temps.
Merci de votre aide.
Lune_Rousse.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #19903201
Bonsoir,

Un clique dans la colonne B ouvert le fichier dont l'adresse se trouve dans
la ligne correspondante en colonne A et le nom du fichier en colonne B
La plage commence en B1 dans l'exemple (éventuellement adapté)
A coller dans le module de la feuille en question.
'----------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set plage = Range("B1:B" & Cells(Rows.Count, "b").End(3).Row)
If Not Intersect(Target, plage) Is Nothing And Target.Count = 1 Then
On Error Resume Next
Workbooks.Open Filename:=Target.Offset(0, -1) & "" & Target
Target.Offset(0, -1).Activate
End If
End Sub
'-----------------

--
Salutations
JJ


"Lune Rousse"
Bonsoir,
Sur une feuille Excel j’ai dans la colonne A ( de A1 à A 2500) un
texte par cellule qui est l’adresse complète d’un dossier.
Dans la colonne B j’ai le nom d’un fichier par cellule.
Je souhaite, en VBA, si cela est possible, mettre un lien sur les mots
contenu en B1 le lien est écrit dans A1.
Idem pour B2 son lien est en A2 etc.
Au final si je clic sur B4, je souhaite ouvrir le dossier dont
l’adresse est écrite en A4.
Je sais poser un lien manuellement mais sur 2500 lignes, il me
faudrait trop de temps.
Merci de votre aide.
Lune_Rousse.
Lune Rousse
Le #19904461
On 8 août, 23:32, "Jacky"
Bonsoir,

Un clique dans la colonne B ouvert le fichier dont l'adresse se trouve da ns
la ligne correspondante en colonne A et le nom du fichier en colonne B
La plage commence en B1  dans l'exemple (éventuellement adapté)
A coller dans le module de la feuille en question.
'----------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set plage = Range("B1:B" & Cells(Rows.Count, "b").End(3).Row)
If Not Intersect(Target, plage) Is Nothing And Target.Count = 1 Then
  On Error Resume Next
  Workbooks.Open Filename:=Target.Offset(0, -1) & "" & Target
  Target.Offset(0, -1).Activate
End If
End Sub
'-----------------

--
Salutations
JJ

"Lune Rousse"
Bonsoir,
Sur une feuille Excel j’ai dans la colonne A ( de A1 à   A 2500) un
texte par cellule qui est l’adresse complète d’un dossier.
Dans la colonne B j’ai le nom d’un fichier par cellule.
Je souhaite, en VBA, si cela est possible, mettre un lien sur les mots
contenu en B1 le lien est écrit dans A1.
Idem pour B2 son lien est en A2 etc.
Au final si je clic sur B4, je souhaite ouvrir le dossier dont
l’adresse est écrite en A4.
Je sais poser un lien manuellement mais sur 2500 lignes, il me
faudrait trop de temps.
Merci de votre aide.
Lune_Rousse.



Bonjour Jacky

Ta macro est étonnante et elle fait exactement ce qui tu dis. ma
Lune Rousse
Le #19904541
On 9 août, 13:49, Lune Rousse
On 8 août, 23:32, "Jacky"




> Bonsoir,

> Un clique dans la colonne B ouvert le fichier dont l'adresse se trouve dans
> la ligne correspondante en colonne A et le nom du fichier en colonne B
> La plage commence en B1  dans l'exemple (éventuellement adapté)
> A coller dans le module de la feuille en question.
> '----------------
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> Set plage = Range("B1:B" & Cells(Rows.Count, "b").End(3).Row)
> If Not Intersect(Target, plage) Is Nothing And Target.Count = 1 Then
>   On Error Resume Next
>   Workbooks.Open Filename:=Target.Offset(0, -1) & "" & Target
>   Target.Offset(0, -1).Activate
> End If
> End Sub
> '-----------------

> --
> Salutations
> JJ

> "Lune Rousse" >
> Bonsoir,
> Sur une feuille Excel j’ai dans la colonne A ( de A1 à   A 2500) un
> texte par cellule qui est l’adresse complète d’un dossier.
> Dans la colonne B j’ai le nom d’un fichier par cellule.
> Je souhaite, en VBA, si cela est possible, mettre un lien sur les mots
> contenu en B1 le lien est écrit dans A1.
> Idem pour B2 son lien est en A2 etc.
> Au final si je clic sur B4, je souhaite ouvrir le dossier dont
> l’adresse est écrite en A4.
> Je sais poser un lien manuellement mais sur 2500 lignes, il me
> faudrait trop de temps.
> Merci de votre aide.
> Lune_Rousse.




Bonjour Jacky

Ta macro est étonnante et elle fait exactement ce qui tu dis. Mais
sans ouvrir le dossier puisse que dans les cellules de la colonne A je
n’ai pas de lien, mais juste l’adresse d’un lien …
Le lien que je souhaite mettre sur les cellules de la colonne B
devrait me faire apparaître les contenus de ma colonne B en bleu,
(comme un lien hypertexte classique) car je dois manipuler le contenu
de la colonne B et le recopier dans une autre feuille après
traitement.
De plus le traitement n’est pas réalisé si l’on modifie la feuille,
mais à l’aide d’un bouton qui lance une macro. (Lancer une macro avec
un bouton je sais faire.)
Merci de ton aide
Lune Rousse
Lune Rousse
Le #19904601
On 9 août, 14:00, Lune Rousse
On 9 août, 13:49, Lune Rousse




> On 8 août, 23:32, "Jacky"
> > Bonsoir,

> > Un clique dans la colonne B ouvert le fichier dont l'adresse se trouv e dans
> > la ligne correspondante en colonne A et le nom du fichier en colonne B
> > La plage commence en B1  dans l'exemple (éventuellement adapté)
> > A coller dans le module de la feuille en question.
> > '----------------
> > Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> > Set plage = Range("B1:B" & Cells(Rows.Count, "b").End(3).Row)
> > If Not Intersect(Target, plage) Is Nothing And Target.Count = 1 The n
> >   On Error Resume Next
> >   Workbooks.Open Filename:=Target.Offset(0, -1) & "" & Target
> >   Target.Offset(0, -1).Activate
> > End If
> > End Sub
> > '-----------------

> > --
> > Salutations
> > JJ

> > "Lune Rousse" > >
> > Bonsoir,
> > Sur une feuille Excel j’ai dans la colonne A ( de A1 à   A 2500 ) un
> > texte par cellule qui est l’adresse complète d’un dossier.
> > Dans la colonne B j’ai le nom d’un fichier par cellule.
> > Je souhaite, en VBA, si cela est possible, mettre un lien sur les mot s
> > contenu en B1 le lien est écrit dans A1.
> > Idem pour B2 son lien est en A2 etc.
> > Au final si je clic sur B4, je souhaite ouvrir le dossier dont
> > l’adresse est écrite en A4.
> > Je sais poser un lien manuellement mais sur 2500 lignes, il me
> > faudrait trop de temps.
> > Merci de votre aide.
> > Lune_Rousse.

Bonjour Jacky

Ta macro est étonnante et elle fait exactement ce qui tu dis. Mais
sans ouvrir le dossier puisse que dans les cellules de la colonne A je
n’ai pas de lien, mais juste l’adresse d’un lien …
Le lien que je souhaite mettre sur les cellules de la colonne B
devrait me faire apparaître les contenus de ma colonne B en bleu,
(comme un lien hypertexte classique) car je dois manipuler le contenu
de la colonne B et le recopier dans une autre feuille après
traitement.
De plus le traitement n’est pas réalisé si l’on modifie la feuill e,
mais à l’aide d’un bouton qui lance une macro. (Lancer une macro av ec
un bouton je sais faire.)
Merci de ton aide
Lune Rousse- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Jacky
En complément d’information.
Une photo du début du fichier

En A1 l’adresse du lien sous forme de texte. En B1 le nom
Je recherche le fonctionnement suivant :
Si je clic sur B1 alors j’ouvre le dossier dont l’adresse est en A1.
A1 est du texte, ta macro sélectionne la cellule mais elle n’ouvre pas
le dossier.
La colonne A est effacée après avoir « donné» ses liens, mais le lien
reste en B1. La cellule B1 peut être recopiée dans une autre feuille,
elle doit conserver son lien.
Le lien de B4 correspond pile poil à A4 etc..
J’ai 2541 lignes à faire…
Merci
Lune Rousse
Jacky
Le #19904931
Re...
... ta macro sélectionne la cellule mais elle n’ouvre pas le dossier.


Si un clique dans la colonne B n'ouvre pas le classeur concerné, c'est que
celui-ci n'existe pas / plus ou qu'il a était déplacé par rapport à
l'adresse inscrite en colonne A

La macro proposée fait exactement ceci (ta demande)
Au final si je clic sur B4, je souhaite ouvrir le dossier dont
l’adresse est écrite en A4.



Mais, si tu souhaites créer un lien hypertexte en colonne B, ceci le fait
'------------
Sub jj()
With Sheets("feuil1") 'Nom de feuille à adapter
Set plage = .Range("b1:b" & .Cells(Rows.Count, "b").End(3).Row)
For Each c In plage
.Hyperlinks.Add c, c.Offset(0, -1) & "" & c
Next
End With
End Sub
'-------------------
Si cela ne convient pas, donne un exemple de ton classeur sur:
http://www.cijoint.fr/
--
Salutations
JJ


"Lune Rousse"
On 9 août, 14:00, Lune Rousse



En A1 l’adresse du lien sous forme de texte. En B1 le nom
Je recherche le fonctionnement suivant :
Si je clic sur B1 alors j’ouvre le dossier dont l’adresse est en A1.
A1 est du texte, ta macro sélectionne la cellule mais elle n’ouvre pas
le dossier.
La colonne A est effacée après avoir « donné» ses liens, mais le lien
reste en B1. La cellule B1 peut être recopiée dans une autre feuille,
elle doit conserver son lien.
Le lien de B4 correspond pile poil à A4 etc..
J’ai 2541 lignes à faire…
Merci
Lune Rousse
Lune Rousse
Le #19904921
On 9 août, 14:20, Lune Rousse
On 9 août, 14:00, Lune Rousse




> On 9 août, 13:49, Lune Rousse
> > On 8 août, 23:32, "Jacky"
> > > Bonsoir,

> > > Un clique dans la colonne B ouvert le fichier dont l'adresse se tro uve dans
> > > la ligne correspondante en colonne A et le nom du fichier en colonn e B
> > > La plage commence en B1  dans l'exemple (éventuellement adapt é)
> > > A coller dans le module de la feuille en question.
> > > '----------------
> > > Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> > > Set plage = Range("B1:B" & Cells(Rows.Count, "b").End(3).Row)
> > > If Not Intersect(Target, plage) Is Nothing And Target.Count = 1 T hen
> > >   On Error Resume Next
> > >   Workbooks.Open Filename:=Target.Offset(0, -1) & "" & Target
> > >   Target.Offset(0, -1).Activate
> > > End If
> > > End Sub
> > > '-----------------

> > > --
> > > Salutations
> > > JJ

> > > "Lune Rousse" > > > .
> > > Bonsoir,
> > > Sur une feuille Excel j’ai dans la colonne A ( de A1 à   A 25 00) un
> > > texte par cellule qui est l’adresse complète d’un dossier.
> > > Dans la colonne B j’ai le nom d’un fichier par cellule.
> > > Je souhaite, en VBA, si cela est possible, mettre un lien sur les m ots
> > > contenu en B1 le lien est écrit dans A1.
> > > Idem pour B2 son lien est en A2 etc.
> > > Au final si je clic sur B4, je souhaite ouvrir le dossier dont
> > > l’adresse est écrite en A4.
> > > Je sais poser un lien manuellement mais sur 2500 lignes, il me
> > > faudrait trop de temps.
> > > Merci de votre aide.
> > > Lune_Rousse.

> Bonjour Jacky

> Ta macro est étonnante et elle fait exactement ce qui tu dis. Mais
> sans ouvrir le dossier puisse que dans les cellules de la colonne A je
> n’ai pas de lien, mais juste l’adresse d’un lien …
> Le lien que je souhaite mettre sur les cellules de la colonne B
> devrait me faire apparaître les contenus de ma colonne B en bleu,
> (comme un lien hypertexte classique) car je dois manipuler le contenu
> de la colonne B et le recopier dans une autre feuille après
> traitement.
> De plus le traitement n’est pas réalisé si l’on modifie la feui lle,
> mais à l’aide d’un bouton qui lance une macro. (Lancer une macro avec
> un bouton je sais faire.)
> Merci de ton aide
> Lune Rousse- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -

Bonjour Jacky
En complément d’information.
Une photo du début du fichier

En A1 l’adresse du lien sous forme de texte. En B1 le nom
Je recherche le fonctionnement suivant :
Si je clic sur B1 alors j’ouvre le dossier dont l’adresse est en A1.
A1 est du texte, ta macro sélectionne la cellule mais elle n’ouvre pa s
le dossier.
La colonne A est effacée après avoir « donné» ses liens, mais l e lien
reste en B1. La cellule B1 peut être recopiée dans une autre feuille,
elle doit conserver son lien.
Le lien de B4 correspond pile poil à A4 etc..
J’ai 2541 lignes à faire…
Merci
Lune Rousse- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour,

J'ai trouvé la solution suivante qui correspond à mon besoin.
Private Sub lien()
Sheets("Extract_compar").Select
Range("B1:B2600").Select
For Each cell In Selection
adresse = cell.Offset(0, -1).Value
ActiveSheet.Hyperlinks.Add Anchor:Îll, Address:­resse
Next
End Sub

Lune Rousse
Publicité
Poster une réponse
Anonyme