ActiveWorkbook VBA excel

Fermé
Nuanch - 1 juin 2012 à 15:43
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 1 juin 2012 à 19:15
Bonjour, je cherche a executer une fonction sur la fenêtre active a l'aide d'une macro. Pour mieux m'expliquer je vous montre le code :

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

Sub Macro3()
wbk = "\link\Page_de_garde.xlsx"
Workbooks.Open (wbk)
Call ReplaceStrInHyperLink(" ", "_")
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub


Alors ce code va ouvrir le le fichier cible: page_de_garde.xlsx et doit executer une fonction qui remplace tous les espaces par des underscores, sauvegarder, et fermer. Le souci c'est qu'il n'execute pas la fonction ReplaceStrInHyperLink sur la fenêtre active, mais sur la feuille qui contient la macro. Comment faire pour résoudre ce problême ? J'espère me faire comprendre correctement.
A voir également:

1 réponse

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
Modifié par eriiic le 1/06/2012 à 19:17
Bonjour,

essaie avec :
For Each lnk In ActiveSheet.Hyperlinks
Mais ça sera la feuille active au moment de la fermeture du fichier. Il vaut mieux peut-être la désigner : in worksheets("Feuil3").Hyperlinks

eric
0