VBA "Erreur d'exécution '438' "
Résolu
Willie
-
Willie -
Willie -
Bonjour tout le monde,
Je suis en train de coder une fenêtre Userform et après avoir adapté mon code voilà qu'il ne marche plus... Et qu'une erreur 438: ''propriété ou méthode non gérée par cet objet'' apparaît.
Vous trouverez ci-dessous le code de mon Userform mais j'aimerais vous expliquer un peu plus en détails ce que j'aimerais faire.
Je voudrais que l'utilisateur puisse cocher tous les bouttons de type "Checkbox" qu'il veut puis un boutton dans le "frame" (qui sont tous des options button) pour finalement cliquer sur "show the data". Les différents options button vont chercher les data souchaitées dans differents onglets et il y a différents modules "tri..." car il y a certaines data qui possèdent un tri personnalisé.
Je précise qu'une fois la macro lancée toutes les data sortent et lorsqu'elle a finit elle bloque sur le premier "If..." en affichant l'erreur 438.
Je suis en train de coder une fenêtre Userform et après avoir adapté mon code voilà qu'il ne marche plus... Et qu'une erreur 438: ''propriété ou méthode non gérée par cet objet'' apparaît.
Vous trouverez ci-dessous le code de mon Userform mais j'aimerais vous expliquer un peu plus en détails ce que j'aimerais faire.
Je voudrais que l'utilisateur puisse cocher tous les bouttons de type "Checkbox" qu'il veut puis un boutton dans le "frame" (qui sont tous des options button) pour finalement cliquer sur "show the data". Les différents options button vont chercher les data souchaitées dans differents onglets et il y a différents modules "tri..." car il y a certaines data qui possèdent un tri personnalisé.
Je précise qu'une fois la macro lancée toutes les data sortent et lorsqu'elle a finit elle bloque sur le premier "If..." en affichant l'erreur 438.
Private Sub DataButton_Click()
Dim ctrl As Control
Dim ctrlbutton As Control
Sheets("Retreatments").Cells.ClearContents
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" And ctrl.Value = True Then
For Each ctrlbutton In Me.Frame1.Controls
If ctrlbutton.Value = True And ctrlbutton.Caption = "Fund" Then
Call Module1.CreationData("Asset level", "%Weight", ctrl.Caption)
If ctrl.Caption <> "Maturity" And ctrl.Caption <> "Rating" Then
Call Module1.TriDécroissant(ctrl.Caption)
ElseIf ctrl.Caption = "Maturity" Then
Call Module1.Tri_Maturity
ElseIf ctrl.Caption = "Rating" Then
Module1.Tri_Rating
End If
ElseIf ctrlbutton.Value = True And ctrlbutton.Caption = "Benchmark" Then
Call Module1.CreationData("Benchmark", "%Weight", ctrl.Caption)
If ctrl.Caption <> "Maturity" And ctrl.Caption <> "Rating" Then
Call Module1.TriDécroissant(ctrl.Caption)
ElseIf ctrl.Caption = "Maturity" Then
Call Module1.Tri_Maturity
ElseIf ctrl.Caption = "Rating" Then
Module1.Tri_Rating
End If
ElseIf ctrlbutton.Value = True And ctrlbutton.Caption = "Vs Benchmark" Then
Call Module1.CreationData("Asset level", "%Weight", ctrl.Caption)
If ctrl.Caption <> "Maturity" And ctrl.Caption <> "Rating" Then
Call Module1.TriDécroissant(ctrl.Caption)
ElseIf ctrl.Caption = "Maturity" Then
Call Module1.Tri_Maturity
ElseIf ctrl.Caption = "Rating" Then
Module1.Tri_Rating
End If
Call Module1.CreationData("Benchmark", "%Weight", ctrl.Caption)
Sheets("Retreatments").Cells(3, 1000).End(xlToLeft) = "Benchmark"
Call Module1.TriDécroissant("Benchmark")
End If
Next ctrlbutton
End If
Next ctrl
Me.Hide
End Sub
>
A voir également:
- Erreur 438 vba
- Erreur 3005 france tv - Forum TV & Vidéo
- Incompatibilité de type vba ✓ - Forum Programmation
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 - Accueil - Windows
2 réponses
Bonjour
For Each ctrl In Me.Controls balaye tous les contrôles de l'USF; Certains contrôles possédent la propriété Value et d'autres non ( comme les Labels)
If TypeName(ctrl) = "CheckBox" And ctrl.Value = True Then teste la propriété Value de l'objet ctrl, et s'il s'agit d'un Label => plantage
il faudrait faire le test en deux fois
A+
For Each ctrl In Me.Controls balaye tous les contrôles de l'USF; Certains contrôles possédent la propriété Value et d'autres non ( comme les Labels)
If TypeName(ctrl) = "CheckBox" And ctrl.Value = True Then teste la propriété Value de l'objet ctrl, et s'il s'agit d'un Label => plantage
il faudrait faire le test en deux fois
If TypeName(ctrl) = "CheckBox" Then
If ctrl.Value = True Then
A+