Bonjour à tous
J'ai un document Word dans lequel j'ai beaucoup de liaisons et de renvois. J'ai besoin d'avoir certain renvois dans une police différente de mon texte principale, et comme elles sont toutes identiques, j'utilise des macros pour optimiser la tâche.
Comme je travail toujours sur les mêmes renvois, j'ai créé des ojets collections pour éviter de toujours inclure des conditions (If ... And If) à chaque fois que je créé une boucle.
J'ai procédé de la façon suivante :
Citation :
Dim ChercheLiaison As Field
Dim Renvois As New Collection
For Each ChercheLiaison In ActiveDocument.Fields
If InStr(ChercheLiaison.Code.Text, "LINK" ) = 0 Then
Renvois.Add ChercheLiaison
End If
Next ChercheLiaison
|
J'ai donc une variable "ChercheLiaison" qui parcours l'intégralité de toutes les liaisons, et lorsque celles-ci ne sont pas des liaisons vers un autre documents, elles sont enregistré dans la collection "Renvois". Comme ça, dès que je veux travailler sur cette collection je n'ai plus qu'à taper :
Citation :
For Each ChercheLiaison In Renvois
ChercheLiaison.Select
Selection.Font.Bold = True
Next ChercheLiason
|
Cet exemple sélectionne toutes les liaisons contenues dans la collection "Renvois" et les mets en gras.
Dans mes macros, j'ai créé plusieurs collections suivants les différentes utilisations que je voulais faire, et à un moment j'ai besoin de sélectionner TOUTES mes liaisons (celles contenues dans "Renvois" ) SAUF les liaisons vers ma bibliographie. Or, dans ma macro j'ai déjà créé une collection "Biblio" qui contient tous les renvois vers ma bibliographie.
Je voudrais donc utiliser la commande "Remove" (toujours afin d'éviter l'emploi répétitif des "If ... And If" que je dois utiliser dans chaque boucle "For ... Next" ) afin de supprimer les éléments de la collection "Biblio" qui sont contenus dans la collection "Renvois".
J'ai essayé tout simplement :
Citation :
Renvois.Remove Biblio
|
et
Citation :
For Each ChercheLiaison In Biblio
Renvois.Remove ChercheLiaison
Next ChercheLiason
|
Malheureusement, dans les deux cas j'ai l'erreur "Erreur d'éxécution '13' : Incompatibilité de Type", et comme l'aide sur cette fonction est plus que dérisoire dans Microsoft Visual Basic, j'ai besoin de votre aide pour savoir comment écrire correctement cette fonction et pouvoir supprimer ma collection "Biblio" de ma collection "Renvois".
Merci à tous
Message édité par mistoufle le 22-11-2006 à 20:38:28