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

Macros et VBA Excel Discussion :

Problème police de données copiées d'Excel vers Word + retour chariot non souhaité


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 20
    Points
    20
    Par défaut Problème police de données copiées d'Excel vers Word + retour chariot non souhaité
    Bonjour

    Je souhaite copier un texte et une valeur en euros venant d'Excel vers un signet Word. J'ai 2 problèmes :

    1. Après la copie, la macro me génère un retour chariot après la valeur copiée
    2. Je n'arrive pas à garder la police (Police, Taille police, Couleur) que j'ai à l'endroit du signet. La macro semble s'inspirer en partie de ce qui vient d'Excel

    Voici mon bout de code :

    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
    ' Collage Montant et Texte
     
        signet = "Texte_01"
        ThisWorkbook.Worksheets("Sommaire").Range("Texte_exemple").Copy
        With AppWord.Selection
            .HomeKey Unit:=wdStory   'envoi en début de page
            .Goto What:=wdGoToBookmark, Name:=signet 'Recherche du signet
        End With
     
        AppWord.Selection.PasteSpecial
     
     
        signet = "Montant_01"
        ThisWorkbook.Worksheets("Sommaire").Range("Montant_exemple").Copy
        With AppWord
            .Selection.HomeKey Unit:=wdStory   'envoi en début de page
            .Selection.Goto What:=wdGoToBookmark, Name:=signet 'recherche du signet
        End With
     
        AppWord.Selection.PasteSpecial
    D'avance merci pour votre aide

    Cordialement

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Bonjour,

    Essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        With AppWord
            .Selection.HomeKey Unit:=wdStory   'envoi en début de page
            .Selection.Goto What:=wdGoToBookmark, Name:=signet 'recherche du signet
            .Selection.InsertBefore ThisWorkbook.Worksheets("Sommaire").Range("Texte_exemple").Value
        End With
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre à l'essai
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Bonjour

    Merci du retour. En effet cela corrige le pb du retour chariot et de la police. J'ai 2 autres questions toujours autour du même sujet :

    1. Peut-on remplacer le texte qui existe à ce signet par ce que l'on vient de copier (Cas de mise à jour multiple du document)
    2. Peut-on mettre une mise en forme (Ex : Mon montant est 3000 et je voudrais qu'il soit copié dans Word en 3 000 €).

    Cordialement

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    1. Pour supprimer les mots placée devant le signet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Set bk = AppWord.ActiveDocument.Bookmarks("Fin")
            For i = bk.Range.Words.Count To 1 Step -1
                bk.Range.Words(i).Delete
            Next i
    2. Pour le format de nombre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            .InsertBefore _
            Format(ThisWorkbook.Worksheets("Sommaire").Range("Texte_exemple").Value, "#,##0 €")
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Membre à l'essai
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Bonjour

    J'ai inséré ce code. J'ai encore un problème. Il me supprime le 1er mot mais pas la phrase entière.
    Par ailleurs, si je l'utilise pour 2 signets il me supprime le 2nd signet et non le contenu

    Contenu de mon Word avant exécution :

    Texte : Ancien Texte
    Montant : 2.000 €

    Les signets n'apparaissent pas mais ils sont juste avant les valeurs des champs

    Mar macro est la suivante :

    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
    ' Collage Montant et Texte
     
        signet = "Texte_01"
     
    ' Pour supprimer le mot devant le signet
     
        Set bk = AppWord.ActiveDocument.Bookmarks(signet)
        For j = bk.Range.Words.Count To 1 Step -1
            bk.Range.Words(j).Delete
        Next j
     
     
        ThisWorkbook.Worksheets("Sommaire").Range("Texte_exemple").Copy
        With AppWord.Selection
            .HomeKey Unit:=wdStory   'envoi en début de page
            .Goto What:=wdGoToBookmark, Name:=signet 'Recherche du signet
            .InsertBefore ThisWorkbook.Worksheets("Sommaire").Range("Texte_exemple").Value
        End With
     
        signet = "Montant_01"
    ' Pour supprimer le mot devant le signet
     
        Set bk = AppWord.ActiveDocument.Bookmarks(signet)
        For j = bk.Range.Words.Count To 1 Step -1
            bk.Range.Words(j).Delete
        Next j
     
        ThisWorkbook.Worksheets("Sommaire").Range("Montant_exemple").Copy
        With AppWord
            .Selection.HomeKey Unit:=wdStory   'envoi en début de page
            .Selection.Goto What:=wdGoToBookmark, Name:=signet 'recherche du signet
            .Selection.InsertBefore Format(ThisWorkbook.Worksheets("Sommaire").Range("Montant_exemple").Value, "#.###.##0 €")
        End With
    Après l'exécution de ma macro voici ce que j'ai :

    Texte : Nouveau texteTexte --> Il m'a gardé "Texte" qui est de l'ancien texte
    Montant :.000 € --> Il m'a supprimé le signet après les ":" du montant et s'est planté à l'avant dernière instruction

    Mes valeurs à copier sont : "Nouveau texte" et "3 000 000 €". Je voudrais donc qu'il écrase "Ancien Texte" et "2.000 €" pour remplacer par ces nouvelles valeurs

    D'avance merci pour votre aide

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Bonsoir,

    OUF !

    J'ai fini par trouver ça pour l'ajout et la suppression du texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        With appword.ActiveDocument.Bookmarks("Fin")
            'ajout de texte
            Set oRng = .Range
            oRng.Text = .Range.Text & "Ajout de texte."
            appword.ActiveDocument.Bookmarks.Add "Fin", oRng
            'Suppression du texte
            .Range.Text = ""
        End With
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copie depuis Excel vers word
    Par Uranne-jimmy dans le forum VB.NET
    Réponses: 1
    Dernier message: 25/10/2013, 16h36
  2. Réponses: 7
    Dernier message: 17/09/2013, 14h42
  3. Réponses: 2
    Dernier message: 14/03/2010, 17h24
  4. Copie de Excel vers Word
    Par kong985 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2008, 10h33
  5. problème copie Tableau de Excel vers Word
    Par el_titou007 dans le forum VBA Word
    Réponses: 2
    Dernier message: 02/04/2007, 09h42

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