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 :

Intercepter un clic dans un userform pendant l'ex�cution d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut Intercepter un clic dans un userform pendant l'ex�cution d'une macro
    Dans un userform j'ai une proc�dure assez longue que je souhaiterais pouvoir interrompre � l'aide d'un clic de souris quand j'ai obtenu un certain r�sultat, mais pas n�cessairement, pouvant souhaiter que la proc�dure se poursuive.
    Un test sur le r�sultat en question qui interromprait la proc�dure n'est pas possible, ce r�sultat n'�tant pas connu � l'avance.
    Seul l'oeil peut dire au bon moment "j'arr�te !" ou "j'arr�te pas !"
    J'ai pens� le faire en interceptant la frappe d'une touche mais j'ai le souvenir d'un code assez lourd et peu fiable, faisant appel entre autres � GetAsyncKeyState, Addressof, SetTimer et autres amusant KillTimer (qui, lui, fonctionnait une fois sur deux)
    Bref, �a fonctionne parfois mais c�pa�a.
    En fait, ce que je veux, c'est pouvoir interrompre une macro quand je veux mais conserver les r�sultats d�j� obtenus.

    Il y a peut-�tre quelque chose � faire avec EnableEvents mais je ne vois pas
    Si quelqu'un avait une id�e, je serais tr�s content
    Par avance, merci.

  2. #2
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Salut Ousk,

    Jette un oeil sur le fichier joint si ce petit bout de code r�pond � tes attentes.

    Pi�ce jointe 28098

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    Merci, Fring,
    �a y est, je me suis lev� bien r�veill� et j'ai trouv� !
    J'avais essay� ta solution mais elle ne fonctionnait pas parce que je voulais utiliser le m�me bouton. Or j'avais mis le code dans l'�v�nement Click si bien que le bouton restait inaccessible ("enfonc�")
    La solution ? Passer le code dans MouseUp. Le bouton conserve le focus mais r�pond aux �v�nements.
    C'est tout � fait ce qui me convient.
    Ainsi je peux utiliser le m�me bouton qui passe de "Lancer la macro" � "Interrompre la macro" selon que le boolean est true ou false.
    Merci beaucoup, c'est bien ta solution qui m'a conduit � voir un peu plus loin que le click d'un bouton

    Si �a t'int�resse de savoir ce que j'en ai fait, regarde l'userform, ici

  4. #4
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Joli

    Mais j'ai un bug au survol de la souris, sur cette ligne
    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
    Public Function ChercherPartout(PathRep As String, NomFich As String, Optional SousRep As Boolean = True) As Boolean
    Dim fs, f, NomRep, RepFich As Variant
    Set fs = CreateObject("Scripting.FileSystemObject")
        If Not Go Then Exit Function
        Me.Label1.Caption = "Recherche dans le r�pertoire " & vbCr & PathRep
        DoEvents
        PathRep = PathRep & "\"
        If Dir(PathRep & NomFich) <> "" Then   <---
            Me.ListBox1.AddItem PathRep
        End If
        If SousRep Then
            For Each RepFich In fs.GetFolder(PathRep).SubFolders
                PathRep = RepFich.shortpath
                ChercherPartout = ChercherPartout + ChercherPartout(PathRep, NomFich, SousRep)
            Next RepFich
        End If
        ChercherPartout = ListBox1.ListCount > 0
    End Function
    Je verrais bien aussi 2 Combo's, une qui permettrait de s�lectionner la partition (� l'initialisation du Usf un check serait fait pour v�rifier les partitions existantes) et l'autre qui permettrait de s�lectionner le type de fichier (choix de l'extension via une liste d�roulante) avec pour cette derni�re une possibilit� "autre" qui laisserait l'utilisateur introduire l'extension manuellement afin de se limiter � faire une liste d"extensions courantes

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    Citation Envoy� par fring
    Mais j'ai un bug au survol de la souris, sur cette ligne
    L�, je ne comprends pas, je n'ai aucun test sur un �v�nement mousemove dans l'userform. Seuls s'affichent les ControlTipText mais l�, je ne comprendrais pas une interaction...
    Tu peux pr�ciser les conditions ?
    Pour une liste des volumes, j'y ai pens� mais ce sera pour une prochaine version. Au d�part, je voulais compter les fichiers d'un r�pertoire... Et puis je me suis dit...
    pour les extensions, je pourrais carr�ment les supprimer du test. Mais je devrai alors les ajouter dans la listbox. C'est faisable. On verra �a dans "V.0.2" s'il s'av�re que mon bidule int�resse les gens
    Tu me dis pour le passage de la souris ?
    Merci
    A+

  6. #6
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Citation Envoy� par ouskel'n'or Voir le message
    Tu peux pr�ciser les conditions ?
    • Temp�rature : 8�C
    • Vent : 19km/h, orientation Ouest
    • Pression : 1010 millibars
    • Humidit� : 93%


    Edit : Apparement le lien vers l'autre post n'est plus valide
    ReEdit : m�me si je le laisse terminer sa recherche, il bug sur cette m�me ligne lorqu'elle est termin�e

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    Comme je n'ai rien de tel, je vais te poser une question indiscr�te : Tu es sur quelle version d'Excel ?
    (pendant que tu me r�ponds, je vais ajouter Option Explicit s'il n'y est pas... sait-on jamais...)
    A+

    Edit
    Il y est bien
    Pour le lien, j'ai effectivement remplac� le fichier, tu peux de nouveau tester ?
    Merci

  8. #8
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Ya une ligne que je ne comprend pas dans ton code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    NomFich = Me.ListBox1 & Me.TextBox2
    NomFich ne devrait pas �tre �gale � ?

    Edit : Excel 2000 Avant JC

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    ListBox1 contient le r�pertoire, TextBox2 le nom du fichier.
    Peux-tu regarder ma r�ponse pr�c�dente ?
    A+

    C'est d'ailleurs pourquoi j'avais pr�cis�
    Citation Envoy� par ousk'
    pour les extensions, je pourrais carr�ment les supprimer du test. Mais je devrai alors les ajouter dans la listbox.
    avec le nom du fichier, bien s�r !

    Edit
    J'ai corrig� le lien

    Tiens, je m'aper�ois que j'ai deux variables qui ne servent � rien... Je vais faire le m�nage (et changer le lien... )

  10. #10
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Le probl�me vient sans doute de l�, chez moi �a donne :
    • nom du r�pertoire = TextBox1
    • nom du fichier = TextBox2
    • r�sultat de la recherche = ListBox1

  11. #11
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Je n'ai rien dit...je regardais dans la macro "Ouvrir" o� l� NomFich est bien ListBox1 + TextBox2

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    Ouf !
    Et pour le bug de la souris ? Tu peux le reproduire ? En as-tu toujours 1 sur
    If Dir(PathRep & NomFich) <> "" Then <---
    Tu m'inqui�tes car l�, je ne vois pas ce que je dois modifier

  13. #13
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Oui et j'ai �galement ce bug � la fin de la recherche, sans avoir manipul� la souris, pour le moment je ne vois pas non plus pourquoi �a couine

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    J'ai peut-�tre une id�e. Je teste quelque chose.
    Mon id�e : Certains tests cens�s retourner un string renvoient un boolean s'ils sont n�gatifs (je n'ai pas l'exemple en m�moire et si je le cite, c'est au cas o� quelqu'un ait un exemple )
    Bref, quand je teste PathRep & NomFich) <> ""
    Mon interrogation est : Que renvoie Dir dans ce cas l� ? un boolean ou un une cha�ne vide ?
    Si c'est un boolean, � part une gestion d'erreur, je ne vois pas par quel test remplacer.
    Tu as une id�e ?

    Mon probl�me est aussi que je ne peux pas reproduire l'erreur que tu constates

  15. #15
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Il y a une �volution, j'ai ajout� "On Error Resume Next" avant Dir(pathrep & nomfich), l� il poursuit la recherche jusqu'au bout sans buguer mais un truc zarbi qui se produit chez moi, il me trouve bien le ou les fichiers dans les diff�rents sous-r�pertoires et en fin de recherche il commence � ajouter dans la liste des r�sultats trouv�s
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    D:\System~1\
    D:\System~1\\
    D:\System~1\\\
    D:\System~1\\\\
    D:\System~1\\\\\
    D:\System~1\\\\\\
    D:\System~1\\\\\\\
    D:\System~1\\\\\\\\
    ...etc...des lignes et des lignes chaque fois incrémentées d'une \

  16. #16
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par d�faut
    Bonjour,

    Lorsque vous en aurez fini et serez tout � fait pr�ts � exposer les tenants et aboutissants sans xls interpos� (je ne mettrrais en effet jamais un xls et encore moins un xla en route ...), faites signe, hein ...

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    Tiens, j'ai recr�� compl�tement mon fichier sur VBA 97... Toujours pas d'erreur, tu peux le tester. Pi�ce jointe 28115
    A+

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    12 464
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 12 464
    Par d�faut
    Citation Envoy� par ucfoutu Voir le message
    Bonjour,

    Lorsque vous en aurez fini et serez tout � fait pr�ts � exposer les tenants et aboutissants sans xls interpos� (je ne mettrrais en effet jamais un xls et encore moins un xla en route ...), faites signe, hein ...
    Hello, tu es r�veill� ?
    Pour ton info, tu sais qu'ici on est sur le forum VBA - Excel ?
    Mais bon un forum c'est fait pour �changer des points de vue
    Ceci dit, que demandes-tu que je passe ma proc�dure sur VB6 ?
    A+

  19. #19
    Expert confirm�
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    F�vrier 2008
    Messages
    3 900
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Engineering

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 3 900
    Par d�faut
    Citation Envoy� par ouskel'n'or Voir le message
    Tiens, j'ai recr�� compl�tement mon fichier sur VBA 97... Toujours pas d'erreur, tu peux le tester. Pi�ce jointe 28115
    A+
    M�me combat...

    Ca serait bien que l'une ou l'autre personne le teste �galement, d�s fois que ce serait mon pc qui est envo�t�

  20. #20
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par d�faut
    Citation Envoy� par ouskel'n'or Voir le message
    Hello, tu es r�veill� ?
    Pour ton info, tu sais qu'ici on est sur le forum VBA - Excel ?
    Mais bon un forum c'est fait pour �changer des points de vue
    Ceci dit, que demandes-tu que je passe ma proc�dure sur VB6 ?
    A+
    Non...

    Mais si tu es toi, pr�t � lancer un xls ou un xla de mon cru, les yeux ferm�s, ... tu dis ...
    Moi, je pr�f�re prot�ger' mon portable.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. [VBA-E] Rafraichir le Userform pendant l'exec d'une macro
    Par amalane dans le forum Macros et VBA Excel
    R�ponses: 6
    Dernier message: 12/04/2020, 15h54
  2. Naviguer dans les feuilles pendant l'execution d'une macro
    Par scons dans le forum Macros et VBA Excel
    R�ponses: 6
    Dernier message: 22/04/2011, 15h33
  3. [XL-2003] Afficher un message d'attente pendant l'ex�cution d'une macro
    Par demongin dans le forum Macros et VBA Excel
    R�ponses: 9
    Dernier message: 07/06/2009, 20h54
  4. [XL-2003] Masquer l'ouverture de fichiers pendant l'ex�cution d'une macro
    Par thibane dans le forum Macros et VBA Excel
    R�ponses: 5
    Dernier message: 30/04/2009, 08h10
  5. Affichage d'un message d'attente pendant l'ex�cution d'une macro
    Par shadok6 dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 08/10/2008, 14h49

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