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 :

excel copie dans word


Sujet :

Macros et VBA Excel

  1. #1
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut excel copie dans word
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    Private Sub CommandButton1_Click()
          Dim WdApp As Word.Application
          Dim WdDoc As Word.Document
          Dim i, hauteur As Double, plage As Range
          Dim j As Integer
          Dim k As Integer
          Dim nbre As Integer
     
          Set WdApp = CreateObject("word.application")
          Set WdDoc = WdApp.Documents.Open("C:\ah.doc")
     
          WdApp.Visible = True
     
     
          nbre = ActiveWorkbook.Sheets.Count
     
     
     
     
     
     
     
     
     
     For j = 2 To 11
                 If Worksheets(j).Range(J25) <> 0 Or Worksheets(j).Range(J26) <> 0 Then
     
     
     
            Do                          'Sélection de la plage de cellules à copier
                On Error Resume Next                          'gère une plage nulle
                Set plage = Range("A1:L38")
               If plage Is Nothing Then GoTo Fin             'sortie si plage vide
                 On Error GoTo 0
                 Loop While InStr(plage.Address, ",") <> 0
                 plage.Copy                                                'plage copiée
                 DoEvents                  'laisse au system le temps de copier la plage
     
                                          'Place l'image sur le signet "Signet"
                With WdApp
                    .Selection.Goto What:=wdGoToBookmark, Name:="Signet"
                    .Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
                    Placement:=wdInLine, DisplayAsIcon:=False
                    WdDoc.InlineShapes(1).Width = 132    'Règle la largeur dans Word
     
                           'Calcul de la hauteur de plage dans le document word
                     hauteur = 132 / WdDoc.InlineShapes(1).Width _
                                 * WdDoc.InlineShapes(1).Height
                     WdDoc.InlineShapes(1).Height = Int(hauteur)       'Règle la hauteur
                End With
     
          End If
    Next j
     
     
     
     
     
     
     
     If nbre > 15 Then
        For k = 16 To nbre
          If Worksheets(k).Range(J25) <> 0 Or Worksheets(k).Range(J26) <> 0 Then
     
     
     
        Do                          'Sélection de la plage de cellules à copier
            On Error Resume Next                          'gère une plage nulle
            Set plage = Range("A1:L38")
            If plage Is Nothing Then GoTo Fin             'sortie si plage vide
            On Error GoTo 0
        Loop While InStr(plage.Address, ",") <> 0
        plage.Copy                                                'plage copiée
        DoEvents                  'laisse au system le temps de copier la plage
     
                                          'Place l'image sur le signet "Signet"
        With WdApp
               .Selection.Goto What:=wdGoToBookmark, Name:="Signet"
               .Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
                           Placement:=wdInLine, DisplayAsIcon:=False
               WdDoc.InlineShapes(1).Width = 132    'Règle la largeur dans Word
     
                              'Calcul de la hauteur de plage dans le document word
               hauteur = 132 / WdDoc.InlineShapes(1).Width _
                                    * WdDoc.InlineShapes(1).Height
               WdDoc.InlineShapes(1).Height = Int(hauteur)       'Règle la hauteur
           End With
           End If
          Next k
     
     End If
        'WdApp.Visible = True 'Pour voir (Ne pas fermer le fichier depuis Word)
     
    Fin::
        WdDoc.Close True                       'Enregistre et ferme le doc word
        DoEvents            'Laisse au system le temps d'enregistrer le fichier
        WdApp.Quit                                            'ferme la session
     
        Set plage = Nothing
        Set WdApp = Nothing
        Set WdDoc = Nothing
    End Sub
    Voila mon programme ce met en erreur d'application, j'ai fais la pas a pas.J'ai remarquer que c'était
    Dim WdApp As Word.Application
    Dim WdDoc As Word.Document

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    outils références cocher msword

  3. #3
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    J'ai pas trouver msword?est-ce l enom exact??

  4. #4
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    J'ai trouver avec des recherche ceci ici...Mais je ne comprend pas le code donc si cet article peut aidez a trouvez une solution a mon probleme sa serai genial...

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Regarde ici, tu as la méthode

  6. #6
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    Sa fait deux fois que je le voie ce truc je m'en suis inspirer pour programmez ce que j'ai fait...Mais mon problème, c'est que le programme s'arrete des le debut au niveau de :
    Set WdApp = CreateObject("word.application")
    Set WdDoc = WdApp.Documents.Open("C:\ah.doc")
    Donc svp aidez moi

  7. #7
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    C'est bon j'ai résolue ce problème maintenant j'en est un autre, il bloque et me dit ,
    Microsoft office excel attend la fin de l'exécution d'une action OLE d'une autre application.
    Cela peut venir de ou??

  8. #8
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 18
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    tu as ajouté la librairie Word dans l'éditeur VBA ? sinon lui pas comprendre du tout VBA word... Je sais j'ai fais la connerie la semaine dernière

    tu vas dans outils puis référence et tu cherche la librairie word (la liste est très très longue)

  9. #9
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    Oui je les activé, sa doit être dans le programme que sa va pas...Mais pour corriger mon programme il faut être expert mdr car moi je comprend que la moitier et grâce au commentaire sinon je comprendrai rien c'est vraiment compliqué comme langage quand on mélange deux applications

  10. #10
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    J'avance à petit pas, je réctifie problème par problème maintenant je m'attaque à un autre problème...
    Cette ligne :
    With WdApp
    .Selection.Goto What:=wdGoToBookmark, Name:="Signet"
    .Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
    Placement:=wdInLine, DisplayAsIcon:=False
    Il me dit qu ele signet n'existe pas...Qu'est ce qu'un signet, à quoi il sert, comment faire pour enlever cette erreur??

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Un signet... Heu ! Ben... Oui, c'est un signet !
    Si tu n'en as pas, supprime cette ligne.
    .Selection.Goto What:=wdGoToBookmark, Name:="Signet"
    Allez, pour le signet, vas dans Word (pas VBA, Word tout court) menu Insertion -> Insérer un signet... et là F1
    Dans VBA Word (pas Word, VBA Word ) tu fais F1 sur "Bookmark"
    Bref, un signet est un repère placé dans un document comme un nom est un repère placé dans Excel.
    A+

    Edit
    Dans mon code le signet permettait de placer mon tableau là où je voulais qu'il soit

  12. #12
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    ok Mais sans signet sa marche aussi ou pas!!!Car m'on signet s'enleve tout le temps...

  13. #13
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    Sa marche sa marche sa marche ...Juste un petit problème, prenons l'exemple que je veux mettre mon tableau en largeur = 12 cm et 5cm en hauteur komment on fait????

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Il faudrait convertir tes cm mais ce n'est pas aisé, donc, tu le fais une fois à la main en enregistrant, tu relèves les bonnes mesures et tu les places dans ton code.
    Et tu sais, si tu avais réfléchi 30 secondes de plus... tout seul

  15. #15
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    OUai mais le code je le place ou??et quel sont les ligne qui définissent les mesur

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu fais en enregistrant, tu regarde bien le code, après tu regardes le code dont tu t'es inspiré dans Contribuez et enfin tu corriges les Height et les Width en conséquence. Mais tant que tu n'as pas enregistré en faisant, tu n'auras les bonnes dimensions. On veut bien t'aider mais un minimum d'effort est tout de même requis. Et jusque là...

    Edit
    Malheureusement je vois venir la question suivante... Et là...
    Bon, je vais prendre l'air !

  17. #17
    Inscrit
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 87
    Points
    87
    Par défaut
    Moi pas comprendre c'est pas dure je veux 13 centimetre en largeur et 9 en hauteur, j'ai fai un copier collez manuellement sur word et j'ai modifier comme je voulai, j'ai pris les mesures et il me donne celle la...

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

Discussions similaires

  1. [WD-2003] Macro cherchant du text ss Excel pour copie dans word
    Par yannick113 dans le forum VBA Word
    Réponses: 0
    Dernier message: 21/12/2010, 09h53
  2. [WD-2007] Copie dans word de schémas réalisés dans powerpoint
    Par bendesarts dans le forum Word
    Réponses: 5
    Dernier message: 15/11/2010, 16h40
  3. [2007] Impossibilité de Modifier un Objet Excel intégré dans Word
    Par isabelle.letrong dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 15/07/2010, 13h51
  4. Affecter un nom à un tableau Excel collé dans Word
    Par gegadin dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/09/2008, 09h16
  5. Réponses: 2
    Dernier message: 19/06/2008, 10h13

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