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 :

Boucle pour génération de word - Erreur [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut Boucle pour génération de word - Erreur
    Bonjour le forum
    Je reviens vers pour une question de boucle sur de la création de fichier word.

    Ma boucle se passe bien:
    Le premier fichier est généré( à partir d'un modèle) puis enregistré en word et pdf.....
    Word se ferme
    la boucle tourne, le modèle est ré ouvert.....
    mais là problème... il ne se remplie plus

    avec le pas à pas, j'ai cette erreur sur la ligne "Set WordDoc = ActiveDocument"
    Nom : Capture.PNG
Affichages : 152
Taille : 4,1 Ko


    Je pige pas, je pense que ma boucle est correcte ...

    on dirait que la "connexion" à word est coupé, ce qui est bizarre puisque le fichier modèle s'ouvre


    j'ai bien trouvé cela https://www.google.fr/url?sa=t&rct=j...itW_cqBE1hARzQ

    mai cela ne semble est en correspondance....


    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
     
     
    Sub FACTURES()
    'necesite d'activer la reference Microsoft Word xx.x Object Library
     
    Dim I As Integer
     
    Dim Répertoire As String
    Dim NomFichier As String, AnneeDossier As String
    Dim EnregFichier As String
    Dim Bien As String
     
     
    For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
     
    If Cells(I, 26) <> "OUI" Then
     
    'Ouverture du fichier Modéle------------------------------------------------------------
    Dim appWrd As Word.Application
    Dim docWord As Word.Document
    Set appWrd = CreateObject("Word.Application")
     
     
    Set docWord = appWrd.Documents.Open("T:\xxxxL\xxxx\xxxxxx\xxxx\Modele Facture.docm", ReadOnly:=False)
    Set WordDoc = ActiveDocument
     
    With appWrd
                 .Visible = True
                 .Activate
                 .WindowState = wdWindowStateNormal
    End With
     
     
    With WordDoc
     
    'Execution de la procédure ......
     
     
        AnneeDossier = Cells(I, 12).Value
     
        NomFichier = Cells(I, 25).Value&
        Bien = Cells(I, 7).Value
     
     
    End With
     
    'With shL
    'Validation dans la BDD-------------------------------------------------------------------
    '.Range("Z2").Value = "OK"
    Cells(I, 26) = "OUI"
    'End With
     
     
    'Enregistrement----------------------------------------------------------------------------
     
     
    Répertoire = "T:\xxxxL\xxxx\xxxxxx\xxxx\"
    EnregFichier = Répertoire & "\" & Bien & "\" & AnneeDossier & "\" & NomFichier
    'MsgBox Répertoire & AnneeDossier & "\" & NomFichier
     
    WordDoc.SaveAs2 Filename:=EnregFichier & ".docm"
    WordDoc.ExportAsFixedFormat EnregFichier & ".pdf", 17
     
     WordDoc.Close False
     appWrd.Quit
    Set appWrd = Nothing
    Set WordDoc = Nothing
     
    End If
     
    Next I
     
     
     
     
    End Sub

    nb le fichier est sur un dd externe "T" que j'aimerais rendre variable---> est-ce possible

    qqn aurait une idée ?

  2. #2
    Expert éminent 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
    Par défaut
    Première chose : sort les Dim de la boucle et mets-les en début de code.

    Déjà, il est étonnant que Set WordDoc = ActiveDocument fonctionne.
    Etant donné que le code est dans Excel, l'application par défaut est Excel et pour accéder à des objets d'une autre application, il faut indiquer quelle est cette application.
    Donc écrire Set WordDoc = appWrd.ActiveDocument
    Essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set appWrd = CreateObject("Word.Application")
     
    Set docWord = appWrd.Documents.Open("T:\xxxxL\xxxx\xxxxxx\xxxx\Modele Facture.docm", ReadOnly:=False)
    Set WordDoc = ActiveDocument
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WordDoc = GetObject("T:\xxxxL\xxxx\xxxxxx\xxxx\Modele Facture.docm", ReadOnly:=False)
    Set appWrd = WordDoc.Application
    Dernier détail : Je ne vois vraiment pas à quoi sert le With WordDoc qui suit.

  3. #3
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    Hello

    ça marche nikel


    "With WordDoc" sert à remplir les bookmarks du fichier word.... je les avai masqués pour une meilleure lecture du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Bookmarks("AdresseBien").Range.Text = Cells(I, 8).Value 'H

    Merci à toi !!!

    bonne journée

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/07/2016, 12h32
  2. Boucle pour la gestion de "l'erreur reseau" 1004
    Par daddygraffiti dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/06/2014, 17h24
  3. Lancer une boucle pour repérer une erreur
    Par TomAlbus dans le forum MATLAB
    Réponses: 5
    Dernier message: 14/04/2011, 17h52
  4. [LG]tests pour la gestion d'erreur
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2003, 20h44
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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