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 :

cherche explication sur declaration [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut cherche explication sur declaration
    bonjour a tous


    j'ai l'habitude de me servir d'une variable object que je déclare en public dans un module pour déterminer l' userform
    ensuite dans le activate je met "set maform=me"


    parti de la je fait tout ce que je veux avec cette variable

    exemple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    handle = FindWindowA(vbNullString, maform.Caption) 'détermine le handle de la form
    mais j'ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    handle = FindWindowA("Thunder" & IIf(Application.Version Like "0*", "0", "D")& "Frame", UF.Caption)
    qui fonctionne aussi mais je voudrais comprendre la formule


    quelqu'un pourrais me traduire en français ce que ça veut dire


    merci

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut
    dans la déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    le paramètre lpClassName, si spécifié, spécifie un nom de classe (de fenêtre)
    Je comprendrais volontiers ce que serait la classe ThunderFrame, mais ne suis pas trop sûr de ce que serait ThunderDFrame (bien que je devine qu'il représente la classe d'un UserDForm). Je ne vois par contre pas ce que pourrait être la classe Thunder0frame
    Serait-ce en raison d'une représentation (en chaîne) différente selon la version de Office ? C'est là la seule explication plausible.

    EDIT : et si tu nous exposais ta préoccupation ?
    Serait-elle simplement d'éviter de risquer d'extraire le handle d'une frenêtre autre qu'un UserForm et qui serait malencontreusement à la fois ouverte et affublée du même titre que celui de ton UserForm ?

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour babaothe

    Merci pour ta réponse
    Ce qui m'intéresse c'est simplement de comprendre et effectivement j'ai eu le même raisonnement que toi.

    Et c'est le (0*)et "0" qui me pose problème dans la compréhension de la macro.
    Sinon oui je ne vois que cette explication pour la frame cela dit je n'en suis pas sûr.
    En tout cas çà fonctionne très bien.
    Moi je veux juste comprendre c'est tout.

    Merci à toi
    N'hésite pas a donner l'info si tu trouve autre chose sur ce sujet.

    Je vais chercher moi aussi de mon coté.

    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Chaque fenêtre Windows a une nom de classe associé.
    ThunderDFrame est le nom de la classe des userform, pour les versions Excel 2000 et + et ThunderXFrame pour XL97

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour mercatog
    et merci la je comprend mieux

    donc si je voudrais encore réduire le code je pourrais garder que le "d" (office 2007)

    une dernière question a ce sujet j'utilise habituellement une variable object

    pour identifier le usf

    la quelle méthode et la plus valable selon toi??



    merci a tout les deux je m'endormirais moins bete ce soir

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Dans tous les cas, tu dois définir la caption de ton usf en 2ème paramètre

    si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handle = FindWindow(vbNullString, "blabla")
    Tu récupère le handle de la fenêtre ayant comme caption (nom) blabla
    par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handle = FindWindow("ThunderDFrame", "blabla")
    Tu récupère le handle de l'userform ayant comme caption (nom) blabla

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

Discussions similaires

  1. Débutant cherche explications sur Tkinter
    Par Khar14 dans le forum Général Python
    Réponses: 3
    Dernier message: 23/09/2014, 12h37
  2. Cherche une petite explication sur le mvc
    Par keviin55 dans le forum Modélisation
    Réponses: 5
    Dernier message: 01/06/2011, 23h57
  3. Cherche explication sur la fonction filler
    Par apt dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2011, 13h52
  4. cherche explication sur du code
    Par abdoulzak dans le forum Langage
    Réponses: 1
    Dernier message: 06/07/2006, 10h23
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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