Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1217 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  "Remove" dans Microsoft Visual Basic

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"Remove" dans Microsoft Visual Basic

n°1479958
mistoufle
Tout problème a une solution
Posté le 22-11-2006 à 15:13:22  profilanswer
 

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
mood
Publicité
Posté le 22-11-2006 à 15:13:22  profilanswer
 

n°1480429
jpcheck
Pioupiou
Posté le 23-11-2006 à 10:07:34  profilanswer
 

http://www.microsoft.com/france/ms [...] lCNET.mspx
voir paragraphe implémentation de la fonction remove :)

n°1480611
mistoufle
Tout problème a une solution
Posté le 23-11-2006 à 13:43:49  profilanswer
 

Désolé, mais cet exemple ne peux pas me servir, dans ce cas un index (item) est utilisé pour préciser qu'il faut supprimer le DERNIER bouton du tableau.
 
Or, moi je ne connais pas les positions des valeurs à supprimer dans ma collection. Pour utiliser cet exemple, il faudrait que je retrouve les positions des valeurs dans la collection, avant de les supprimer, je pense qu'il doit y avoir beaucoup plus simple.


Message édité par mistoufle le 23-11-2006 à 13:44:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  "Remove" dans Microsoft Visual Basic

 

Sujets relatifs
Option de compilation 16 bits sur Visual .NET ?[Visual Studio 2005] Changer de langage
[Visual studio] conversion de vs 2005->2003Erreur dll dans Visual Basic
[Visual C++] Comment forcer une priorité aux répertoires d'include ?Avantages de Visual Studio 2005 Standard sur Visual C# 2005 Express
Visual Studio : récuperer le contenu d'un url (~wget)Visual Studio : Placer un outil dans le FORM
Visual Studio 6.0 et XP64 
Plus de sujets relatifs à : "Remove" dans Microsoft Visual Basic


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR