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 :

le contraire de sauter une ligne avec des mots [WD-2003]


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut le contraire de sauter une ligne avec des mots
    Bonjour,

    SVP je voudrais savoir s'il existe une macro word qui permette de faire la chose suivante:

    1. avant:

    Monsieur
    Claude
    Jacques

    2. après:

    Monsieur Claude Jacques

    Pour le 1. un espace est déjà présent après chaque mot.

    Merci d'avance
    J.

  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,

    On pourrait le faire, mais le tout est de savoir dans quelle mesure tu veux l'appliquer.

    Les paragraphes sont-ils toujours au même endroit ?
    Combien de fois par document ce changement doit-il être appliqué ?

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Re-bonjour,

    merci pour votre réponse.

    Non ces paragraphes ne sont pas toujours au même endroit et sont entrecoupés d'autres types de paragraphes (genre bloc de textes) tout au long de documents word de 300 pages.

    les seuls mots qui reviennent donc régulièrement sont donc " monsieur" et "madame" par exemple. mais comment donc aligner les 2 mots qui suivent (pas le même nombre de lettres) en face de "monsieur" par exemple.

    Merci d'avance pour votre aide
    J.

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    re-bonjour encore,

    pour le nombre de fois je ne sais pas, il faudrait peut-être que je fasse un do loop avec reconnaissance des caractères qui déterminent l'alignement comme "monsieur" ou "madame" ?

    thanks

  5. #5
    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,

    Si la structure est toujours la même dans le texte on peut faire une boucle sur tous les paragraphes, et lorsque l'on rencontre un paragraphe ne contenant que Monsieur ou Madame, obtenir le changement.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci mais ce serait quoi SVP la formule pour aligner donc les mots ?

    Merci beaucoup d'avance
    J.

  7. #7
    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,

    Essaie ce code pour voir ?

    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
     
    Sub TestAlignementMots()
    Dim para As Paragraph
     
    For Each para In ActiveDocument.Paragraphs
        If para.Range.Words.Count = 2 And para.Range.Words(1) = "Monsieur" Then
            para.Range.Select
            Selection.EndKey Unit:=wdLine
        Selection.TypeText Text:=" "
        Selection.Delete Unit:=wdCharacter, Count:=1
        Selection.EndKey Unit:=wdLine
        Selection.TypeText Text:=" "
        Selection.Delete Unit:=wdCharacter, Count:=1
        ElseIf para.Range.Words.Count = 2 And para.Range.Words(1) = "Madame" Then
        para.Range.Select
            Selection.EndKey Unit:=wdLine
        Selection.TypeText Text:=" "
        Selection.Delete Unit:=wdCharacter, Count:=1
        Selection.EndKey Unit:=wdLine
        Selection.TypeText Text:=" "
        Selection.Delete Unit:=wdCharacter, Count:=1
        End If
    Next para
    End Sub

  8. #8
    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,

    Tu peux aussi utiliser les mécanismes de rechercher/remplacer standards fournis par Word que tu n'as qu'à exécuter en mode enregistrement de macros.

    @+

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    merci à tous pour vos suggestions.
    j'ai écris cette macro qui me permet d'effectuer ce que je voulais (ref; ci-dessous), mais le probleme c'est toujours de stopper à la fin du document. même en utilisant le nombre de page, ça foire à la fin (because y a repagination avec ces sauts de lignes qui disparaissent après les mots en questions):

    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
    Sub Monsieur()
     
    Do Until Selection.Information(wdActiveEndPageNumber) = x
     
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "Monsieur"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute
        Selection.EndKey Unit:=wdLine
        Selection.Delete Unit:=wdCharacter, Count:=1
        Selection.EndKey Unit:=wdLine
        Selection.TypeText Text:=" "
        Selection.Delete Unit:=wdCharacter, Count:=1
     
     
    x = Selection.Information(wdNumberOfPagesInDocument)
     
    Loop
     
    End Sub

  10. #10
    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,

    Et le code que j'ai posté, il donne quoi ?

  11. #11
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    bonjour,
    Merci mais ça n'aavait pas fonctionné. Rien ne se passait à l'execution de la macro.
    J'ai essayé de modifier le "para" mais je n'ai pas réussi.

    Merci
    Bien cordialement
    J.

  12. #12
    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,

    La fin des lignes est marquée avec un symbole de paragraphe ou par un retour à la ligne ?
    Si tu pouvais mettre un morceau de fichier sur le forum pour voir comment il est construit ?

  13. #13
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    à la fin des lignes, c'est à chaque fois un retour à la ligne.

    Merci d'avance
    J.

  14. #14
    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,

    Je comprend pourquoi la macor ne fonctionne pas, elle se base sur le paragraphe.

    Il faut travailler sur les lignes.

    Je vais regarder pour modifier mon code.

  15. #15
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour.
    Merci d'avance
    J.

  16. #16
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    OK maintenant j'utilise la macro ci-dessous qui marche très bien. Sauf que je dois préciser manuellement le nombre de mots en question (valeur du x).

    SVP connaissez vous un moyen de calculer automatiquement le nombre de mot ?

    Merci d'avance
    J.



    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
    Sub AXML9_Madame()
     
    Do Until x = 92
     
    Selection.Find.ClearFormatting
    With Selection.Find
    .Text = "Madame"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.EndKey Unit:=wdLine
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.EndKey Unit:=wdLine
    Selection.TypeText Text:=" "
    Selection.Delete Unit:=wdCharacter, Count:=1
     
     
    x = x + 1
     
     
    Loop
     
     
    End Sub

  17. #17
    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
    SVP connaissez vous un moyen de calculer automatiquement le nombre de mot ?
    Le nombre de mots de quoi ?
    Du document, du paragraphe, de la page, de la sélection, ...

  18. #18
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Ah oui, j'avais oublié de préciser, il s'agit d'un document word, et en fait x est le nombre de mot "Madame" dans l'ensemble du document.

    Merci Heureux-oli
    Jessica

  19. #19
    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
    Dans ce cas, tu dois en plus faire une boucle de rechercher sur la totalité du document et incrémenter ton X à chaque passage.

  20. #20
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Merci, je vais essayer ça.

    J.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Suppression d'une ligne avec des colonnes vides
    Par fatima dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/11/2010, 14h38
  2. dessiner une ligne avec des point de coordonnées doubles
    Par tanguy.L dans le forum Débuter
    Réponses: 2
    Dernier message: 11/11/2008, 23h16
  3. Compléter une ligne avec des petits points "à la word"
    Par polemoss dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/05/2007, 11h38
  4. comment sauter une ligne avec Alert()
    Par sagitarium dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/05/2006, 17h35
  5. sauter une ligne avec Layout...
    Par youp_db dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 16/12/2005, 19h54

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