Fonction Remplacer pour lien hypertexte

Le
Davelop
Bonjour,

j'aimerais savoir comment effectuer un "chercher-remplacer" dans une feuille
excel concernant une adresse URL dans un lien hypertexte.

Ou sinon comment le faire à l'aide d'une macro

Merci d'avance
Vos réponses
Trier par : date / pertinence
Jacques93
Le #3523691
Bonjour Davelop,

En VBA :

Private Sub ReplaceStrInHyperLink(sFnd As String, sRpl As String)
Dim lnk As Hyperlink
Dim rep As Integer

For Each lnk In Hyperlinks
If InStr(lnk.Address, sFnd) > 0 Then

rep = MsgBox(Chr$(34) & sFnd & Chr$(34) & _
" trouvé dans " & lnk.TextToDisplay & _
vbCrLf & "à l'adresse : " & lnk.Range.Address & _
vbCrLf & "Remplacer par " & Chr$(34) & sRpl & _
Chr$(34) & " ?", vbYesNo Or vbQuestion)
If rep = vbYes Then
lnk.Address = Replace(lnk.Address, sFnd, sRpl)
End If
End If
Next
End Sub

Bonjour,

j'aimerais savoir comment effectuer un "chercher-remplacer" dans une feuille
excel concernant une adresse URL dans un lien hypertexte.

Ou sinon comment le faire à l'aide d'une macro

Merci d'avance



--
Cordialement,

Jacques.

Davelop
Le #3523491
Bonjour jacques

Merci de ta réponse

mais que dois-je mettre dans la variable "lnk" car j'ai une erreur "objet
requis" ?

En fait je veux simplement changer une chaine de caractères par une autre
chaine dans tous les liens hypertexte de mon fichier excel.

merci encore
Jacques93
Le #3523361
Bonjour Davelop,

Ben, rien. Normalement la boucle :

For Each lnk in Hyperlinks
...
next

parcoure la collection des liens hypertexte de la feuille, s'il n'y en a
pas, on sort de la boule tout de suite. Sur quelle ligne as tu l'erreur ?

A tout hasard, quelle version d'Excel (2003 pour moi)

Bonjour jacques

Merci de ta réponse

mais que dois-je mettre dans la variable "lnk" car j'ai une erreur "objet
requis" ?

En fait je veux simplement changer une chaine de caractères par une autre
chaine dans tous les liens hypertexte de mon fichier excel.

merci encore




--
Cordialement,

Jacques.

Davelop
Le #3337131
Je fais appel à la fonction "ReplaceStrInHyperLink" avec les 2 paramêtres
sFnd et sRpl renseignés mais la macro s'arrête sur la ligne "For Each lnk In
Hyperlinks" avec pour erreur "objet requis"
ex :
sub test ()
call ReplaceStrInHyperLink("toto","titi")
end sub

la casse de la chaine de caractère est-elle importante ?

J'ai Excel 2003 aussi

Merci bien


"Jacques93" wrote:

Bonjour Davelop,

Ben, rien. Normalement la boucle :

For Each lnk in Hyperlinks
...
next

parcoure la collection des liens hypertexte de la feuille, s'il n'y en a
pas, on sort de la boule tout de suite. Sur quelle ligne as tu l'erreur ?

A tout hasard, quelle version d'Excel (2003 pour moi)

Bonjour jacques

Merci de ta réponse

mais que dois-je mettre dans la variable "lnk" car j'ai une erreur "objet
requis" ?

En fait je veux simplement changer une chaine de caractères par une autre
chaine dans tous les liens hypertexte de mon fichier excel.

merci encore




--
Cordialement,

Jacques.




Jacques93
Le #3337041
Bonjour Davelop,

Non, la casse n' pas d'importance. Essaie cette macro, juste pour voir :

Private Sub Test()
Dim i As Integer

MsgBox Hyperlinks.Count & "lien(s) hypertexte"
For i = 1 To Hyperlinks.Count
MsgBox Hyperlinks(i).TextToDisplay & "=" & Hyperlinks(i).Address
Next i
End Sub


