IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

VBA Word recherche numéro paire/impaire + mis en forme


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut VBA Word recherche numéro paire/impaire + mis en forme
    Bonjour,

    Je suis complètement novice en matière de VBA, c'est pourquoi je me permets de venir vous demander de l'aide pour un problème dans Word2010.
    A la fin d'un publipostage en masse, je me retrouve avec un document Word comprenant des étiquettes du style 12AB0015, 13AC0016, 12AC0017, etc. jusque parfois ....3000.

    Il faudrait que sur les 4 derniers caractères, j'arrive à repérer les chiffres impaires et leur flanquer par exemple un fond gris.

    j'ai essayé avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        Selection.Find.Replacement.Font.Color = RGB(50, 200, 100)
        With Selection.Find
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
     
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Mais alors je dois avoir 1500 fois la même chose, ce qui n'est pas envisageable

    D'avance un tout grand merci à la personne qui pourra m'aider

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Il contient quoi d'autre ton document ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    La fusion finale ne contient que les noms d'étiquettes
    Exemple : Etivide.DOC

    Merci beaucoup

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Voilà un bout de code, qui n'est pas complet, mais qui repère les "pairs" dans ton document.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub TestOli()
    Dim myWord
     
    For Each myWord In ActiveDocument.Words
    'Test de la ongueur
    If Len(myWord) > 4 Then
    'Utilisation de la fonction mod pour déterminer si le dernier chiffre est pair
    If (Right(myWord, 1) Mod 2) = 0 Then
        Debug.Print myWord
    End If
    End If
     
    Next myWord
     
     
    End Sub
    Le principe est simple, je fais une boucle sur tout les mots (Words) du document, je ne traite que ceux qui ont plus de 4 caractères, les autres sont éliminés.
    S'ils font plus de 4 caractères, je fais une extraction du dernier caractère, qui dans ton cas est un chiffre.
    J'utilise la fonction mod (modulo) cette fonction renvoie le reste d'une division qui ici est par 2 pour les pairs. Si le reste est 0, c'est un chiffre pair.
    Je l'affiche dans la fenêtre d'exécution avec le debug.Print

    A toi de faire le traitement que tu souhaites.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Super! Grand merci pour votre aide

    Mais une fois que le programme a trouvé les impaires grâce au if.. je dois insérer un With avec par exemple .BackgroundPatternColor = wdColorGray10 après le Then..?

    Désolé pour cette question surement un peu idiote mais je bloque

Discussions similaires

  1. [VBA Word] Recherche des liens hypertexte
    Par sirkim dans le forum VBA Word
    Réponses: 1
    Dernier message: 13/07/2007, 14h15
  2. [VBA] Word Rechercher
    Par sygale dans le forum VBA Word
    Réponses: 3
    Dernier message: 05/12/2006, 13h50
  3. [VBA-WORD] Recherche et ajout d'objet
    Par Isabella dans le forum VBA Word
    Réponses: 2
    Dernier message: 19/09/2006, 09h59
  4. [PL/SQL - PAIR/IMPAIR] Recherche fonction
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 06/02/2006, 14h47
  5. VBA Word - Rechercher Italic dans notes
    Par wouebmaster dans le forum VBA Word
    Réponses: 2
    Dernier message: 30/12/2005, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo