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 :

Procédure simultanée - Erreur automation, une exception s'est produite


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut Procédure simultanée - Erreur automation, une exception s'est produite
    Bonjour,

    Je cherche à créer des procédures en simultanées
    je m'inspire de la discussion du forum ici
    après une petite modif pour avoir un UsFr "afficher l'heure" et un UsFr "afficher la position de la souris" (il me semble que s'est un bonne exemple pour créer des procédures en simultanées) je me retrouve avec un message d'erreur de vb: "Erreur automation, une exception s'est produite"
    --> c'est un projet de faisabilité, du brouillon, pas à se soucier de la syntaxe

    Si vous avez une piste car moi je me suis cassé les dents

    PS voir fichier joint, RENOMMER L’EXTENSION EN .xlsm
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    merci de poster le code conformément aux règles du forum, peu prendront le risque d'ouvrir une telle pièce jointe …


    Démonstration fonctionnant comme un charme de mon côté :
    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
    Private Declare Function CreateThread& Lib "kernel32" (zero1 As Any, ByVal zero2&, _
                           ByVal lpStartAddress&, zero3 As Any, ByVal zero4&, empty1&)
     
    Private Declare Function CloseHandle& Lib "kernel32" (ByVal hObject&)
     
     
    Private Sub ProcessusParallele()
        MsgBox "Ca marche !!!" & Space$(18), , "   Processus parallèle"
    End Sub
     
     
    Sub Demo()
        CloseHandle CreateThread(0, 0, AddressOf ProcessusParallele, 0, 0, Empty)
        MsgBox "Processus parallèle créé …", , "   Programme source"
    End Sub
    _________________________________________________________________________________________________
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que l'on ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne … et personne ne sait pourquoi ! (Albert Einstein)


  3. #3
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    OK, je pensais que c’était plus simple de mettre le fichier, j'ai zappé l'aspect sécurité.

    Donc voici mon code
    dans le module principale
    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
    Option Explicit
     
    Private Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
     
    Private Sub TacheAsynchrone()
        UserForm2.Show
    End Sub
     
    Public Sub Lanceur()
        Dim hThread As Long, hThreadID As Long
        hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf TacheAsynchrone, ByVal 0&, ByVal 0&, hThreadID)
        UserForm1.Show
        CloseHandle hThread
    End Sub
    dans le UserForm1 avec 2 textbox:
    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
    ' Position de X et Y par rapport a l'écran
    Private Declare Function GetCursorPos Lib "user32" ( _
        lpPoint As POINTAPI) As Long
     
    ' Position de X et Y par rapport a la fenètre et a GetCursorPos
    Private Declare Function ScreenToClient Lib "user32" ( _
        ByVal hwnd As Long, _
        lpPoint As POINTAPI) As Long
     
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
     
    ' Affiche un point sous le curseur quand on clique sur la feuille
    Private Sub UserForm_Click()
     
    End Sub
     
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim pos As POINTAPI
    GetCursorPos pos
    ScreenToClient 0, pos
    TextBox1.Text = pos.X
    TextBox2.Text = pos.Y
    End Sub
    dans le UserForm2 avec un Label:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Activate()
        For i = 0 To 10000
            Label1.Caption = Now()
        Next i
    End Sub

  4. #4
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut




    Plante pareil de mon côté, donc procédure parallèle à oublier avec un UserForm !

    Et c'est peut-être inutile, voir l'aide de la propriété ShowModal d'un UserForm


  5. #5
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    voir l'aide de la propriété ShowModal d'un UserForm
    Déjà explorer

    Merci pour ton temps

Discussions similaires

  1. EOleSysErr "Une exception s'est produite"
    Par nezhaaem dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/08/2010, 15h55
  2. (error '80020009' Une exception s'est produite
    Par pouchkine dans le forum ASP
    Réponses: 3
    Dernier message: 01/05/2009, 10h49
  3. error 80020009 une exception s'est produite
    Par Riouxe21 dans le forum ASP
    Réponses: 6
    Dernier message: 21/12/2004, 11h01
  4. erreur Une exception s'est produite
    Par unix27 dans le forum ASP
    Réponses: 5
    Dernier message: 23/11/2004, 02h38
  5. erreur :"une exception s'est produite"
    Par leborg dans le forum ASP
    Réponses: 11
    Dernier message: 02/03/2004, 15h09

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