Si elle marche, affiche t-elle bien test liens hypertexte ?


Je fais appel à la fonction "ReplaceStrInHyperLink" avec les 2 paramêtres
sFnd et sRpl renseignés mais la macro s'arrête sur la ligne "For Each lnk In
Hyperlinks" avec pour erreur "objet requis"
ex :
sub test ()
call ReplaceStrInHyperLink("toto","titi")
end sub

la casse de la chaine de caractère est-elle importante ?

J'ai Excel 2003 aussi



--
Cordialement,

Jacques.

anonymousA
Le #3337021
Bonjour,

u moins pour Xcel 2000

for each hlnk in ActiveSheet.Hyperlinks au lieu de for each hlnk in
Hyperlinks

A+

Je fais appel à la fonction "ReplaceStrInHyperLink" avec les 2 paramêtres
sFnd et sRpl renseignés mais la macro s'arrête sur la ligne "For Each lnk In
Hyperlinks" avec pour erreur "objet requis"
ex :
sub test ()
call ReplaceStrInHyperLink("toto","titi")
end sub

la casse de la chaine de caractère est-elle importante ?

J'ai Excel 2003 aussi

Merci bien


"Jacques93" wrote:


Bonjour Davelop,

Ben, rien. Normalement la boucle :

For Each lnk in Hyperlinks
...
next

parcoure la collection des liens hypertexte de la feuille, s'il n'y en a
pas, on sort de la boule tout de suite. Sur quelle ligne as tu l'erreur ?

A tout hasard, quelle version d'Excel (2003 pour moi)


Bonjour jacques

Merci de ta réponse

mais que dois-je mettre dans la variable "lnk" car j'ai une erreur "objet
requis" ?

En fait je veux simplement changer une chaine de caractères par une autre
chaine dans tous les liens hypertexte de mon fichier excel.

merci encore




--
Cordialement,

Jacques.






Jacques93
Le #3336991
Bonjour anonymousA,

Effectivement, ayant placé tout mon code dans un code de feuille,
l'objet est implicite ...
Si Davelop a mis la macro dans un module => Erreur 424 Objet requis

Merci du coup de pouce.

Bonjour,

u moins pour Xcel 2000

for each hlnk in ActiveSheet.Hyperlinks au lieu de for each hlnk in
Hyperlinks

A+



--
Cordialement,

Jacques.

anonymousA
Le #3336961
Bonjour,

y'a pas de quoi. j'ai vraiment pas fait grand chose que tu n'eus pu
faire toi-même.

Cordialement,


Bonjour anonymousA,

Effectivement, ayant placé tout mon code dans un code de feuille,
l'objet est implicite ...
Si Davelop a mis la macro dans un module => Erreur 424 Objet requis

Merci du coup de pouce.


Bonjour,

u moins pour Xcel 2000

for each hlnk in ActiveSheet.Hyperlinks au lieu de for each hlnk in
Hyperlinks

A+






Davelop
Le #3336721
effectivement c'était bien ça.

Un grand merci à tous les 2 !
et avant tout à Jacques ;)





"anonymousA" wrote:

Bonjour,

y'a pas de quoi. j'ai vraiment pas fait grand chose que tu n'eus pu
faire toi-même.

Cordialement,


Bonjour anonymousA,

Effectivement, ayant placé tout mon code dans un code de feuille,
l'objet est implicite ...
Si Davelop a mis la macro dans un module => Erreur 424 Objet requis

Merci du coup de pouce.


Bonjour,

u moins pour Xcel 2000

for each hlnk in ActiveSheet.Hyperlinks au lieu de for each hlnk in
Hyperlinks

A+









Jacques93
Le #3336591
Bonjour anonymousA
Bonjour,

y'a pas de quoi. j'ai vraiment pas fait grand chose que tu n'eus pu
faire toi-même.



La, c'est direct en prison. Sans case depart. ben non je ne lupu :-D

--
Cordialement,

Jacques.

Publicité
Poster une réponse
Anonyme