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 :

Fenetre espion en VBA [Toutes versions]


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
    Inscrit en
    Septembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 14
    Par défaut Fenetre espion en VBA
    Bonjour,

    Je cherche à créer l'équivalent de la fenêtre espion d'Excel via un userform, mais je suis vraiment Newbie sur ce coup là.

    Problème:
    Afficher pour l'utilisateur final la valeur présente dans certaines cellules, à chaque modification d'une cellule quelque soit la feuille modifiée l'affichage doit se mettre à jour, et il doit être toujours visible


    Je suis arrivé à quelque chose qui fonctionne mais qui me laisse quelques questions...
    Pour le test à chaque modification de cellule j'incrémente la cellule A1 que je fais afficher via un TextBox.

    1) A quoi sert cette commande ? ( Je l'ai récupéré sur le web sur une autre routine) sans elle ça ne fonctionne pas (L'incrémentation se fait via un pas de 52 ???)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.EnableEvents = False
    Application.EnableEvents = True
    2) De plus je voudrais qu'à chaque changement dans une cellule de n'importe quelle feuille le UserForm se mette à jour, seulement quand j'essaye de passer la mise à jour sur le Workbook_SheetChange (J'espère que c'est bien là), je me retrouve avec quelque chose qui ne marche pas (Un peu comme si je ne mettais pas les lignes Application.EnableEvents.


    3) J'ai l’impression de charger plein de fois le userform, vais-je avoir un problème de mémoire, sachant qu'il doit toujours resté visible
    Le truc qui ne me plait pas trop, c'est que je doive en permanence réaffecter la valeur au textBox.value, j'aurais bien dans l'idée d'attribuer en permanence à la TextBox la valeur de La cellule en question (A1) dans mon test mais ou dois-je mettre ce lien ? dans les propriétés ?



    Voilà le fichier


    http://cjoint.com/?DLvjyxnJM15

    En attendant vos commentaires éclairés

    En vous remerciant par avance pour votre aide.

    Cordialement

    Golempas

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 557
    Par défaut
    Bonjour

    La fonctionnalité intégrée nativement dans Excel ne suffit-elle pas : Onglet formules, Fenêtre espion ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 14
    Par défaut
    Bonjour 78Chris,
    non, pas vraiment, je compte pouvoir mettre des mises en formes et d'autres petites choses par la suite, chose que ne fait pas la fenêtre espion à ma connaissance.


    Cordialement,
    Golempas

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    1) A quoi sert cette commande ?
    à ne plus surveiller les événements.
    Tu es dans l'événement Change et tu écris sur la feuille, ce qui re-déclenche un Change etc.
    Si tu ne le mets pas tu entres dans une boucle infinie qui fini par un plantage.
    Tu peux très bien conserver ton compteur dans une variable de portée module (ou globale avec Public au lieu de Dim si tu en as besoin dans d'autres modules). Ainsi plus d'événements Change en cascade.
    A moins que tu ne désires conserver le compteur à la prochaine ouverture. Dans cas l'inscrire à la fermeture et le charger à l'ouverture.

    2) Il faut te mettre dans ThisWorkbook Workbook_SheetChange() qui reçoit tous les Changes de toutes les feuilles.
    Voir exemple allégé joint

    3) J'ai l’impression de charger plein de fois le userform
    Pourquoi ne pas faire un seul .show avec vbModeless ? Ca ne sert à rien de le remettre dans Change (?)

    eric
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 14
    Par défaut
    Bonsoir Eriiic,

    Merci de votre commentaire,

    Je comprends mieux à quoi servent ces lignes et leur utilité, forcément que ça ne marchait pas sinon.

    Sinon je ne connaissais pas le vbmodeless, il sert juste à passer l'userform en mode non modal ? ou a-t-il une autre fonction ?

    En fait je veux que le userForm soit toujours visible, d'ou mon idée de le forcer à se ré-afficher à chaque modif, (sinon les utilisateurs vont le fermer et ne plus l'avoir sous les yeux, ce qui peut leur être pratique ponctuellement, mais dès que les modifs vont reprendre, il faut qu'il s'affiche à nouveau).

    Normalement pour qu'il s'affiche à nouveau j'aurai juste à placer UserForm1.Show vbModeless dans le Workbook_SheetChange, ou cela pose t-il un problème ?

    Je vais regarder votre fichier et je reviens vers vous.

    En tout cas déjà un grand merci pour votre aide précieuse.

    Cordialement,

    Golempas

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    il sert juste à passer l'userform en mode non modal ?
    oui

    Perso pour le ré-afficher je ne mettrais que dans Workbook_SheetActivate.
    Que celui qui n'en veut pas ponctuellement puisse s'en débarrasser. Changer de feuille le rappelle.
    Mais aucun inconvénient qu'il soit dans Workbook_SheetChange.

    eric

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

Discussions similaires

  1. [XL-2010] impossible fenetre espion
    Par pilounet54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2013, 11h51
  2. visualisation de la fenetre espions
    Par new_wave dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 16/08/2006, 15h39
  3. [VBA-E]Difficulte d'utilisation de la fenetre 'Parcourir'
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2006, 16h27
  4. [VBA-E] fenetre de selection de feuilles...pourquoi ?
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/11/2005, 09h45
  5. variable globale + fenetre de debogage vba
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 08/09/2005, 11h32

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