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 :

Copier des données dans Excel et les Coller dans Word. [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut Copier des données dans Excel et les Coller dans Word.
    Bonjour,

    Je cherche une macro me permettant de copier des données (pourcentages calcul grace à une formule) puis de coller le résultat (collage spécial) à un endroit bien précis dans une lettre faite avec Word.

    Ex : Dans Excel => De A1:A100, j'inscris aléatoirement "OUI" ou "NON"
    En A101 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI(A1:A100;"oui")/100
    Format de cellule : Pourcentage.

    Ce qui me calcule le pourcentage de "OUI" par rapport au "NON", par exemple : 64%

    Ensuite, la macro doit ouvrir une lettre type déjà tapée sur Word et à un endroit précis du texte de cette lettre, le résultat doit venir se coller.

    Ex : Dans Word => Monsieur XXXX, veuillez constater que le pourcentage de "OUI" s'élève à 64% pour le mois d'octobre 2012.

    Quelqu'un saurait il me dépatouiller de cette galère ?

    Cordialement,
    Graphikris.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut graphikris

    Voici un code que j'utilise au boulot, à adapter

    Il faut activer la référence "Microsoft Word xx.x Object Library"

    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
      ' Chemin d'accès du document Word
      VPath = ThisWorkbook.Path & "\"
      ' Nom du fichier
      VFic = "fichier_modele.doc"
      ' Créer une instance de Word
      Set AppWd = New Word.Application
      ' Ouvrir le fichier et Afficher l'application
      AppWd.Documents.Open VPath & VFic
      AppWd.Visible = True
      Set WdDoc = AppWd.ActiveDocument
      ' Se positionner sur la balise <TABLEAU> qui est inscrite dans le document Word
      With AppWd.Selection.Find
        .ClearFormatting
        .Text = "<TABLEAU>"
        .MatchWildcards = False
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
      End With
      AppWd.Selection.Find.Execute
      ' Copier le tableau de la feuille "Rappels" dans excel
      With Sheets("Rappels")
        DLigR = .Range("F" & Rows.Count).End(xlUp).Row
        .Range("A1:F" & DLigR).Copy
        ' Le coller dans Word
        AppWd.Selection.Paste
      End With
    J'espère que ce code sera assez explicite

    A+
    Dernière modification par Invité ; 18/05/2013 à 18h19.

  3. #3
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bjr et merci,
    je vais essayé de bidouiller ton code afin de l'adapter à ce que je veux faire.
    Je te tiens au courant (abonnes toi à la discussion de mon post).

    Cordialement
    Graphikris.

    N'arrivant pas à adapter ce code aimablement envoyé, je recherche a nouveau quelqu'un qui saurait faire car dans le code transmis, c'est pour coller un tableau mais pour mon post, c'est des chiffres à différents endroits dans le fichier Word.
    Si vous désirez que je vous transmette les 2 fichiers (excel et word), demandez le moi.

    Cordialement,
    Graphikris.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Désolé,

    Je ne l'avais pas compris ainsi

    Tu peux donc utiliser ceci à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' Chemin d'accès du document Word
      VPath = ThisWorkbook.Path & "\"
      ' Nom du fichier
      VFic = "fichier_modele.doc"
      ' Créer une instance de Word
      Set AppWd = New Word.Application
      ' Ouvrir le fichier et Afficher l'application
      AppWd.Documents.Open VPath & VFic
      AppWd.Visible = True
      Set WdDoc = AppWd.ActiveDocument
      ' Inscrire la valeur à la place de la balise <POURCENTAGE>
      VTemp = Format(Range("A1"),"0.00%")
      Ecriture_balise "POURCENTAGE", VTemp
    La Sub d'écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Sélection et remplacement de toutes les balises du modèle word associées à la ligne par la chaîne de caractères associée
    Sub Ecriture_balise(LibBalise As String, ValBalise As String)
      Dim Balise As String
      Balise = "<" & LibBalise & ">"
      ' Remplacement de "<Balise>" par "Valeur_balise" dans le document
      WdDoc.Content.Find.Execute FindText:=Balise, ReplaceWith:=ValBalise, Replace:=wdReplaceAll  'Remplacement"
    End Sub
    A+

  5. #5
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Merci,
    mais c'est quoi la Sub écriture ?
    Je place où les modules ?
    Excel, Word ?

    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Whouaouuuu, indique le dans ta signature que tu es débutant

    Dans un MODULE
    Tu crées un Sub Toto()
    Dans laquelle tu mets le premier code
    Ensuite tu copie et colles la sub écriture à la fin du même module

    Dans ton modèle Word tu mets les balises souhaitées en écrivant entre "<" & ">" le nom de la balise

    Tu n'as plus qu'à lancer le code de la première sub

    a+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/10/2010, 14h31
  2. Copier des données d'un xls et coller dans le workbook
    Par baleiney dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/08/2009, 17h11
  3. [MySQL] Récupérer des données de MySQL et les envoyer dans un PDF
    Par cdevl32 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 16/03/2009, 20h53
  4. trier des données sur excel via les MFC
    Par craryb dans le forum MFC
    Réponses: 1
    Dernier message: 22/03/2007, 14h51
  5. [VBA-A]Copier des données d'Excel vers Word
    Par soad029 dans le forum VBA Word
    Réponses: 15
    Dernier message: 16/03/2006, 11h56

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