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 :

[RESOLU] Erreur d'exécution 4605


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut [RESOLU] Erreur d'exécution 4605
    bonjour à tous

    voilà j'ai un classeur avec plusieurs feuilles, dans chaque feuille il y a des données que je recopie dans un tableau dans un word-cible pour chaque feuille , mais au bout de 50 fichiers environs crées en moyenne la macro plante avec l 'erreur 4605 , j'arrive pas à voir pourquoi.

    si quelqu'un peut m'aider merci


    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
    Sub CopyRangeToWordBookMark()
     
     ' Déclaration des variables
     Dim AppWord As Word.Application
     Dim DocWord As Word.Document
     Dim oBm As Word.Bookmark
     Dim Folder As String, DocName As String, BookMarkName As String
     Dim rng As Range
     Dim Ws As Worksheet
     Dim feuille_courante As String
     
     
     For Each Ws In ThisWorkbook.Worksheets
     
     ' Affectation des variables
     Set AppWord = New Word.Application
     feuille_courante = ThisWorkbook.ActiveSheet.Name
     Set rng = ThisWorkbook.Worksheets(feuille_courante).Range("A1").CurrentRegion
     Folder = ThisWorkbook.Path
     DocName = "NomdudocumentWord.docx" ' Nom du document Word
     BookMarkName = "Tableau_excel" ' Nom du signet
     
     Application.DisplayAlerts = True
     
     With AppWord
        Set DocWord = AppWord.Documents.Open(Folder & "\" & DocName, ReadOnly:=False)
     End With
     
     Set oBm = DocWord.Bookmarks(BookMarkName)
     rng.Copy ' Copie le tableau Excel
     oBm.Range.PasteExcelTable False, False, False
     
     ' ici code pour sauver le document
     With DocWord
      .SaveAs ThisWorkbook.Path & "\fichieraenvoyer\" & feuille_courante & ".doc", Allowsubstitutions:=True
      End With
     
      AppWord.Application.Quit
      ActiveSheet.Next.Select
     
     Set rng = Nothing: Set AppWord = Nothing: Set DocWord = Nothing: Set oBm = Nothing
     
     Next Ws
     
    End Sub

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Pas sûre que cela résolve ton problème, mais il y a qqc que je ne comprends pas dans ta macro : tu fais une boucle sur les feuilles du classeurs avec l'indice ws, mais tu n'utilises jamais ws! Tu fais tout sur la feuille active. Utilise-donc Ws !
    D'autre part, tu effectues des operations à l'intérieur de la boucle qui pourraient s'effectuer une fois avant d'entrer dans la boucle plutôt qu'une fois par iteration dans la boucle.
    Enfin, regarde comment on utilise le bloc With..End With, car tu n'as pas l'air de savoir l'utiliser correctement.

    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
    Sub CopyRangeToWordBookMark()
     
     ' Déclaration des variables
     Dim AppWord As Word.Application
     Dim DocWord As Word.Document
     Dim oBm As Word.Bookmark
     Dim Folder As String, DocName As String, BookMarkName As String
     Dim rng As Range
     Dim Ws As Worksheet
     Dim feuille_courante As String
     
    'ce qui ne change pas d'une itératio à l'autre dans la boucle :
     Set AppWord = New Word.Application
     Folder = ThisWorkbook.Path
     DocName = "NomdudocumentWord.docx" ' Nom du document Word         '<------ toujours le même nom ???
     BookMarkName = "Tableau_excel" ' Nom du signet 
     
     For Each Ws In ThisWorkbook.Worksheets
         ' Affectation des variables
         feuille_courante = ThisWorkbook.Ws.Name
         Set rng = Ws.Range("A1").CurrentRegion
         Set DocWord = AppWord.Documents.Open(Folder & "\" & DocName, ReadOnly:=False)
         Set oBm = DocWord.Bookmarks(BookMarkName)
         rng.Copy ' Copie le tableau Excel
         oBm.Range.PasteExcelTable False, False, False
          ' ici code pour sauver le document
         DocWord.SaveAs ThisWorkbook.Path & "\fichieraenvoyer\" & feuille_courante & ".doc", Allowsubstitutions:=True
     Next Ws
     
     AppWord.Application.Quit
     Set rng = Nothing: Set AppWord = Nothing: Set DocWord = Nothing: Set oBm = Nothing
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 18
    Par défaut
    ok merci, oui j'utilise pas souvent les macros vb je vais voir cela pour mieux l'optimiser.

    en tous les cas j'ai relancé et il m'a fait mes 1000 doc d'un coup cette fois ci sans soucis.

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

Discussions similaires

  1. [JVM][8.1.7] Erreur d'exécution de initjvm.sql
    Par Escuzze dans le forum Oracle
    Réponses: 4
    Dernier message: 01/07/2005, 15h39
  2. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  3. [CR8][VB6] Erreur d'exécution 20533
    Par pvava dans le forum SDK
    Réponses: 1
    Dernier message: 01/02/2005, 10h27
  4. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 17h25
  5. [Apache Perl] Erreur à l'exécution de mes cgi
    Par GLDavid dans le forum Apache
    Réponses: 4
    Dernier message: 28/08/2004, 20h23

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