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 :

Problème Macro publipostage


Sujet :

VBA Word

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut Problème Macro publipostage
    Bonjour à tous

    Est ce que quelqu'un peut m'aider svp à corriger la macro ci-dessous ? :
    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 couper_sections()
       Application.Browser.Target = wdBrowseSection
     
       For i = 1 To ((ActiveDocument.Sections.Count) - 1)
     
          'Selectionne et copie le texte de la section dans le presse-papier
          ActiveDocument.Bookmarks("\Section").Range.Copy
     
          'Crée un nouveau document et colle le texte du presse-papier
          Documents.Add
          Selection.Paste
     
       ' Retire le saut de section qui a été copié
          Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
          Selection.Delete Unit:=wdCharacter, Count:=1
     
         ChangeFileOpenDirectory "C:\"
          DocNum = DocNum + 1
    '----------------------
    Sub nom()
          Dim nom
          nom = ActiveDocument.Paragraphs(7).Range.Words(7)
          ActiveDocument.SaveAs FileName:="C:\" & nom & ".doc"
    '-------------------
         ActiveDocument.SaveAs FileName:="test_" & Supplier_Name & ".doc"
         ActiveDocument.Close
          'section suivante
         Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Je ne sais pas si j'ai bien inséré au bon endroit les éléments ci-dessous que j'ai mis en gras dans la macro ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub nom()
          Dim nom
          nom = ActiveDocument.Paragraphs(7).Range.Words(7)
          ActiveDocument.SaveAs FileName:="C:\" & nom & ".doc"
    Lorsque je lance cette macro qui permet de nommer les fichiers scindés, le message que j'ai est : "La commande a échoué"

    Merci beaucoup pour votre aide

    Cordialement

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour


    Il faudrait déjà enlever la ligne Sub nom() : une sub ne peut être imbriquée dans une autre. Bizarre que la macro se lance et les lignes suivantes font double emploi.

    Enlève le bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub nom()
          Dim nom
          nom = ActiveDocument.Paragraphs(7).Range.Words(7)
          ActiveDocument.SaveAs FileName:="C:\" & nom & ".doc"
    sachant que Dim sans autre précision de type ne sert à rien ou pas grand chose.

    Si tu utilises 2007 ou +, il faut un docx et non un doc
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir Chris

    Merci beaucoup pour ta réponse.

    En fait, je pense que j'ai mal expliqué mon problème. Je ne veux pas enlever le bloc ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub nom()
          Dim nom
          nom = ActiveDocument.Paragraphs(7).Range.Words(7)
          ActiveDocument.SaveAs FileName:="C:\" & nom & ".doc"
    Car c'est ce qui va me permettre de nommer mes fichiers lors du coupage du publipostage après la fusion.

    J'ai supprimé le code ci-dessous car il n'avait rien à faire dans la macro (j'avais mal collé la macro désolée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DocNum = DocNum + 1
         ActiveDocument.SaveAs FileName:="test_" & Supplier_Name & ".doc"
    En fait la macro que j'avais lancé était la suivante avant la suppression de Sub nom():

    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
    Sub couper_sections()
       Application.Browser.Target = wdBrowseSection
     
       For i = 1 To ((ActiveDocument.Sections.Count) - 1)
     
          'Selectionne et copie le texte de la section dans le presse-papier
          ActiveDocument.Bookmarks("\Section").Range.Copy
     
          'Crée un nouveau document et colle le texte du presse-papier
          Documents.Add
          Selection.Paste
     
       ' Retire le saut de section qui a été copié
          Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
          Selection.Delete Unit:=wdCharacter, Count:=1
     
         ChangeFileOpenDirectory " C:\"
          Sub nom()
          Dim nom
          nom = ActiveDocument.Paragraphs(7).Range.Words(7)
          ActiveDocument.SaveAs FileName:="C:\" & nom & ".doc"
         ActiveDocument.Close
          'section suivante
         Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Après suppression de Sub() comme tu me l'a indiqué et lorsque je lance la macro le message suivant apparait à nouveau : "La commande a échoué"

    Sais-tu d'où vient le problème stp?

    Merci par avance

    Cordialement

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    Il faut exécuter le code en pas à pas afin de vérifier ce que fait chaque ligne et à quelle ligne se pose le problème.

    Es-tu sûr que le nom du ficher est bien présent dans le paragraphe 7 du document ? En pas à pas tu dois voir quelle valeur prend nom : si le nom n'est pas conforme à un nom de fichier pour Windows, l'enregistrement n'aboutit pas.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonjour 78Chris,

    Merci beaucoup pour ton retour.

    J'ai tout repris et plus aucun message d'erreur lorsque la mocro se lance. Le seul problème c'est que je ne retrouve pas le document dans le lien perso que j'ai indiqué dans la macro.

    Du coup j'ai un doute sur le fait que le nom du ficher est bien présent dans le paragraphe 7 du document. Pourtant si je considère que Nom : Capture.JPG
Affichages : 473
Taille : 7,8 Ko = 1 paragrah alors normalement ça devrait être correct sauf si je me trompe. Ou alors, je ne devrai pas raisonner en paragraph mais en ligne non?

    Nom : COPIE ECRAN.JPG
Affichages : 491
Taille : 22,2 Ko

    Citation Envoyé par 78chris Voir le message
    Bonjour

    Il faut exécuter le code en pas à pas afin de vérifier ce que fait chaque ligne et à quelle ligne se pose le problème.

    Es-tu sûr que le nom du ficher est bien présent dans le paragraphe 7 du document ? En pas à pas tu dois voir quelle valeur prend nom : si le nom n'est pas conforme à un nom de fichier pour Windows, l'enregistrement n'aboutit pas.
    Merci par avance pour ton aide 78chris

    Cordialement

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Re

    Tu devrais éviter les tabulations multiples et faire simplement un retrait des paragraphes car ces caractères, spécifiques et non utilisables en nom de fichier, interfèrent sans doute.

    Ton chemin est la racine de C: donc si le document existe il est là : un tri par date doit permette de le repérer le cas échéant.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir 78chris,

    En fait les tabulations c'était pour te montrer que j'avais bien renseigné le numéro du paragraphe (du moins je pense):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom = ActiveDocument.Paragraphs(7).Range.Words(8)
    Je n'ai pas laissé les tabulations lorsque j'ai lancé la macro.

    J'ai vraiment cherché partout dans le C et même en triant par date je ne trouve absolument rien et c'est étrange.

    J'ai changé le lien pour être sûr que je ne me trompe pas et bizarrement j'ai un message d'erreur qui apparait : "La commande a échoué" lorsque je lance la macro ci-dessous : (Alors que je ne l'avais pas auparavant et pourtant je n'ai rien changé)

    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
    Sub couper_sections()
       Application.Browser.Target = wdBrowseSection
     
       For i = 1 To ((ActiveDocument.Sections.Count) - 1)
     
          'Selectionne et copie le texte de la section dans le presse-papier
          ActiveDocument.Bookmarks("\Section").Range.Copy
     
          'Crée un nouveau document et colle le texte du presse-papier
          Documents.Add
          Selection.Paste
     
       ' Retire le saut de section qui a été copié
          Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
          Selection.Delete Unit:=wdCharacter, Count:=1
     
         ChangeFileOpenDirectory "C:\Users\XXXXX\Desktop\2014"
          nom = ActiveDocument.Paragraphs(7).Range.Words(8)
          ActiveDocument.SaveAs FileName:="C:\Users\XXXXX\Desktop\2014" & nom & ".docx"
         ActiveDocument.Close
          'section suivante
         Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Je suis pas du tout douée en macro et je ne sais pas comment identifier le problème.

    Surtout je ne veux pas empiéter sur ton temps. Si tu trouves que mon cas est compliqué et que tu le trouves trop long à expliquer ben je comprendrai et je laisserai tomber tant pis (même si je ne suis pas de ce genre).

    Merci par avance pour ton aide et pour tout

    Cordialement

  8. #8
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir 78chris,

    Avec de l'acharnement, en reprenant tout à 0 et en suivant tes conseils j'ai ENFIN TROUVE!!!!!!!!!!!

    Je suis super contente !!!!!!!

    En fait ce qui causait problème c'était cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.SaveAs FileName:="C:\Users\XXXXX\Desktop\2014" & nom & ".docx"
    L'élément suivant : :"C:\Users\XXXXX\Desktop\2014" n'avait rien à faire là dedans.

    Merci encore 78chris pour ton aide

    Topic résolu.

  9. #9
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    RE

    Inutile d'envoyer des MP, je ne les vois pas plus tôt que les posts.

    Concernant les tabulations : tu les as affichées pour que je vois les paragraphes mais ce n'est pas en masquant l'affichage que cela enlève le caractère de tabulation qui ne peut faire partir d'un nom de fichier.

    Si tu as juste le nom dans le paragraphe, il est plus simple de le récupérer notamment si un nom peut-être composé de plusieurs mots.

    Il manque un \ en fin de chemin. Si on enlève toutes les tabulations inutiles pour un simple retrait de paragraphe ceci fonctionne
    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
    Sub couper_sections()
        chemin = "C:\Users\XXXX\Desktop\2014\"
        Application.Browser.Target = wdBrowseSection
     
        For i = 1 To ((ActiveDocument.Sections.Count) - 1)
     
            'Selectionne et copie le texte de la section dans le presse-papier
            ActiveDocument.Bookmarks("\Section").Range.Copy
     
              'Crée un nouveau document et colle le texte du presse-papier
            Documents.Add
            Selection.Paste
     
           ' Retire le saut de section qui a été copié
             Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
             Selection.Delete Unit:=wdCharacter, Count:=1
     
             nom = ActiveDocument.Paragraphs(7).Range
             nom = Left(nom, Len(nom) - 1) & ".docx"
             'Supression du fichier déjà existant
             If Dir(chemin & nom) <> "" Then Kill chemin & nom
             ActiveDocument.SaveAs chemin & nom
             ActiveDocument.Close
             'section suivante
             Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Edit : j'ai posté en même temps ! L'essentiel est que ce soit résolu.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  10. #10
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Merci encore 78chris pour ton aide

  11. #11
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir 78chris,

    J'ai testé ta méthode et je l'ai approuvé.

    Par contre en rajoutant les éléments suivant supplémentaire dans la macro que j'ai surligné en jaune pour nommer les fichiers de manière précise :

    Nom : Developpeur_publip_2.JPG
Affichages : 562
Taille : 30,3 Ko

    J'ai le message d'erreur ci-dessous qui s'affiche à un moment donné :

    Nom : Developpeur_publip.JPG
Affichages : 467
Taille : 23,5 Ko

    Pourrais-tu m'aider à comprendre ce message d'erreur stp?

    Merci par avance

    Cordialement


    Citation Envoyé par 78chris Voir le message
    RE

    Inutile d'envoyer des MP, je ne les vois pas plus tôt que les posts.

    Concernant les tabulations : tu les as affichées pour que je vois les paragraphes mais ce n'est pas en masquant l'affichage que cela enlève le caractère de tabulation qui ne peut faire partir d'un nom de fichier.

    Si tu as juste le nom dans le paragraphe, il est plus simple de le récupérer notamment si un nom peut-être composé de plusieurs mots.

    Il manque un \ en fin de chemin. Si on enlève toutes les tabulations inutiles pour un simple retrait de paragraphe ceci fonctionne
    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
    Sub couper_sections()
        chemin = "C:\Users\XXXX\Desktop\2014\"
        Application.Browser.Target = wdBrowseSection
     
        For i = 1 To ((ActiveDocument.Sections.Count) - 1)
     
            'Selectionne et copie le texte de la section dans le presse-papier
            ActiveDocument.Bookmarks("\Section").Range.Copy
     
              'Crée un nouveau document et colle le texte du presse-papier
            Documents.Add
            Selection.Paste
     
           ' Retire le saut de section qui a été copié
             Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
             Selection.Delete Unit:=wdCharacter, Count:=1
     
             nom = ActiveDocument.Paragraphs(7).Range
             nom = Left(nom, Len(nom) - 1) & ".docx"
             'Supression du fichier déjà existant
             If Dir(chemin & nom) <> "" Then Kill chemin & nom
             ActiveDocument.SaveAs chemin & nom
             ActiveDocument.Close
             'section suivante
             Application.Browser.Next
       Next i
       ActiveDocument.Close savechanges:=wdDoNotSaveChanges
    End Sub
    Edit : j'ai posté en même temps ! L'essentiel est que ce soit résolu.

  12. #12
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    Le paragraphe 3 doit être vide...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  13. #13
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir 78chris,

    Merci beaucoup pour ton retour.

    Pourtant c'est étonnant car j'ai vérifié chacune des lettres et le paragraphe 3 n'est pourtant pas vite et il correspond à un champ de mon publipostage (J'ai vérifié les données de la source excel et aucun champ n'est vide)

    Nom : Capture_pb macro publi.JPG
Affichages : 600
Taille : 17,7 Ko

    Le problème doit être ailleurs je pense non?

    Merci pour ton retour 78chris

    Cordialement

  14. #14
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    Il faut vraiment que tu utilises les outils de débogage fournis par l'éditeur VBA : affiche la fenêtre des variables locales, met un point d'arrêt sur le ligne Frs=... et regarde la valeur prise par Frs et par nom.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  15. #15
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Merci 78chris pour ton retour

    Je ne sais pas comment afficher le point d'arrêt sur la ligne Frs =... et j'avais déjà vu faire une fois mais il me semble qu'une fenêtre s'ouvre à droite pour justement voir la valeur prise par Frs et par nom.

    Mais je ne sais pas comment l'afficher cette petite fenêtre

    Peux tu me guider stp?

    Merci beaucoup 78chris

    Cordialement

  16. #16
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Mathsdeb Voir le message
    Bonsoir 78chris,

    Merci beaucoup pour ton retour.

    Pourtant c'est étonnant car j'ai vérifié chacune des lettres et le paragraphe 3 n'est pourtant pas vite et il correspond à un champ de mon publipostage (J'ai vérifié les données de la source excel et aucun champ n'est vide)

    Cordialement
    Je n'ai pas tout lu consciencieusement, mais tu ne dois pas oublier que pour VBA Word, tout ce qui se termine par une marque de paragraphe est un paragraphe, et même une marque de paragraphe toute seule sur sa ligne est un paragraphe. C'est une des raisons pourquoi les "spécialistes sérieux" disent de ne jamais utiliser de marque de paragraphe isolée pour "créer" un espace entre deux lignes ou deux paragraphes remplis.

    Tu peux vérifier si tous les champs du document pointent vraiment sur les champs de ta feuille Excel.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  17. #17
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Mathsdeb Voir le message
    Merci 78chris pour ton retour

    Je ne sais pas comment afficher le point d'arrêt sur la ligne Frs =... et j'avais déjà vu faire une fois mais il me semble qu'une fenêtre s'ouvre à droite pour justement voir la valeur prise par Frs et par nom.

    Cordialement
    Tu cliques dans le cadre de gauche vis-à-vis de la ligne, ou tu cliques sur la ligne et tu appuies sur F9 (ou tu recliques sur le bon bouton de la bonne barre d'outils).
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  18. #18
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir à tous les 2,

    J'ai réussi à afficher le point d'arrêt sur la ligne Frs =... et il m'affiche "Frs = Vide".

    Mais ce qui semble bizarre c'est que lorsque je fais la même chose sur la ligne Nom = .... il m'affiche aussi "Nom = Vide" alors qu'il n'est pas du tout vide.

    J'a enlevé le paragraphe vide qui se trouve entre "ERROR"... et "Société"

    Nom : Capture_pb macro publi.JPG
Affichages : 612
Taille : 20,1 Ko

    J'ai relancé la macro, elle se lance bien mais à un moment donné elle s'arrête et m'affiche le message d'erreur suivant :

    Nom : Capture_erreur_macro.JPG
Affichages : 467
Taille : 24,4 Ko

    Et je ne comprends pas.

    Pourriez vous m'aider svp?

    Merci beaucoup

    Cordialement

  19. #19
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Mathsdeb Voir le message
    Bonsoir à tous les 2,

    J'ai réussi à afficher le point d'arrêt sur la ligne Frs =... et il m'affiche "Frs = Vide".

    Quand le programme arrive sur un point d'arrêt, il s'arrête avant d'exécuter la ligne en cause. Aussitôt que le programme est arrivé au point d'arrêt, exécute la ligne avec F8 et revérifie la valeur. Si c'est toujours vide ou "", c'est qu'il manque probablement quelque chose avant d'arriver là. Si tu vois des espaces ou des caractères bizarres, tu vas devoir soit agir en amont pour éviter d'arriver avec des caractères parasites, soit les enlever avant de continuer.

    P.S. Dans mon aide de VBA - Word, le texte de l'objet Range s'obtient en utilisant:

    De là, à penser qu'il te manque un .text à quelque part, il n'y a qu'un pas.

    P.P.S. Un truc à connaître et à utiliser sans retenue en cas de doute durant l'écriture ou le débogage du code:

    un clic sur le mot-clef et
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  20. #20
    Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Points : 66
    Points
    66
    Par défaut
    Bonsoir,

    Je pense avoir trouvé le problème après avoir cogité pendant plusieurs jours.

    Le problème viendrait des signes : il semblerait que la macro s'arrête lorsque qu'elle rencontre des "/".

    Est ce que quelqu'un peut me confirmer ça svp?

    Merci beaucoup pour votre aide

    Cordialement

Discussions similaires

  1. Problème macro modèle à document
    Par perophron dans le forum VBA Word
    Réponses: 9
    Dernier message: 16/05/2007, 10h38
  2. Réponses: 2
    Dernier message: 17/01/2007, 09h22
  3. problème de publipostage
    Par emma07 dans le forum Access
    Réponses: 9
    Dernier message: 05/07/2006, 11h50
  4. [VBA-E] Problème macro excel
    Par pontus21 dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 19/05/2006, 18h38
  5. Problèmes avec publipostage
    Par DiabloZizi dans le forum Excel
    Réponses: 4
    Dernier message: 09/03/2006, 16h54

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