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 :

Erreur de macro en activant plusieurs fichiers EXCEL simultanement [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Par défaut Erreur de macro en activant plusieurs fichiers EXCEL simultanement
    Bonjour;
    j'ai créer un macro excel , qui se lance a automatiquement a chaque ouverture d un nouveau fichier excel . le probleme que si on ouvre plusierus fichiers excel simultanement ; le macro " se plante" et voila ques qui m affiche comme ereeur: "microsoft excel attend la fin de l execution d une autre action OLE d une autre application"
    SVP , y a t il une solution ?? j'ai pas le choix dans l ouverture des fichier excel puisque c automatique , à chaque export d un nouveau fichier depuis une base de données . merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu ne donnes pas plus d'informations sur le code de cette macro tu n'as pas beaucoup de réponses.

    Philippe

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Par défaut
    Je veut bien , si c'est possible , lancer une macro pour tout les workbook ( classeur) active, c'est à adire, en activons plusieurs fichiers ou classeurs, la macro ce lance pour chaq'un des classeur active.Cette macro permet juste de traiter un seul classeur parmi plusieurs active.Voiçi La macro:

    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
    Dim TimeToRun
    Sub Auto_Open()
         Call scheduleJb
    End Sub
    Sub scheduleJb()
        TimeToRun = Now + TimeValue("00:00:02")
        Application.OnTime TimeToRun, "MacroAutoJB"
    End Sub
     
    Sub MacroAutoJB()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim oWdApp As Object  
     
    Dim i As Byte
    Dim sChemin As String
    Dim wb As Workbook
     
      Dim OutApp As Object
      Dim OutMail As Object
      Dim strbody As String
     
    On Error Resume Next
    Dim nom As String
    Dim sName As String
    Dim sPath As String
     
    On Error Resume Next
    Dim j As Integer
    j = ActiveSheet.UsedRange.Rows.Count 'count number of lines used in the file
     
    Dim n As Byte
    n = Cells(1, Columns.Count).End(xlToLeft).Column
    wb.Name Like "WCotisation*.xls" Then
     
    If ActiveWorkbook.Name Like "Class*.xls" Then
     
    user = Environ("username")
    sName = ActiveWorkbook.Name
    sPath = "C:\Documents and Settings\" & user & "\My Documents\"
    sName = Replace(sName, ".xls", "_Word")
    MkDir sName
    For j = 2 To j 'start the loop the opeation until the next will be for each line used in the file
     
    Set WordApp = CreateObject("word.application") 'ouvre session word
    nom = Sheets(1).Cells(j, 2)
    mail = Sheets(1).Cells(2, n)
    Set WordDoc = WordApp.Documents.Open("C:\Documents and Settings\" & user & "\ClassJb.doc")
    Set oWdApp = CreateObject("Word.Application")
    Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\" & user & "\Classjb.doc")
     
    For i = 1 To n - 1
    'les signets du document Word sont nommés Sig1 , Sig2 , Sig3
    WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i) 
    Next i
    WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2)
    WordDoc.Bookmarks("Sigmail").Range.Text = Cells(j, n)
     
    WordDoc.SaveAs Filename:=sPath & sName & "\" & nom & ".doc"
    WordApp.Visible = False 'affiche le document Word
     
    oWdApp.Quit
    ActiveDocument.Close True
    WordDoc.Quit  
    WordApp.Quit 
     
        Set OutApp = CreateObject("Outlook.Application")
        OutApp.Session.Logon
        Set OutMail = OutApp.CreateItem(0)
     
        strbody = "Bonjour" & vbNewLine & vbNewLine & _
                  "" & vbNewLine & _
                  " la fiche technique que vous souhaiter l'exporter a été envoyer le " & Now & " par " & 
     
    Environ("UserName") & vbNewLine & vbNewLine & _
                  "Ce mail est généré automatiquement" & vbNewLine & _
                   "" & vbNewLine & _
                  "Veuillez ne pas repondre" & vbNewLine & _
                  ""
        On Error Resume Next
        With OutMail
            .To = mail
            .Cc = ""
            .Bcc = ""
            .Subject = nom
            .Body = strbody
            .Attachments.Add (sPath & sName & "\" & nom & ".doc")
             .Send
        End With
        On Error GoTo 0
         Set OutMail = Nothing
        Set OutApp = Nothing
    Next j
    Application.Quit
    End If
     
    Sub auto_close()
        On Error Resume Next
       Application.OnTime TimeToRun, "MacroAutoJB", , False
    End Sub

  4. #4
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,

    Corrige déjà les ActiveWorkbook et autres active...

    pourquoi fais tu la même chose en auto_open et auto_close ? et pourquoi déclencher la macro avec ontime et pas directement?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Par défaut
    Bonjour Oliv;
    Merci pour votre repense , mais j'ai, pas compris qu est ce que je doit changer??

    J voulais que sa soit une macro automatique puisque sa va étre enregistrés et mise en place dans un serveur d'application , donc je peut pas donner la main au utilisateur de la declancher directement..

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Quand La macro va tourner si c'est noté ActiveWorkbook cela fait le traitement sur le classeur actif. et donc pas forcément sur celui qui a lancé la macro !!

    tu peux remplacer par thisworkbook par exemple !

    je renouvelle mes questions pourquoi lancer 2 fois la macro à l'ouverture puis à la fermeture du classeur ?

    et pourquoi avec un délais ?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

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

Discussions similaires

  1. [Toutes versions] Ouvrir plusieurs fichiers Excel simultanément.
    Par mekehari dans le forum Excel
    Réponses: 6
    Dernier message: 30/06/2015, 10h05
  2. Macro unique pour plusieurs fichiers excel
    Par jackbauer972 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/07/2007, 13h41
  3. Réponses: 9
    Dernier message: 10/05/2007, 10h56
  4. Macros sur Plusieurs fichiers Excel
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 11h21
  5. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20

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