Erreur d'exécution '438': Propriété ou méthode non géré [...] [Fermé]

Signaler
Messages postés
5
Date d'inscription
vendredi 15 septembre 2017
Statut
Membre
Dernière intervention
12 octobre 2017
-
Wizope
Messages postés
5
Date d'inscription
vendredi 15 septembre 2017
Statut
Membre
Dernière intervention
12 octobre 2017
-
Bonjour à toutes et à tous,

Je n'arrive pas à résoudre mon problème lié à l'erreur 438 ( Propriété ou méthode non gérée par cet objet). Voici mon code avec la ligne présentant le bug:


For Each Bouton_Produit In Frame_Produit.Controls
       <bold> If Bouton_Produit.Value = True Then</bold>
        produit = Bouton_Produit.Caption
        End If
    Next


Merci d'avance pour votre aide

2 réponses

Messages postés
14270
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 février 2020
467
Bonsoir

quel VB?
  • VBS
  • VBA -> précisez:
    • Word
    • Excel
    • Access
    • Powerpoint
    • Autre
  • VB6 (ou antérieur, précisez)
  • VB.Net - précisez la Framework et ->
    • Winform
    • WPF


et quel est le type de Bouton_Produit?
Bonsoir,

Désolé du manque de précision ! C'est du VBA Excel, les Bouton_Produit sont des boutons d'option dans un user form.

J'ai finalement réussi à résoudre mon problème et je vais donner la solution si ca peut aider des gens.

Enfaite mon intitulé(Label) présent dans mon cadre(Frame) portait la mention Produit ce qui induisait en erreur le code.

Si j'ai bien compris le .Value à vérifié la caractéristique TRUE sur ce label car il portait un indicatif "Produit" même si ce n'était pas son nom entier.
Or un intitulé ne peut pas porter de .Value.

Finalement je l'ai juste sorti du cadre et ca a marché! Je pense que changer le nom aurait aussi fonctionner (il faudra que j'essaie)

Voilà, merci d'avoir pris la peine de me répondre.

Cordialement
Wizope
Messages postés
5
Date d'inscription
vendredi 15 septembre 2017
Statut
Membre
Dernière intervention
12 octobre 2017
> Whismeril
Messages postés
14270
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 février 2020

D'accord, merci pour le renseignement ! Comprendre mes erreurs me fait avancer plus que n'importe quoi ahah....

Je me pose juste une question suite à ta réponse du coup... Mon instruction prend tous les contrôles du cadre OK cependant la mention Bouton_Produit ne tri pas les contrôles ? Ce n'est pas très intuitif

Merci encore
Whismeril
Messages postés
14270
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 février 2020
467
Bouton_Produit est le nom de la variable dans laquelle chaque élément de la collection va être stocké tour à tour.
Tu l'aurais appelé toto ça faisait la même chose.
Ah oui ?!

On m'a pourtant appris que je devais nommer chaque bouton de la sorte Bouton_Produit1 puis Bouton8Produit2, etc !

Dingue cette histoire
Whismeril
Messages postés
14270
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 février 2020
467
oui nommer tes boutons de façon explicite est une bonne pratique pour t'y retrouver toi (l'ordinateur lui n'a pas besoin de nom explicite), mais là il ne s'agit pas en soit de bouton (la preuve, ça prenait un label).

For Each Bouton_Produit In Frame_Produit.Controls
littéralement veut dire pour chaque truc issu de la collection de contrôles contenus dans Frame_Produits, que je mets dans la variable temporaire (qui n'existe pas plus loin que le mot clé next) et sans type particulier faire l'action décrite ensuite.
Cela veut dire que tout label, textbox, checkbox, listbox (brefs n'importe quel contrôle) contenu dans le cadre passerait par cette variable, et que l'action serait tentée (d'ou le bug)

Le nom d'une variable c'est toi qui le choisi, et en soit le nom n'est pas garant du contenu.
Wizope
Messages postés
5
Date d'inscription
vendredi 15 septembre 2017
Statut
Membre
Dernière intervention
12 octobre 2017

Merci vraiment !
C'est super clair maintenant ...