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 16/12/2011, 11h39   #1
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Par défaut A partir d'une liste de mots, gerer la mise en forme et les infobulles

Bonjour,

Dans un fichier excel, j'ai des mots dans la première colonne et leur définition dans la deuxième.

J'aimerais que lorsque l'utilisateur lance la macro, une fenêtre s'ouvre pour qu'on puisse renseigner le chemin du fichier excel en question.

Puis la macro devrait parcourir le texte et pour chaque mot identifié de la première colonne d'excel mettre en gras le mot dans word et une infobule qui donne la définition.

De plus j'aimerais avoir à la fin du document un index qui liste les mots de l'excel en indiquant les pages où c'est présent.

Est ce que c'est faisable?
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h48   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Pour deux de tes questions, c'est possible.

Pour les infobulles, ce n'est pas gérable en Word, la seule approche à laquelle je pense est le commentaire sur les mots.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h01   #3
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Déjà si c'est faisable je peux continuer à chercher comment faire. Je devrais bien finir par trouver.
Pour les info bulles on peut le faire à la main dans word en créant un signet et un lien hypertexte. Lorsqu'on choisit emplacement dans ce document pour le lien hypertexte il y a l'option Info-bulle. C'est de celle là que je parle. Le message apparait quand on passe la souris sur le mot. Et donc si j'ai bien compris, on ne peux pas faire la même chose en macro. C'est bien ça?
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h17   #4
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Pour les info-bulles, c'est la propriété screentip des liens hypertexte
Code :
debug.print Activedocument.hyperlinks(1).screentip
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h21   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254


Pas pensé au Hyperlink.
En plus ils sont écrits différemment, ce qui permet de les repérer dans le texte.
__________________
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 déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h27   #6
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Merci pour vos réponses rapides.
N'y connaissant absolument rien je suis en train de lire votre tutoriel.
Et j'ai du mal à trouver comment on parcourt un autre document mais je ne désespère pas.
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h33   #7
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
bonjour,

c'est quel type de document à parcourir Word?
Ouvrir un fichier word
Code :
1
2
dim worddoc as document
set worddoc=application.documents.open("mondocument.doc")
Le parcourir comment? Voici un exemple pour chercher les liens hypertextes et afficher leurs info-bulles?
Code :
1
2
3
4
5
 
dim lienhyper as hyperlink 
for each lienhyper in worddoc.hyperlinks 
debug.print lienhyper.screentip
Next
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h42   #8
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Le document que je voulais parcourir est un fichier excel.

La première colonne contient les mots que j'aimerais rechercher dans le fichier word
La deuxième colonne contient la définition du mot que j'aimerais mettre dans l'info bulle que je créerais pour le mot en question.

Le but est donc de parcourir le fichier excel, d'enregistrer dans une variable le premier mot et dans une autre ça définition, le rechercher dans le document word et à chaque occurrence trouver mettre une info bulle avec la définition.

Et faire ca tant qu'il y a des mots dans le fichier excel
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h55   #9
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Voici une méthode

Il faut ouvrir un classeur Excel
Après compter le nombre de lignes du classeur
Pour chaque ligne Excel
Parcourir tout le fichier Word et chercher le mot de la première colonne
Pour toutes les occurence ajouter le lien hypertexte + son info-bulle (2ème colonne)
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h58   #10
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Merci pour la méthode. Je n'avais pas pensé à essayer de compter le nombre de lignes...
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 15h11   #11
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
S'il n'y a pas de ligne vide au milieu, compter le nombre de lignes peut être
Code :
Range("A1").End(xlDown).Row
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 15h56   #12
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Voici mon premier jet de code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub RequeteClasseurFerme()
    Dim oXL As Excel.Application
 
    Dim oBook As Excel.Workbook
    Dim oSheet As Excel.Worksheet
    Dim numRows As Integer
    Dim curRow As Integer
 
    oXL = New Excel.Application
    oBook = oXL.Workbooks.Open("dictionnaire.xls")
    oXL.Visible = False
 
    ' compte les lignes
    numRows = Range("A1").End(xlDown).Row
 
    ' lecture
    For curRow = 1 To numRows
        LineIn = LineIn & oBook.ActiveSheet.Cells(curRow, 1).Value
        With ActiveDocument.Content.Find
            Do While .Execute(FindText:=LineIn$, Format:=False, MatchCase:=False, MatchWholeWord:=False) = True
                With Selection.Find
                    .Color = wdColorRed
                End With
            Loop
        End With
    Next curRow
 
    oXL.Workbooks.Close ("dictionnaire.xls")
    oBook = Nothing
    oXL = Nothing
End Sub
Quand j'essaye de le compiler pour voir ce que ça donne j'ai une erreur de compilation: Type défini par l'utilisateur non défini

Pourriez vous m'aider?
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h02   #13
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
LineIn correspond à quoi?

Citation:
numRows = Range("A1").End(xlDown).Row
C'est mieux dans le cas où il y a plusieurs feuilles dans ton classeur de préciser la feuille et le classeur.
Code :
numrows=obook.worksheets("nom de la feuille").range(A1).End(xlDown).Row
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h05   #14
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Normalement LineIn doit contenir le contenu de la cellule et c'est du texte et j'ai oublier de la définir ....

J'ai donc rajouté mais l'anomalie est toujours présente. J'ai l'impression que c'est
Code :
Dim oXL As Excel.Application
qu'il aime pas.

PS: J'ai apporté la précision sur le nom de la feuille
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h08   #15
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
As-tu ajouté la référence au projet Excel?
Outils->Références->Microsoft Object xx.0 Object library où xx correspond à la version d'Excel (11 pour 2003)
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h10   #16
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Non je l'avais pas fait. Ca avance ca avance.

Maintenant c'est le
Code :
oXL = New Excel.Application
qu'il aime pas mais il me semble avoir vu dans une discussion un autre moyen de créer un objet Excel application il me reste plus qu'à le retrouver
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h16   #17
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Citation:
Envoyé par Nilaina Voir le message
La référence au projet excel???? Ne sachant pas ce que c'est je dirais que je l'ai surement pas mise. On fait ça comment?
Elle permet d'utiliser les objets Excel. La plupart du temps, c'est une DLL qui est liée au projet. Elle permet de retrouver pour les objets, les propriétés et méthodes associées avec l'IntelliSense.
Outils-> Références-> Microsoft Excel xx.0 Object Library

Il faut rajouter un set devant pour instancier une instance d'Excel
Code :
set oXL = New Excel.Application
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h22   #18
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Merci

Le souci qui me reste est comment récupérer le mot dans le document word qu'il a trouvé

Je penser faire comme ça
Code :
1
2
3
With Selection.Find
                    .Color = wdColorRed
                End With
Mais .Color ne vas pas

Je pensais les mettre en rouge avant d'ajouter ensuite le lien pour l'info bulle. (d’ailleurs j'ai pas trouver comment indiquer le texte qu'il faut mettre dans l'info bulle).
Mais un souci à la fois....
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h24   #19
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Peut-être
Code :
selection.Find.replacement.Font.Color
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h33   #20
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 1
Points : 1
Il me l'accepte mais j'ai un souci dans l'exécution (erreur 91) au niveau de
Code :
oBook = oXL.Workbooks.Open("C:\dictionnaire.xls")
Nilaina est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h45.


 
 
 
 
Partenaires

Hébergement Web