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 :

probleme de creation macro sous word


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut probleme de creation macro sous word
    bonjour à tous


    voici un exemple de fichier .txt que je recois chaque soir :

    Magasin : 87 ARRAS Ernestale

    Magasin Num colis Poids NbPieces
    ---------------------------------------------------
    87 103108 7.144 18
    87 402903 4.3 13
    87 402904 7.75 21
    87 601079 1 0
    87 601080 1 0
    87 601081 1 0
    87 601082 1 0
    87 601083 1 0

    Nb colis: 8 Nb pieces: 52 pour 24.194 kg

    Magasin : 138 AMIENS-GLISY Rond-Point

    Magasin Num colis Poids NbPieces
    ---------------------------------------------------
    138 103156 8.595 23
    138 403087 7.6 22
    138 403088 4.7 14
    138 601184 99 0

    Nb colis: 4 Nb pieces: 59 pour 119.895 kg

    mon probleme est le suivant :

    comment creer une macro sous word qui me selectionne chaque magasin, m'imprime les numero de colis du magasin sur mon bordereau ainsi que le nb de colis et le poids.je n'ai pas de probleme sous excel mais je cale sous word

    merci d'avance à tous

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut,

    Je travaille dessus (mais je suis assez pris en ce moment) ==> difficile si c'est ultra-urgent.

  3. #3
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut,

    Voici la macro
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    Sub MiseEnFormeMagasin()
        '// On recherche les occurrences du mot "Magasin" suivi d'un espace, d'un 2 points, d'un espace et d'un nombre (peut importe lequel)
        Selection.HomeKey Unit:=wdStory
        With Selection.find
            .Text = "Magasin^w:^w^#"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.find.Execute
        While Selection.find.Found
            '// Tant qu'on en a trouvé, on effectue le traitement
     
            '// 1°) On recupère le numéro du magasin que l'on stocke dans la variable "aNumeroDeMagasin"
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveLeft Unit:=wdCharacter, Count:=1
            Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
            aNumeroDeMagasin = LTrim$(Str$(Selection.Range))
     
            '// 2°) On va rechercher toutes les lignes (consécutives) qui commence par le numéro du magasin
            Selection.HomeKey Unit:=wdLine
            Selection.MoveDown Unit:=wdLine, Count:=2
            Selection.MoveDown Unit:=wdLine, Count:=3, Extend:=wdExtend
            While InStr(Selection.Paragraphs(Selection.Paragraphs.Count), aNumeroDeMagasin) = 1
                Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
            Wend
            Selection.MoveUp Unit:=wdParagraph, Count:=1, Extend:=wdExtend
     
            '// 3°) On va transformer ce pseudo-tableau en tableau pour Word en remplaçant les espaces par des tabulations
            '//    Attention au format du document d'entrée, s'il devait contenir des espaces dans ses pseudo-cases, il te faudra adpater la macro
            Selection.find.ClearFormatting
            Selection.find.Replacement.ClearFormatting
            With Selection.find
                .Text = "^w"
                .Replacement.Text = "^t"
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            Selection.find.Execute Replace:=wdReplaceAll
            Selection.ConvertToTable Separator:=wdSeparateByTabs, NumColumns:=5, NumRows:=Selection.Paragraphs.Count, Format:=wdTableFormatNone, _
                ApplyBorders:=True, ApplyShading:=True, ApplyFont:=True, ApplyColor:=True, ApplyHeadingRows:=True, ApplyLastRow:=False, ApplyFirstColumn:=True, _
                ApplyLastColumn:=False, AutoFit:=True, AutoFitBehavior:=wdAutoFitFixed
            Selection.MoveLeft Unit:=wdCharacter, Count:=1
            Selection.MoveDown Unit:=wdLine, Count:=1
            Selection.SelectRow
            Selection.Rows.Delete
            Selection.Tables(1).Select
            Selection.MoveRight Unit:=wdCharacter, Count:=1
            Selection.MoveDown Unit:=wdParagraph, Count:=2
     
            '// 4°) On insère un saut de page pour séparer les différents magasins à l'impression
            Selection.InsertBreak Type:=wdPageBreak
     
            '// 5°) On relance la recherche pour boucler
            With Selection.find
                .Text = "Magasin^w:^w^#"
                .Replacement.Text = ""
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            Selection.find.Execute
     
        Wend
     
        '// On supprime le dernier saut de page pour économiser une page (qui ne sert à rien) ==> penser au développement durable
        Selection.TypeBackspace
    End Sub
    @+

Discussions similaires

  1. [WD-2003] Macro sous word ne fonctionne pas sur tous les PC
    Par yannick113 dans le forum VBA Word
    Réponses: 1
    Dernier message: 03/01/2011, 16h10
  2. probleme de creation des sous dossiers avec mkdir
    Par abdeladim7 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/04/2010, 19h04
  3. comment faire une macro sous word
    Par Debutante-Excel dans le forum VBA Word
    Réponses: 4
    Dernier message: 16/10/2009, 14h27
  4. creation macro sous ACCESS
    Par ericdev67 dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/03/2008, 07h22
  5. macro sous word XP
    Par delamarque dans le forum VBA Word
    Réponses: 4
    Dernier message: 05/12/2005, 10h15

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