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 :

[MACRO EXCEL 4] =ZONE.DE.DIALOGUE


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut [MACRO EXCEL 4] =ZONE.DE.DIALOGUE
    Bonjour,
    Je récupère une macro créée avec XL4 et je rencontre une difficulté à interpréter la zone de dialogue.
    Je suis actuellement sur Excel 2007 avec un fichier enregistré sous excel 2003.

    Pour exemple, je prends une zone de dialogue qui affiche des dates.


    Nom : zone-de-dialogue2.jpg
Affichages : 967
Taille : 37,8 Ko

    Nom : zone-de-dialogue.jpg
Affichages : 908
Taille : 17,7 Ko

    Si je comprends que la cellule 1 renvoie à une case bouton sélectionnée par défaut,
    la case 2 à un bouton Annuler non sélectionné par défaut, je ne parviens pas à interpréter les autres valeurs.
    8 doit peut être correspondre à une zone texte ?

    Je me retrouve ainsi avec plusieurs chiffrements que je ne comprends pas.
    Savez vous où je pourrais trouver une doc à ce sujet ?
    Ou quelque aventurier(e) aurait la gentillesse de m'aiguiller ?
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    J'y connais rien non plus mais je trouve une certaine logique!
    Les libellés ont une largeur défini par la longueur du texte, on ne voit pas de valeur!
    Il doit y avoir la position vertical;la position horizontale;la largeur du contrôle et le texte et tu as sans doute raison la première colonne est le type de contrôle,la dernière étant la valeur par défaut.

    Je ne vois pas le but de t'a question car si tu veux passer en vba il faut tout réécrire!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Merci pour cette réponse.
    Le but est de ne pas tout réécrire mais de comprendre. J'ai un bug sur une autre zone de dialogue et je voudrais pouvoir comprendre pourquoi. Tout réécrire est impossible.
    J'ai identifié que le chiffre 12 correspondait à des groupe d'options et le chiffre 13 à des boites à cocher... Mais si je comprenais les autres chiffres ou du moins la logique, je serai plus avancé. J'imagine qu'il a du exister une documentation à ce sujet ?..
    Ed.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Regarde les 2 zones de textes la 8;56;39 ou 58;160 type control;left;topt;largeur

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Effectivement, ces chiffres correspondent aux mesures et le premier, au type control.
    Existe-t-il un endroit où je peux retrouver la liste des type control utilisés ?

    J'ai un souci avec les cases à cocher. Jusqu'à maintenant je pouvais rajouter des lignes à ma zone de dialogue.
    Et soudainement au 33e enregistrement, il bugue. Je peux créer mais quand j'appelle ma boite de dialogue, il met : erreur dans boite de dialogue sur la dernière ligne créée...
    Y a-t-il un nombre maximum dans une zone de dialogue sur les cases à cocher ?.. (cela ne me le fait pas dans les groupes d'options...)
    Si vous avez des pistes de réflexion, je prends.
    Merci d'avance.
    Ed

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Fais une copie de ton fichier et test des valeur de contrôle 1,23....

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Merci ! Heureusement que tu es là... Je suis un peu paralysé devant le bugue

    Mon idée était de remplacer les checkboxes par une liste déroulante par exemple. Mais ça ne marche pas...
    Ce que je comprends à ce jour c'est que ma ligne =ZONE.DE.DIALOGUE(plage_checkbox) fonctionne bien avec 32 éléments.
    Au 33e, ça bugue.
    Si par exemple je modifie la liste de checkboxes et que je mets certaines valeurs différentes de 13 (le code de checkbox) et bien la boite de dialogue s'affiche jusqu'au nombre fatidique de 33 checkboxes.
    Aussi, je me demande pourquoi il y aurait une limite, surtout que ma boite de dialogue avec des groupes d'option, elle, s'affiche bien avec 33 éléments...
    Tout ceci est très bizarre.
    La doc internet sur macro xl4 est super lège... Si quelqu'un du forum a des idées pour prendre le problème et/ou le contourner...
    Merci !
    Ed.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je ne connais pas du tout xls4, sauf y aller a l'instinct en ce basant sur l'existant???

  9. #9
    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,

    Une antiquité retrouvée, Xlmacr8.hlp...
    Je n'ai pas réussi à le mettre sur le site : http://cjoint.com/?EBiprOlPYIt

    L'extrait si tu as du mal à ouvrir les .hlp :
    ZONE.DE.DIALOGUE(réf_dialogue)

    Réf_dialogue est une référence à une table de définition de boîte de dialogue dans une feuille ou à une matrice contenant la table de définition.

    Si le bouton "OK" est choisi dans la boîte de dialogue les valeurs saisies dans les champs sont mises à jour dans la zone réf_dialogue et ZONE.DE.DIALOGUE renvoie le numéro de position du bouton choisi. Les numéros de position commencent par 1 pour la seconde ligne de la table de définition de boîte de dialogue.
    Si le bouton "Annuler" est choisi dans la boîte de dialogue, ZONE.DE.DIALOGUE renvoie FAUX.

    La table de définition de boîte de dialogue doit avoir une largeur d'au moins sept colonnes et une hauteur d'au moins deux lignes. Le tableau ci-dessous donne les définitions de chaque colonne d'une table de définition de boîte de dialogue.

    Type de colonne Numéro de colonne

    Numéro d'élément 1
    Position horizontale 2
    Position verticale 3
    Largeur d'élément 4
    Hauteur d'élément 5
    Texte 6
    Valeur initiale ou résultat 7

    La première ligne de réf_dialogue définit la position, la taille et le nom de la boîte de dialogue. Elle peut aussi spécifier l'élément sélectionné par défaut et la référence du bouton "Aide". La position est spécifiée dans les colonnes 2 et 3, la taille dans les colonnes 4 et 5, et le nom dans la colonne 6. Pour spécifier un élément par défaut, placez son numéro de position dans la colonne 7. Vous pouvez placer la référence du bouton "Aide" dans la ligne 1, colonne 1 de la table, mais l'emplacement prédéfini est la colonne 7 de la ligne où est défini ce bouton. Ligne 1, colonne 1 est généralement laissé vide. Le tableau ci-dessous donne la liste des numéros des éléments que vous pouvez afficher dans une boîte de dialogue.

    Elément de boîte de dialogue Numéro de l'élément

    Bouton "OK" par défaut 1
    Bouton "Annuler" 2
    Bouton "OK" 3
    Bouton "Annuler" par défaut 4
    Texte fixe 5
    Zone de modification de texte 6
    Zone de modification d'entiers 7
    Zone de modification de nombres 8
    Zone de modification de formule 9
    Zone de modification de référence 10
    Groupe de cases d'option 11
    Case d'option 12
    Case à cocher 13
    Zone de groupe 14
    Zone de liste 15
    Zone de liste liée 16
    Icônes 17
    Zone de liste de fichiers liés (Windows uniquement) 18

    Zone de lecteur de disque ou de répertoire lié (Windows uniquement) 19
    Zone de texte du répertoire 20
    Zone combinée déroulante 21
    Zone combinée déroulante modifiable 22
    Image (définie comme bouton de boîte de dialogue) 23
    Bouton "Aide" 24

    Remarques

    Ajoutez 100 à un numéro d'élément dans le tableau ci-dessus pour définir l'élément comme déclencheur. Un déclencheur est un élément de boîte de dialogue qui, lorsqu'il est choisi, rend la main à votre macro (comme le ferait "OK"), mais qui continue d'afficher la boîte de dialogue, ce qui permet à votre macro de changer la définition de la boîte de dialogue ou d'afficher un message d'alerte ou une autre boîte de dialogue. Le bouton "Aide", les zones de modification, les zones de groupe, le texte fixe et les icônes ne peuvent pas être des déclencheurs.

    Ajoutez 200 à un élément pour le définir comme estompé. Un élément estompé (grisé) ne peut pas être choisi ou sélectionné. Par exemple, 203 est un bouton "OK" estompé. Vous pouvez utiliser l'élément 223 pour inclure une image dans votre boîte de dialogue qui ne se comporte pas comme un bouton.
    Si un élément déclencheur a été choisi et si vous voulez supprimer une boîte de dialogue dynamique de l'écran, utilisez ZONE.DE.DIALOGUE(FAUX). Ceci est pratique lorsque vous voulez confirmer que la boîte de dialogue a été remplie correctement avant de la fermer.

    La table de définition de boîte de dialogue peut être une matrice. Si réf_dialogue est une matrice plutôt qu'une référence, ZONE.DE.DIALOGUE renvoie une copie modifiée de cette matrice, ainsi que les résultats de la boîte de dialogue, dans la septième colonne. (Le premier élément de la septième colonne est le numéro de position du bouton choisi ou d'un élément déclencheur.) Cela est utile si vous voulez préserver la table de définition d'origine, car ZONE.DE.DIALOGUE ne modifie pas l'argument de matrice d'origine. Si vous annulez la boîte de dialogue ou si une erreur de boîte de dialogue se produit, ZONE.DE.DIALOGUE renvoie FAUX à la place d'une matrice.


    eric

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Merci Eric ! C'est exactement ce que je recherchais.
    Effectivement les extensions hlp demandent un patch sur windows 7.
    C'est donc très précieux d'avoir les informations dans le message.
    Je vais tester en format liste pour voir si mon plafond de 33 saute.
    Le dernier paragraphe me demande quelques recherches sur la notion de matrice et cela m'ouvrira peut être des perspectives pour débuguer et afficher ma boite de dialogue avec 33 éléments et plus.

    En tous les cas, grand merci pour ces infos.
    Ed.

  11. #11
    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,

    Au cas où :
    (WinHlp32.exe) pour Windows 7
    https://www.microsoft.com/fr-fr/down...ils.aspx?id=91
    Les hlp ont été supprimés de windows apparemment pour raison de sécurité. A savoir si tu préfères le désinstaller après.

    eric

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Bonjour,

    J'ai installé le patch mais rien n'y fait.
    Je tombe sur l'erreur suivante, répertoriée chez microsoft, quand je double click sur le fichier .hlp

    Impossible d'accéder aux fichiers .hlp qui sont stockés sur les sites intranet

    Par défaut, vous ne pouvez pas utiliser WinHlp32.exe pour accéder aux fichiers .hlp qui sont stockés sur les sites intranet. Si vous essayez d'ouvrir un fichier distant, le message d'erreur suivant s'affiche :
    Impossible d'afficher ce fichier d'aide. Essayez une nouvelle fois d'ouvrir ce fichier d'aide. Si ce message est encore affiché, copiez le fichier d'aide sur un lecteur différent et réessayez.
    Si vous avez besoin d'accéder aux fichiers .hlp stockés sur les sites intranet, vous pouvez les débloquer à l'aide de la solution de contournement de la stratégie de groupe ou de Registre qui est décrite à la section « Entrées de Registre et stratégies de groupe pour les administrateurs réseau ».
    Je ne parviens pas à savoir où je dois mettre ce fichier .hlp.

    J'ai également voulu désinstaller winhlp32.exe que je venais d'installer. Impossible de le localiser (il n'est pas dans desinstaller programme par exemple)...

    Et ma macro qui refuse de prendre plus de 33 lignes en cases à cocher ...
    La valeur 13 de la dernière ligne fait buguer...
    Je désespère.
    Merci quand même de ton aide.
    Ed.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2014, 18h53
  2. [XL-2010] Macro : Insertion Graph Excel sous zone texte PPT
    Par Marneus22 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/08/2013, 09h02
  3. [XL-2007] Macro affecté à une boîte de dialogue microsoft excel
    Par maharo1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2012, 09h55
  4. débutant en VBA je n'arrive pas à finir ma macro excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2005, 12h20
  5. Porter une macro Excel vers OpenOffice
    Par totofweb dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 13/07/2004, 13h20

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