OVH Cloud OVH Cloud

pb pour supprimer un lien HyperT sur l'ensemble de ceux d'1 feuille

2 réponses
Avatar
Antoine76
Bonjour à tous,

j'ai un petit problème pour supprimer sélectivement un lien hypertexte,
ainsi que pour modifier le contenu des 2 cellules de droite :
- pour le lien HT qui va sur la feuille "Sommaire" du même classeur, je
souhaiterai supprimer le lien HT et le remplacer par le simple texte "Noms
des arrêts de travail" et remplacer dans foulée la 1ère cellule sur la
droite (même ligne) par le titre "Date de début", et la 2ème à droite par
"Date de fin".
- pour la ligne qui contient le lien HT qui va sur la feuille "Arrêt de
travail type" du même classeur, je souhaiterai garder le lien HT existant,
mais supprimer le contenu des 2 cellules sur la droite (même ligne).

Voici ce que j'ai écrit, mais qui ne fonctionne pas :

For Each h In Worksheets("Sommaire").Hyperlinks
If InStr(h.Name, "Sommaire") <> 0 Then
' If h.Name = "Sommaire" Then ===autres variante que j'ai essayée
en vain
Hyperlinks.Delete
ActiveCell.Value = "Salariés en arrêt de travail"
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Value = "Début de l'arrêt de travail"
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Value = "Fin de l'arrêt de travail"
End If
If InStr(h.Name, "Arrêt de travail type") Then
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
End If
Next

Est-ce que quelqu'un aurait une idée qui puisse débloquer le problème ?

Merci

Antoine

2 réponses

Avatar
PMO
Bonjour,

Votre exposé ne m'est pas particulièrement clair aussi ai-je extrapolé.
J'ai supposé une feuille "Index" (créez en une si je suis à côté de la plaque)
où figurent les divers liens hypertextes. Dans cette feuille "Index" j'ai
construit
un lien vers la feuille "Sommaire" et un lien vers la feuille "Arrêt de
travail type".
Je suppose que les cellules à changer sont dans cette feuille "Index".

Si ce n'est pas le cas construisez un classeur selon ces directives
pour pouvoir effectuer un test.

Copiez le code suivant dans un module standard:
'***********************
Sub PMO_Hyperlink()
Dim H As Hyperlink
Dim R As Range
For Each H In Worksheets("Index").Hyperlinks
If InStr(1, H.SubAddress, "Sommaire") Then
Set R = Range(H.Parent.Address)
Set R = R.Offset(0, 1)
R = "Début de l'arrêt de travail"
Set R = R.Offset(0, 1)
R = "Fin de l'arrêt de travail"
H.Delete
End If
If InStr(1, H.SubAddress, "Arrêt de travail type") Then
Set R = Range(H.Parent.Address)
Set R = R.Offset(0, 1)
R = ""
Set R = R.Offset(0, 1)
R = ""
End If
Next
End Sub
'***********************

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

j'ai un petit problème pour supprimer sélectivement un lien hypertexte,
ainsi que pour modifier le contenu des 2 cellules de droite :
- pour le lien HT qui va sur la feuille "Sommaire" du même classeur, je
souhaiterai supprimer le lien HT et le remplacer par le simple texte "Noms
des arrêts de travail" et remplacer dans foulée la 1ère cellule sur la
droite (même ligne) par le titre "Date de début", et la 2ème à droite par
"Date de fin".
- pour la ligne qui contient le lien HT qui va sur la feuille "Arrêt de
travail type" du même classeur, je souhaiterai garder le lien HT existant,
mais supprimer le contenu des 2 cellules sur la droite (même ligne).

Voici ce que j'ai écrit, mais qui ne fonctionne pas :

For Each h In Worksheets("Sommaire").Hyperlinks
If InStr(h.Name, "Sommaire") <> 0 Then
' If h.Name = "Sommaire" Then ===autres variante que j'ai essayée
en vain
Hyperlinks.Delete
ActiveCell.Value = "Salariés en arrêt de travail"
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Value = "Début de l'arrêt de travail"
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Value = "Fin de l'arrêt de travail"
End If
If InStr(h.Name, "Arrêt de travail type") Then
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
End If
Next

Est-ce que quelqu'un aurait une idée qui puisse débloquer le problème ?

Merci

Antoine





Avatar
Antoine76
Bonjour PMO

La réponse apporte pleinement la solution à mon problème. La seule petite
chose que j'ai dû modifier, c'est de "casser le bloc de recherche for each
next pour les 2 recherches de if instr ... en 2 blocs for each next , car
sinon cela bloquait.

Excuses-moi si mon "exposé" du problème était un peu gauche, mais tu as tout
à fait compris ce que j'essayais le fond de ce que j'essayais de
communiquer...

Grand Merci

Antoine
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:
Bonjour,

Votre exposé ne m'est pas particulièrement clair aussi ai-je extrapolé.
J'ai supposé une feuille "Index" (créez en une si je suis à côté de la
plaque)

où figurent les divers liens hypertextes. Dans cette feuille "Index" j'ai
construit
un lien vers la feuille "Sommaire" et un lien vers la feuille "Arrêt de
travail type".
Je suppose que les cellules à changer sont dans cette feuille "Index".

Si ce n'est pas le cas construisez un classeur selon ces directives
pour pouvoir effectuer un test.

Copiez le code suivant dans un module standard:
'***********************
Sub PMO_Hyperlink()
Dim H As Hyperlink
Dim R As Range
For Each H In Worksheets("Index").Hyperlinks
If InStr(1, H.SubAddress, "Sommaire") Then
Set R = Range(H.Parent.Address)
Set R = R.Offset(0, 1)
R = "Début de l'arrêt de travail"
Set R = R.Offset(0, 1)
R = "Fin de l'arrêt de travail"
H.Delete
End If
If InStr(1, H.SubAddress, "Arrêt de travail type") Then
Set R = Range(H.Parent.Address)
Set R = R.Offset(0, 1)
R = ""
Set R = R.Offset(0, 1)
R = ""
End If
Next
End Sub
'***********************

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

j'ai un petit problème pour supprimer sélectivement un lien hypertexte,
ainsi que pour modifier le contenu des 2 cellules de droite :
- pour le lien HT qui va sur la feuille "Sommaire" du même classeur, je
souhaiterai supprimer le lien HT et le remplacer par le simple texte
"Noms


des arrêts de travail" et remplacer dans foulée la 1ère cellule sur la
droite (même ligne) par le titre "Date de début", et la 2ème à droite
par


"Date de fin".
- pour la ligne qui contient le lien HT qui va sur la feuille "Arrêt de
travail type" du même classeur, je souhaiterai garder le lien HT
existant,


mais supprimer le contenu des 2 cellules sur la droite (même ligne).

Voici ce que j'ai écrit, mais qui ne fonctionne pas :

For Each h In Worksheets("Sommaire").Hyperlinks
If InStr(h.Name, "Sommaire") <> 0 Then
' If h.Name = "Sommaire" Then ===autres variante que j'ai
essayée


en vain
Hyperlinks.Delete
ActiveCell.Value = "Salariés en arrêt de travail"
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Value = "Début de l'arrêt de travail"
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Value = "Fin de l'arrêt de travail"
End If
If InStr(h.Name, "Arrêt de travail type") Then
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
ActiveCell.Offset(0, 1).Activate
ActiveCell.Clear
End If
Next

Est-ce que quelqu'un aurait une idée qui puisse débloquer le problème ?

Merci

Antoine