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 :

Transfert de données excel vers word - erreur de compilation : Type défini par l'utilisateur non défini [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 318
    Points
    318
    Billets dans le blog
    1
    Par défaut Transfert de données excel vers word - erreur de compilation : Type défini par l'utilisateur non défini
    Bonjour amis développeur,

    Une petite question sur la copie de données excel dans un document word.
    Je souhaite réaliser un transfert de données d'un tableau excel vers un fichier word depuis un bouton lié à une macro dans le fichier excel.
    voici la macro utilisée pour cette action :

    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 Offre()   
        Dim wApp As Object
        Dim wDoc As Object
     
        Set wApp = CreateObject("Word.Application")
        Set wDoc = CreateObject("Word.Document")
     
        Dim AppWord As Word.wApp
        Dim DocWord As Word.wDoc
     
        Set AppWord = New Word.wApp
     
        Application.DisplayAlerts = True
        AppWord.ShowMe
        AppWord.Visible = True
     
        chemin = Environ("USERPROFILE") & "\Mes documents\Offre2017"
        'Ouvre le document Word
        Set DocWord = AppWord.Documents.Open(chemin & "\Offre2017.docm", ReadOnly:=False)
     
        ' Copie les données Excel
        ThisWorkbook.Worksheets("Feuil1").Range("AE13:AG60").Copy
     
        ' Colle les données dans Word
        DocWord.Range(Start:=0, End:=2).PasteSpecial
        Application.CutCopyMode = False
        DocWord.Application.ActiveDocument.Save
    End Sub()
    Lors du lancement de la macro, je me retrouve avec l'erreur suivante :
    "erreur de compilation : Type défini par l'utilisateur non défini"
    Elle intervient pour ces 2 lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim AppWord As Word.wApp
        Dim DocWord As Word.wDoc
    Est-ce qu'il s'agit d'un problème lié à la référence "Microsoft Word 16.0 Object Library" ?
    Les références "Microsoft Word 16.0 Object Library" et "Microsoft Excel 16.0 Object Library" sont activés dans word et excel.
    C'est la première fois que je me retrouve à utiliser vba entre excel et word, j'avoue que je suis un peu perdu sur la syntaxe qui fait le lien vers word.

    Merci d'avance pour vos retours,
    Cordialement,
    BDA53

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    On ne peut pas déclarer deux fois une même variable.

    Remplace tes 20 premières lignes par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Offre()   
        Dim DocWord As Word.Document
        Dim Chemin As String
     
        chemin = Environ("USERPROFILE") & "\Mes documents\Offre2017"
        Set DocWord = GetObject(chemin & "\Offre2017.docm")
        DocuWord.Application.Visible = True
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre averti

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 318
    Points
    318
    Billets dans le blog
    1
    Par défaut
    Bonjour Menhir,

    C'est tout bon ça fonctionne correctement merci beaucoup
    Il y avait juste une coquille dans le code que tu m'as donné, je l'ai modifié et voici le code qui 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
    Sub Offre()
        Dim DocWord As Word.Document
        Dim Chemin As String
     
        Chemin = Environ("USERPROFILE") & "\Mes documents\Offre2017"
     
        'Ouvre le document Word
        Set DocWord = GetObject(Chemin & "\Offre2017.docm")
        DocWord.Application.Visible = True
     
        'Copie les données Excel
        ThisWorkbook.Worksheets("Feuil1").Range("AE13:AG60").Copy
     
        ' Colle les données dans Word
        DocWord.Range(Start:=0, End:=2).PasteSpecial
        Application.CutCopyMode = False
        DocWord.Application.ActiveDocument.Save
    End Sub()

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par BDA53 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DocWord.Application.ActiveDocument.Save
    Plus simplement :
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. [XL-2007] Erreur de Compilation : type defini par l'utilisateur non defini
    Par devalender dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/01/2018, 11h11
  2. [XL-2010] Transfert de donnée Excel vers Word
    Par destronic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2016, 19h20
  3. [XL-2003] transfert de données excel vers word
    Par Angel8301 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/10/2015, 17h29
  4. [XL-2003] Erreur de compilation " type defini par l'utilisateur non defini"
    Par JEXCELPAS dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/01/2015, 15h40
  5. Message erreur Type défini par l'utilisateur non défini
    Par Michel DELAVAL dans le forum Access
    Réponses: 2
    Dernier message: 27/06/2006, 16h37

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