Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" <jchfer@wanadoo.fr> a écrit dans le message de news: %23XKRMDDIFHA.2704@tk2msftngp13.phx.gbl...
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" <jchfer@wanadoo.fr> a écrit dans le message de news: %23XKRMDDIFHA.2704@tk2msftngp13.phx.gbl...
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Je n'ai pas fait l'expérience, mais ceci pourrait fonctionner !
A ) Tu utilises un "Nom" (menu / insertion / nom) , ou une cellule de ton classeur, où tu vas enregistrer le chemin et
le nom du classeur actuel avant que tu le fermes.
B ) Dans le ThisWorkbook du classeur, tu ajoutes une procédure à l'ouverture de ce dernier :
C ) Et dans cette procédure, tu reprends essentiellement la même procédure que je t'ai donnée (enlève la copie des
feuilles et l'enregistrement du classeur) , il s'agira de la modifier légèrement pour substituer non seulement le nom du
fichier mais aussi le chemin du fichier pour lien hypertexte.
D ) Et tu rajoutes une ligne de code, pour mettre à jour la "cellule" ou le "Nom" avec la nouvelle adresse du fichier.
'---------------------------
Private Sub Workbook_Open()
'Le code ....
End Sub
'---------------------------
Salutations!
"bourby" a écrit dans le message de news: O$nb$
bonsoir,
Merci MichDenis.
ton code m'a tout l'air de correspondre parfaitement à la question
posée; je l'essayerai demain au bureau.
Mais ne peut-on pas donner dès le départ des adresses relatives pour les
liens hypertexte? En effet, quand je vais envoyer le fichier à mes
collègues, chacun va le mettre sur son espace disque, et le pb va
recommencer???
D'avance merci pour tes lumières.
Bourby
MichDenis wrote:Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Je n'ai pas fait l'expérience, mais ceci pourrait fonctionner !
A ) Tu utilises un "Nom" (menu / insertion / nom) , ou une cellule de ton classeur, où tu vas enregistrer le chemin et
le nom du classeur actuel avant que tu le fermes.
B ) Dans le ThisWorkbook du classeur, tu ajoutes une procédure à l'ouverture de ce dernier :
C ) Et dans cette procédure, tu reprends essentiellement la même procédure que je t'ai donnée (enlève la copie des
feuilles et l'enregistrement du classeur) , il s'agira de la modifier légèrement pour substituer non seulement le nom du
fichier mais aussi le chemin du fichier pour lien hypertexte.
D ) Et tu rajoutes une ligne de code, pour mettre à jour la "cellule" ou le "Nom" avec la nouvelle adresse du fichier.
'---------------------------
Private Sub Workbook_Open()
'Le code ....
End Sub
'---------------------------
Salutations!
"bourby" <jchfer@wanadoo.fr> a écrit dans le message de news: O$nb$eDIFHA.3628@TK2MSFTNGP10.phx.gbl...
bonsoir,
Merci MichDenis.
ton code m'a tout l'air de correspondre parfaitement à la question
posée; je l'essayerai demain au bureau.
Mais ne peut-on pas donner dès le départ des adresses relatives pour les
liens hypertexte? En effet, quand je vais envoyer le fichier à mes
collègues, chacun va le mettre sur son espace disque, et le pb va
recommencer???
D'avance merci pour tes lumières.
Bourby
MichDenis wrote:
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" <jchfer@wanadoo.fr> a écrit dans le message de news: %23XKRMDDIFHA.2704@tk2msftngp13.phx.gbl...
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Je n'ai pas fait l'expérience, mais ceci pourrait fonctionner !
A ) Tu utilises un "Nom" (menu / insertion / nom) , ou une cellule de ton classeur, où tu vas enregistrer le chemin et
le nom du classeur actuel avant que tu le fermes.
B ) Dans le ThisWorkbook du classeur, tu ajoutes une procédure à l'ouverture de ce dernier :
C ) Et dans cette procédure, tu reprends essentiellement la même procédure que je t'ai donnée (enlève la copie des
feuilles et l'enregistrement du classeur) , il s'agira de la modifier légèrement pour substituer non seulement le nom du
fichier mais aussi le chemin du fichier pour lien hypertexte.
D ) Et tu rajoutes une ligne de code, pour mettre à jour la "cellule" ou le "Nom" avec la nouvelle adresse du fichier.
'---------------------------
Private Sub Workbook_Open()
'Le code ....
End Sub
'---------------------------
Salutations!
"bourby" a écrit dans le message de news: O$nb$
bonsoir,
Merci MichDenis.
ton code m'a tout l'air de correspondre parfaitement à la question
posée; je l'essayerai demain au bureau.
Mais ne peut-on pas donner dès le départ des adresses relatives pour les
liens hypertexte? En effet, quand je vais envoyer le fichier à mes
collègues, chacun va le mettre sur son espace disque, et le pb va
recommencer???
D'avance merci pour tes lumières.
Bourby
MichDenis wrote:Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Je n'ai pas fait l'expérience, mais ceci pourrait fonctionner !
A ) Tu utilises un "Nom" (menu / insertion / nom) , ou une cellule de ton classeur, où tu vas enregistrer le chemin et
le nom du classeur actuel avant que tu le fermes.
B ) Dans le ThisWorkbook du classeur, tu ajoutes une procédure à l'ouverture de ce dernier :
C ) Et dans cette procédure, tu reprends essentiellement la même procédure que je t'ai donnée (enlève la copie des
feuilles et l'enregistrement du classeur) , il s'agira de la modifier légèrement pour substituer non seulement le nom
du
fichier mais aussi le chemin du fichier pour lien hypertexte.
D ) Et tu rajoutes une ligne de code, pour mettre à jour la "cellule" ou le "Nom" avec la nouvelle adresse du fichier.
'---------------------------
Private Sub Workbook_Open()
'Le code ....
End Sub
'---------------------------
Salutations!
"bourby" a écrit dans le message de news: O$nb$
bonsoir,
Merci MichDenis.
ton code m'a tout l'air de correspondre parfaitement à la question
posée; je l'essayerai demain au bureau.
Mais ne peut-on pas donner dès le départ des adresses relatives pour les
liens hypertexte? En effet, quand je vais envoyer le fichier à mes
collègues, chacun va le mettre sur son espace disque, et le pb va
recommencer???
D'avance merci pour tes lumières.
Bourby
MichDenis wrote:Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Je n'ai pas fait l'expérience, mais ceci pourrait fonctionner !
A ) Tu utilises un "Nom" (menu / insertion / nom) , ou une cellule de ton classeur, où tu vas enregistrer le chemin et
le nom du classeur actuel avant que tu le fermes.
B ) Dans le ThisWorkbook du classeur, tu ajoutes une procédure à l'ouverture de ce dernier :
C ) Et dans cette procédure, tu reprends essentiellement la même procédure que je t'ai donnée (enlève la copie des
feuilles et l'enregistrement du classeur) , il s'agira de la modifier légèrement pour substituer non seulement le nom
du
fichier mais aussi le chemin du fichier pour lien hypertexte.
D ) Et tu rajoutes une ligne de code, pour mettre à jour la "cellule" ou le "Nom" avec la nouvelle adresse du fichier.
'---------------------------
Private Sub Workbook_Open()
'Le code ....
End Sub
'---------------------------
Salutations!
"bourby" <jchfer@wanadoo.fr> a écrit dans le message de news: O$nb$eDIFHA.3628@TK2MSFTNGP10.phx.gbl...
bonsoir,
Merci MichDenis.
ton code m'a tout l'air de correspondre parfaitement à la question
posée; je l'essayerai demain au bureau.
Mais ne peut-on pas donner dès le départ des adresses relatives pour les
liens hypertexte? En effet, quand je vais envoyer le fichier à mes
collègues, chacun va le mettre sur son espace disque, et le pb va
recommencer???
D'avance merci pour tes lumières.
Bourby
MichDenis wrote:
Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" <jchfer@wanadoo.fr> a écrit dans le message de news: %23XKRMDDIFHA.2704@tk2msftngp13.phx.gbl...
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby
Bonjour Bourby,
Je n'ai pas fait l'expérience, mais ceci pourrait fonctionner !
A ) Tu utilises un "Nom" (menu / insertion / nom) , ou une cellule de ton classeur, où tu vas enregistrer le chemin et
le nom du classeur actuel avant que tu le fermes.
B ) Dans le ThisWorkbook du classeur, tu ajoutes une procédure à l'ouverture de ce dernier :
C ) Et dans cette procédure, tu reprends essentiellement la même procédure que je t'ai donnée (enlève la copie des
feuilles et l'enregistrement du classeur) , il s'agira de la modifier légèrement pour substituer non seulement le nom
du
fichier mais aussi le chemin du fichier pour lien hypertexte.
D ) Et tu rajoutes une ligne de code, pour mettre à jour la "cellule" ou le "Nom" avec la nouvelle adresse du fichier.
'---------------------------
Private Sub Workbook_Open()
'Le code ....
End Sub
'---------------------------
Salutations!
"bourby" a écrit dans le message de news: O$nb$
bonsoir,
Merci MichDenis.
ton code m'a tout l'air de correspondre parfaitement à la question
posée; je l'essayerai demain au bureau.
Mais ne peut-on pas donner dès le départ des adresses relatives pour les
liens hypertexte? En effet, quand je vais envoyer le fichier à mes
collègues, chacun va le mettre sur son espace disque, et le pb va
recommencer???
D'avance merci pour tes lumières.
Bourby
MichDenis wrote:Bonjour Bourby,
Essaie ceci :
Ton nouveau classeur doit être enregistré pour modifier les adresses des liens hypertexte
'-------------------------------
Sub Copie_2Feuilles()
Dim Arr(), Wk As Workbook
Dim H As Hyperlink
Dim Adr As String, SonNom As String
'Nom du classeur actuel
Adr = ThisWorkbook.Name
'Le nom des feuilles à copier
Arr = Array("Feuil1", "Feuil2")
Worksheets(Arr).Copy
Set Wk = ActiveWorkbook
'Enregistrer le nouveau le classeur
SonNom = "Hypert2.xls"
Wk.SaveAs ThisWorkbook.Path & "" & SonNom
'Modifier l'adresse de chaque lien pour qu'il
'pointe sur le classeur lui-même...
For Each sh In Wk.Worksheets
For Each H In sh.Hyperlinks
H.Address = Replace(H.Address, Adr, Wk.Name)
Next
Next
Set H = Nothing: Set Wk = Nothing
End Sub
'-------------------------------
Salutations!
"bourby" a écrit dans le message de news: %
bonsoir,
Windows XP et Excel 2003.
Dans un classeur comportant des claculs un peu compliqués, je crée par
macro, afin de les communiquer à des collègues, 2 feuilles de synthèse;
en gros une avec les données, l'autre avec les résultats; c'est plus
facile à comprendre, et nettement moins volumineux, puisqu'il n'y a
aucune formule.
Les données et les résultats sont reliés par des liens hypertexte créés
par la même macro.
tant que suis dans le fichier d'origine, tout va bien. Mais quand je
copie ces 2 feuilles dans un nouveau classeur (par macro), j'ai un
message d'erreur genre 'liaison invalide'. Quand je regarde les liens
hypertexte, ils continuent de pointer sur le chemin complet du fichier
d'origine (depuis le disque dur), donc ça ne marche plus.
Comment puis-je conserver des liens hypertexte fonctionnels lorsque je
copie mes 2 feuilles dans un nouveau fichier?
D'avance merci.
Bourby