Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction Remplacer pour lien hypertexte

10 réponses
Avatar
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

10 réponses

Avatar
Jacques93
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.

Avatar
Davelop
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
Avatar
Jacques93
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.

Avatar
Davelop
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.




Avatar
Jacques93
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.

Avatar
anonymousA
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.






Avatar
Jacques93
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.

Avatar
anonymousA
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+






Avatar
Davelop
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+









Avatar
Jacques93
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.