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

VB 6 et antérieur Discussion :

Propriété ou Méthode non Géré par l'Objet!


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Par défaut Propriété ou Méthode non Géré par l'Objet!
    Bonsoir à tout le Forum
    ce code n'est pas de moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Cette fonctionest placée dans un module standart
    Public Function ExistProperty(Obj As Object, ByVal PropertyName As String) As Boolean
        On Error Resume Next
        CallByName Obj, PropertyName, VbGet
        ExistProperty = (err.Number = 0)
        err.Clear
    End Function
    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
    'et la procédure suivante dans le module de la feuille:
    Private Sub Form_Resize()
    Dim ctl As Control
    If (Me.WindowState = 1) Then Exit Sub
    For Each ctl In Me.Controls
        If TypeOf ctl Is ComboBox Then
        'Les comboboxes ont leur propriété Height en lecture seule
        ctl.Move ctl.Left * Me.Width / lng, ctl.Top * Me.Height / lar, ctl.Width * Me.Width / lng
        Else
        If ExistProperty(ctl, "Width") And ExistProperty(ctl, "Height") Then
        ctl.Move ctl.Left * Me.Width / lng, ctl.Top * Me.Height / lar, _
        ctl.Width * Me.Width / lng, ctl.Height * Me.Height / lar
        End If
        End If
    Next
    lng = Me.Width
    lar = Me.Height
    End Sub
    De par son auteur la fonction sert à adapter la taille ou la grandeur des controles à celle la feuille qui les supporte.
    Mon Probleme est quand j'execute ma petite application ,l'erreur suivante apparue:Erreur d'éxécution '438' " l'objet ne gére pas cette propriété ou cette méthode"
    le débogage me renvoi à la ligne 3 de la Fonction :CallByName Obj, PropertyName, VbGet surlignée en jaune . Que dois Je faire? merci

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na.
    _ A priori, il est normal que la ligne 4 de la fonction ExistProperty crée une erreur avec certains contrôles, puisque c'est le moyen utilisé pour déterminer si le contrôle Obj dispose des propriétés Height et Width et ainsi éviter une erreur éventuelle aux lignes 11 et 12 de Form_Resize ; mais cette erreur est gérée par de la ligne 3 ; dans un essai avec un contrôle CommonDialog : VB est passé de la ligne 4 à la ligne 5 sans message d'erreur - mais, dans Outils | Options | Général | Récupération d'erreur c'est Arrêt sur les erreurs non gérées qui doit être coché ; si on choisit Arrêt sur toutes les erreurs, on recevra effectivement (et logiquement) le message d'erreur que vous indiquez.
    _ Pour le reste, dans Form_Resize, les lignes 8, 11 et 12 utilisent deux variables lar et lng qui ne sont ni déclarées ni initialisées ; tel quel, ce code produit une erreur soit de variable non définie (si on choisit Option Explicit) soit de division par 0.
    _ Tout fonctionnera comme attendu si on ajoute, dans les déclarations de la feuille,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim lar As Integer, lng As Integer
    et, en Form_Load,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lar = Width: lng = Height
    ou (pour conserver le choix de l'auteur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lar = Me.Width: lng = Me.Height
    .
    _ Bon courage pour la suite de votre travail.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Par défaut Propriété ou Méthode non gérée par l'Objet
    Bonsoir à tout le forum et au prmier plan XylonAkau,

    Effectivement l'option arret sur les erreurs non gérées été décochée au profit de arret sur toutes les erreurs.j'ai inversé le choix et le code s'éxécute sans faille.
    Merci Xylon ; les variables lar et lng sont déclarées de type long alors tout est entré dans le bon fonctionnement de l'application.

    Néanmoins un autre problème est survenu:-La feuille concernée par le code porte le controle vertical Menu,quand elle passe de réduit à l'agrandissement les sous menus du vertical menu s'affichent en double et ils restent doublés même en revenant à la position réduite.Comment faire pour éviter cet affichage? merci à toutes et à tous et bonne nuit.

  4. #4
    Membre expérimenté
    Inscrit en
    Janvier 2011
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 112
    Par défaut
    _ Ia ora na.
    _ Je suis heureux que vous ayez résolu votre problème. Mais qu'appelez-vous vertical menu ? j'ai essayé le programme avec un contrôle ComboBox, un menu classique et un menu contextuel (PopUpMenu) - sans constater de dysfonctionnement.
    _ Bonne réussite.

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

Discussions similaires

  1. Erreur 438 propriété ou méthode non gérée par cet objet
    Par aba_tarn dans le forum VBA Access
    Réponses: 0
    Dernier message: 22/02/2008, 11h30
  2. propriété ou méthode non géré par cet objet
    Par titeZ dans le forum VBA Access
    Réponses: 6
    Dernier message: 05/10/2007, 15h26
  3. Propriété ou méthode non gérée par cet objet
    Par abennis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/06/2007, 17h59
  4. propriété ou méthode non gérée par cet objet
    Par Elstak dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/05/2007, 21h23
  5. Erreur:Propriété ou méthode non gérée par cet objet.
    Par nodogeid dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/05/2007, 17h08

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