Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2011, 11h40   #1
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Par défaut Reporter un lien hypertexte

Bonjour,

Je voudrai rechercher s'il existe un lien hypertexte dans un fichier, et si c'est le cas, rechercher si je ne retrouve pas ailleurs dans le fichier l'expression qui le contient pour lui attribuer le même lien hypertexte.


Code :
1
2
3
4
5
6
Blablabla..........    Expression..............Blablabla..........
...............Blablabla..........
..................      Expression (avec lien hypertexte)     ..........
...............Blablabla..........
Blablabla..........       Expression..............Blablabla..........
...............Blablabla..........

Résultat à obtenir :



Code :
1
2
3
4
5
6
Blablabla..........    Expression (avec lien hypertexte)..............Blablabla..........
...............Blablabla..........
..................      Expression (avec lien hypertexte)     ..........
...............Blablabla..........
Blablabla..........       Expression (avec lien hypertexte)..............Blablabla..........
...............Blablabla..........

Auriez-vous une solution simple à cela? Merci de votre aide.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 12h11   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 338
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 338
Points : 29 246
Points : 29 246
Salut,

en Word, les liens Hypertexte sont des objets.
On peut donc compter combien d'objets peuplent la collection.

Code :
activedocument.Hyperlinks.Count
Partant de cet état, on peut faire une boucle sur tous ces objets pour les récupérer et les mettres dans un tableau.

Ensuite, pour chaque élément du tableau, faire une boucle de recherche et de remplacement pour mettre en place les Hyperlinks.

Il faut passer par un stockage pour éviter de modifier la collection lors de la première boucle.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 12h19   #3
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Merci du renseignement. Avant de pouvoir récupérer le lien, la première étape que j'aimerai franchir, ce serait de repérer l'expression qui contient ce lien.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 20h52   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 338
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 338
Points : 29 246
Points : 29 246
Salut,

Une boucle sur les Objets.

Code :
1
2
3
4
5
Dim hp As Hyperlink
 
For each hp in ActiveDocument.Hyperlinks
 
Next hp
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 19h32   #5
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Bonsoir,

Merci pour la proposition. Entre-temps, je suis arrivé à mettre le lien entre deux balises, ce qui me permet de le sélectionner.

J'aimerai savoir comment faire en VBA pour :

1) Copier le mot avec son lien
2) Affichez la boîte de dialogue Recherche-Remplace :
3) Recherche : le mot
4) Remplacer : ^c (le code ^c est le contenu du presse-papiers. On a donc remplacé le mot par ce qu'on avait copié au préalable)
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 20h08   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 338
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 338
Points : 29 246
Points : 29 246
Salut,

Citation:
Copier le mot avec son lien
Il faut passer par l'objet.
Code :
1
2
activedocument.Hyperlinks(1).Address
activedocument.Hyperlinks(1).TextToDisplay

Pour affichier la boîte de dialogue Remplacer de Word, c'est :

Code :
1
2
 
Application.Dialogs(wdDialogEditReplace).Show
Mais, travailler en VBA avec les boîtes de dialogue prédéfinies n'est pas facile.
Surtout avec celle-là. L'utilisation de la fonction dans le code est bien plus simple.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 06h23   #7
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Bonjour,

Merci, effectivement je ne crois pas que je doive utiliser la fonction Application.Dialogs, ça me paraît pas être le plus simple.

En fait, pour l'instant, je sais faire 2 choses :

- Sélectionner une expression comprise entre 2 balises
- Attribuer un lien hypertexte à cette expression

Le point le plus important, c'est de faire passer l'expression sélectionnée en variable pour pouvoir la rechercher dans tout le document. C'est ce que je sais pas faire. Dès que j'aurai la solution, mon problème sera pas loin d'être résolu.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h01.


 
 
 
 
Partenaires

Hébergement Web