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 :

For Each et Frame(s) en dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Août 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut For Each et Frame(s) en dynamique
    Bonjour,
    Heureux de revenir sur le forum après une longue absence (retraite) et donc une perte de compétences

    J'ai beau tourner ici et là depuis plusieurs jours, appliquer avec modification les solutions possibles rencontrées, rien n'y fait: je garde le bec dans l'eau.

    Mon problème (ramené à sa plus simple expression) est celui-ci:
    Dans une UserForm, j'ai 2 Frame (en fait, l'objectif final est 40) et chacune contient 4 Option Buttons (je recherche évidemment celui dont la valeur est True).
    Comment en dynamique, passer du Frame 1 au Frame 2 (une fois récupéré le "True" recherché bien entendu)?
    Pour créer mon propre code (que je ne joins pas: les différents essais ne débouchent sur rien), j'ai essayé de m'appuyer sur les § II-C et II-L du l'excellent tuto http://silkyroad.developpez.com/VBA/...serForm/#LII-L.
    Avec mes remerciements anticipés à qui cherchera une solution à mon pb.

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    As-tu regardé du côté du ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("nomcontrôle")
    Il est possible de mettre ce contrôle dans une variable (comme pour de la création dynamique).

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Une piste avec le code suivant qui réagit par un clic gauche dans le UserForm.
    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
    Private Sub UserForm_Click()
    Dim CT As Control
    Dim CT2 As Control
    Dim FR As Frame
    '---
    For Each CT In Me.Controls
      If TypeName(CT) = "Frame" Then
        Set FR = CT
        For Each CT2 In FR.Controls
          If TypeName(CT2) = "OptionButton" Then
            If CT2 Then
     
              MsgBox FR.Name & "   " & CT2.Name & "  " & CT2.Value
     
            End If
          End If
        Next CT2
      End If
    Next CT
    End Sub
    Fichiers attachés Fichiers attachés

  4. #4
    Membre à l'essai
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Août 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Merci à vous deux!

    Oui Gado2600, j'avais regardé du coté de Me.Controls! Sans succès.

    Merci derechef à toi PMO2017 pour ta proposition de codage.
    ça m'a l'air parfait!!
    Le temps d'adapter cela à mon besoin (ce ne peut être tout de suite: je pars en formation dans un instant) et très probablement je marquerai résolu.
    Après un dernier petit message.
    Demain probablement.
    Cordialement.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Août 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour PMO2017!
    Je reviens vers toi pour un suivi.
    Je vais avoir besoin de toi je le crains.
    Ta procédure fonctionne parfaitement bien sur une UserForm2 de test. Très sommaire mais en rapport avec le but recherché: la création d'un QCM.
    Bizarrement, reportée telle quelle dans le code de la UserForm1, elle ne fonctionne pas.
    Je cherche à comprendre depuis hier (bien sûr) mais mon incompréhension reste totale.
    Aussi, je suis en train de te préparer une mouture réduite (très!!) de mon QCM avec sa UserForm1 où tu pourras juger par toi-même de ce que j'écris ci-dessus. Il y aura aussi cette UserForm2 réduite et qui (avec le même code) fonctionne.
    Bonne continuation en attendant.

    re-Bonjour PMO2017!
    Un détail oublié tout à l'heure: je ne peux pas lire les ".xlsm"
    Ceci étant dit, après avoir complété le UserForm2 à la manière du UserForm1 et simplifié à outrance le code de cette dernière, ma perplexité va augmentant.
    Ce qui bloque avec la "1" est probablement si énorme... que je ne le vois pas!
    Je serais heureux que tu m'éclaires... si cela te dit bien entendu!
    Cordialement
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Il n'y a aucune chance que cela fonctionne.
    Les Labels contenant les propositions de réponses ne sont pas rattachés aux OptionButtons.
    Il faut revoir entièrement la structure du UserForm.
    1) soit les propositions de réponses sont directement affichées dans la propriété Caption de chaque OptionButton
    2) soit vous rattachez chaque Label/OptionButton avec leur propriété Tag
    3) soit (et je pense que ce sera le mieux) vous construisez dynamiquement les Frames et les OptionButtons à l'exécution et NON PAS en mode création (cela demande une connaissance plus approfondie de la programmation, est-ce le cas ?).

  7. #7
    Membre à l'essai
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Août 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Bonjour PMO2017,
    Pour commencer, je suis désolé de répondre avec un peu de retard.
    Bien qu'étant un modeste analyste-programmeur, bien qu'ayant de fait perdu la main, je dois te dire que les TextBox non rattachés aux OB ne sont AUCUNEMENT la cause du dysfonctionnement. C'est toujours le cas aujourd'hui (pas de rattachement des objets) dans l'application qui depuis cette nuit fonctionne.

    A un détail près, qui me fait repenser à ce pourquoi j'avais sollicité ton aide:
    ça devrait... fonctionner (ça fonctionne dans une application soeur) et pas dans celle là. Et le code est à la virgule près est identique (il s'agit de Application.Visible... mais cela fera l'objet d'un autre post bien sûr).

    Pour ce qui est de la connaissance plus approfondie de la prog, j'ai certes des progrès à faire (et beaucoup!!) mais ce que j'ai réalisé par le passé était balèze, engageait la construction de bâtiments (genre super marché) et je pense qu'ils tournent toujours.
    Cependant, cette modeste chose que j'ai fini cette nuit n'aurait pas été finalisée aussi vite sans ton concours.
    Que toi-même et developpez.net en soient grandement remerciés.
    Cordiales pensées

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

Discussions similaires

  1. [Toutes versions] Boucle de type For Each en Dynamique
    Par L'Albatros dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/05/2012, 09h51
  2. Difficulté avec "for each" et tableau dynamique
    Par lemordore dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 29/03/2007, 17h48
  3. apply-templates et for-each
    Par d'Oursse dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/05/2004, 08h38
  4. utilisation de for each
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 19/03/2004, 15h30
  5. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 12h56

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