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 :

VBA - L'objet invoqué s'est déconnecté de ses clients - Déplacement d'onglet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut VBA - L'objet invoqué s'est déconnecté de ses clients - Déplacement d'onglet
    Bonsoir,

    J'ai une erreur qui apparait lors du déplacement d'onglet.
    Ma procédure génère des onglets et les transferts dans un nouveau classeur.
    à la fin j'aurais environ 300 classeurs... le nombre d'onglets de chaque classeurs est variable (j'en ai un de 91 onglets).

    Lorsque l'erreur apparait, l'onglet déplacé est "corrompu" (il a que 2 graph et des checkbox mais aucune des valeurs renseignées)
    Le pas à pas ne fonctionne plus à partir du while ... wend.
    Avez vous une solution ? T.T
    Mon code :
    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
     
    sub indicateur()
        Dim GestionFichier As New Scripting.FileSystemObject
        Dim ObjOutlook As New Outlook.Application
        Dim OutApp As Object
        Dim OutMail As Object
        Dim strbody As String
        Dim NbAv, NbAv2 As Double
        'Nécessite les références "Microsoft Runtime" et "Outlook"
     
        'Récupère le nom d'utilisateur
        Utilisateur = Application.UserName
        'Crée le dossier Temporaire "TempKPI" dans le dossier Mes documents
        Chemin = "D:\Users\" & Utilisateur & "\documents\Temp"
    (...)
    Workbooks.Add
    Set SourceWb = ActiveWorkbook
    wb = ActiveWorkbook.Name
    fichier = Chemin & "\F1" & "_" & Mid(Now, 4, 2) & "_" & Mid(Now, 7, 4)
     
    While ThisWorkbook.Sheets(1).Name <> "Liste"
    ThisWorkbook.Sheets(1).Move Before:=Workbooks(wb).Sheets(1)
    Wend
    Application.DisplayAlerts = False
        Workbooks(wb).Sheets("Feuil1").Delete
        Workbooks(wb).Sheets("Feuil2").Delete
        Workbooks(wb).Sheets("Feuil3").Delete
     
    On Error Resume Next
    SourceWb.SaveAs fichier & ".xlsx"
     
    Do While EstDansCollection(Workbooks, wb & ".xlsx") = True
    SourceWb.SaveAs fichier & ".xlsx"
    Application.Wait (Now + TimeValue("0:00:01"))
    Loop
    On Error GoTo 0
     
    ActiveWorkbook.Close
    (...) 'Transfert en pj de mail
    -------------------------
    Nota : EstDansCollecton est une fonction qui permet de voir si un classeur est ouvert

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    conformément aux règles de ce forum ‼     Il y a même une démonstration pour les moins doués …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut
    Je me permet un petit Up vu que j'ai posté le message hier soir...
    J’espère que quelqu'un aura la solution, ça me bloque un peu.

  4. #4
    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
    Commence par virer On Error Resume Next, tu y verras peut-être plus clair.

    Sur quelle ligne se produit l'arrêt ? Quel est le message d'erreur ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut
    Bonjour,

    Je n'ai pas de ligne d'arrêt.

    VBA ne veut pas du pas à pas ou de débogage lorsque je déplace les onglets, j'imagine que c'est du à la boucle While Wend ou du déplacement.
    j'ai un message d'erreur avec des chiffres "L'objet invoqué s'est déconnecté de ses clients erreur d'éxecution '-2147417848(80010108

    je peux juste cliquer sur "fin". et ça affiche l'onglet qui devait être déplacé mais qu'avec 2 images (graph) et des checkbox (c'est normal)
    toutes les valeurs textes, chiffres et autres mise en pages ne sont pas présente.

    Le On Error Résume Next c'est pour forcé l'enregistrement et faire attendre la proc VB.
    je la retire quelques lignes après avec "On Error Goto 0".
    Je ne pense pas que ça soit la cause puisque lorsque l'erreur arrive, le fichier ne va pas jusqu’à l'enregistrement (vu qu'il n'est pas dans "mes documents").

  6. #6
    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
    VBA ne veut pas du pas à pas ou de débogage lorsque je déplace les onglets, j'imagine que c'est du à la boucle While Wend ou du déplacement.
    Je n'ai jamais rencontrer de problème pour suivre en pas à pas à l'intérieur d'une boucle.

    Citation Envoyé par Ezeedrone Voir le message
    Le On Error Résume Next c'est pour forcé l'enregistrement et faire attendre la proc VB.
    Il aurait mieux valu utiliser DisplayAlert.
    https://msdn.microsoft.com/fr-fr/lib.../ff839782.aspx

    Je ne pense pas que ça soit la cause puisque lorsque l'erreur arrive, le fichier ne va pas jusqu’à l'enregistrement (vu qu'il n'est pas dans "mes documents").
    Il est peu probable que ce soit la cause de l'erreur. En revanche, il peut masquer la cause de l'erreur.

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Ezeedrone Voir le message
    Bonjour,

    j'ai un message d'erreur avec des chiffres "L'objet invoqué s'est déconnecté de ses clients erreur d'éxecution '-2147417848(80010108
    C'est une erreur de pilotage par OLE. Cela veut dire que ton serveur OLE (l'application que tu pilotes à distance) a perdu le lien avec l'objet qu'il devait traiter. En d'autres termes ta connexion OLE est rompue. Toi, tu essaies de piloter Outlook et FSO. Tu dois donc trouver se qui fait que Outook ou FSO perd as connexion. Apparemment, le fait de promener des objets coupe ta liaison OLE à quelque part

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