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 :

Probleme pour creer un tableau word depuis excel VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Probleme pour creer un tableau word depuis excel VBA
    Bonjour à tous,

    je tente désespérément de créer un tableau word depuis une commande VBA sur excel, mon programme crée un nouveau document, ajoute du texte et est censé insérer un tableau, voici mon code :

    erreur d'exécution '438':
    Propriété ou méthode non gérée par cet objet

    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
     
     
    Sub creerFichierWord()
     
    Dim WordApp As Object
    Dim WordDoc As Object
     
     
            'Set WordApp = CreateObject("Word.Application")     '-- ouvre une session Word
            On Error Resume Next
            Set WordApp = GetObject(, "Word.Application")
            If WordApp Is Nothing Then
            Set WordApp = CreateObject("Word.Application")
            End If
            On Error GoTo 0
     
        Set WordDoc = WordApp.Documents.Add
     
        WordApp.Visible = True
        WordApp.Application.Caption = "document"  ' titre entête du document
     
            With WordApp.Selection  'Ecriture dans word
            .TypeText Text:="Procédure pour écrire dans Word "
            .TypeParagraph 'Saut de paragraphe
            .TypeText Text:="aaaaaaaaaaaaaaaaaaaaaa"
            End With
     
    ' NE MARCHE PAS
        WordApp.Tables.Add Range:=WordDoc.Selection.Range, NumRows:=9, NumColumns:=6
     
        WordDoc.SaveAs adresse & "\" & NomFich & ".doc"    '-- enregistre le nouveau doc
     
     
        WordDoc.Close 'fermeture document Word
        WordApp.Quit  'fermeture session Word
     
     
    End Sub

    Sachant que j'ai deja essayé la syntaxe en modifiant WordDoc.Selection par Selection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WordApp.Tables.Add Range:=Selection.Range, NumRows:=9, NumColumns:=6
    et ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dim objTable As Table
    Set objTable = WordDoc.Tables.Add(Range:=Selection.Range, NumRows:=5, NumColumns:=3)

    Un grand Merci d'avance

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Salut,

    As-tu essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MyDoc = WordApp.Documents("test1.doc").ActiveWindow
    Sinon il y a le FAQ

    Gdal

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut
    Salut Gdal

    Oui merci pour ta réponse, j'ai bien essayé ce code, j'arrive a écrire sur mon document mais pas à inserer un tableau j'ai vraiment passé toute la journée a essayé tout ce que je trouvé sur les forums sans succès

    Il y a pas un template déja fait que tu peux me proposer ?

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Salut,

    Voici:
    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
     
    Sub FnAddTableToWordDocument()
     
        Dim intNoOfRows
        Dim intNoOfColumns
        Dim objWord
        Dim objDoc
        Dim objRange
        Dim objTable
     
        intNoOfRows = 5
        intNoOfColumns = 3
     
        Set objWord = CreateObject("Word.Application")
        objWord.Visible = True
     
        Set objDoc = objWord.Documents.Add
        Set objRange = objDoc.Range
     
        objDoc.Tables.Add objRange, intNoOfRows, intNoOfColumns, DefaultTableBehavior:=wdWord9TableBehavior, _
                        AutoFitBehavior:=wdAutoFitFixed
     
        Set objTable = objDoc.Tables(1)
     
        With objTable
            If .Style <> "Grille du tableau" Then
                .Style = "Grille du tableau"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = False
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = False
            .ApplyStyleRowBands = True
            .ApplyStyleColumnBands = False
            .Style = "Tableau Grille*4 - Accentuation*6"
        End With
     
        For i = 1 To intNoOfRows
     
            For j = 1 To intNoOfColumns
     
            objTable.Cell(i, j).Range.Text = "Sumit_" & i & j
     
            Next
     
        Next
     
    End Sub
    Source: Excel-Macro, @TutorialHorizon

    Ce que tu peux faire:
    Ouvrir Word
    Affichage / Macro / Enregistrer une macro
    Tu insères un tableau ou tu le modifies
    Affichage / Macro / Arrêt l'enregistrement
    Touche [Atl]+[F11]
    Tu verras le code créer qui sera à adapter.

    Gdal
    PS: Il faut ajouter la référence Word (dans VBE, Outils / Références)

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut
    ca marche !! )) Merci d'avoir pris le temps de m'aider ca me fais gagner un temps fou :ppp

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

Discussions similaires

  1. Création de rapport Word depuis Excel VBA
    Par SeB18 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2012, 15h19
  2. Mise en page d'un document word depuis excel VBA
    Par tinange dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2012, 12h42
  3. mise en forme tableau word depuis excel
    Par cobol80 dans le forum VBA Word
    Réponses: 2
    Dernier message: 26/02/2008, 12h02
  4. Creer un tableau word dynamiquement en vba
    Par Vince__93700 dans le forum VBA Word
    Réponses: 2
    Dernier message: 08/02/2007, 18h33
  5. Question sur accès fichier word depuis excel (VBA)
    Par jerome.grange dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/09/2006, 17h34

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