VBA: erreur utilisation la fonction faisant intervenir les classes
Ecaterina
-
Ecaterina -
Ecaterina -
onjour,
En cadre de mon projet je dois utiliser les la fonction des classes. Donc j'ai créé une classe demande_client et ensuite j'ai crée une fonction qui fait le calcul à partir des attributs de la classe. La fonction qui est censée de faire ce calcul est appelée quand l'utilisateur clique sur le bouton du userform. Mais une erreur s'affiche. Voici les photos des mes codes et mon fichier.
Ca fait des heures que je suis bloquée, pouvez-vous m'aider svp?
Mon code:
Private Sub CommandButton1_Click()
If OptionButton1 = True Then
Dim materiau1 As Demande_client
Set materiau1 = New Demande_client
materiau1.xeffort_traction = Cells(2, 13)
Dim contrainte1 As Integer
contrainte1 = materiau1.contrainte()
End If
End Sub
La classe:
Option Explicit
'les propriétés de la classe
Public xfacteur_securité As Double
Public xlongueur As Integer
Public xrayon_section As Integer
Public xdim1 As Integer
Public xdim2 As Integer
Public xforme As String
Public xeffort_traction As Integer
Public xmodule_Young As Integer
Public Function Section() As Integer
Dim iSection As Double
Const Pi = 3.14159265358979
If xforme = "ronde" Then
iSection = Pi * (xrayon_section ^ 2)
Section = iSection
Else
iSection = xdim1 * xdim2
Section = Int(iSection)
End If
End Function
Public Function contrainte() As Integer
Dim iMateriau As Demande_client
Set iMateriau = New Demande_client
Dim iContrainte As Double
Dim aSection As Integer
aSection = iMateriau.Section()
iContrainte = (iMateriau.xeffort_traction) / (aSection)
contrainte = Int(iContrainte)
End Function
En cadre de mon projet je dois utiliser les la fonction des classes. Donc j'ai créé une classe demande_client et ensuite j'ai crée une fonction qui fait le calcul à partir des attributs de la classe. La fonction qui est censée de faire ce calcul est appelée quand l'utilisateur clique sur le bouton du userform. Mais une erreur s'affiche. Voici les photos des mes codes et mon fichier.
Ca fait des heures que je suis bloquée, pouvez-vous m'aider svp?
Mon code:
Private Sub CommandButton1_Click()
If OptionButton1 = True Then
Dim materiau1 As Demande_client
Set materiau1 = New Demande_client
materiau1.xeffort_traction = Cells(2, 13)
Dim contrainte1 As Integer
contrainte1 = materiau1.contrainte()
End If
End Sub
La classe:
Option Explicit
'les propriétés de la classe
Public xfacteur_securité As Double
Public xlongueur As Integer
Public xrayon_section As Integer
Public xdim1 As Integer
Public xdim2 As Integer
Public xforme As String
Public xeffort_traction As Integer
Public xmodule_Young As Integer
Public Function Section() As Integer
Dim iSection As Double
Const Pi = 3.14159265358979
If xforme = "ronde" Then
iSection = Pi * (xrayon_section ^ 2)
Section = iSection
Else
iSection = xdim1 * xdim2
Section = Int(iSection)
End If
End Function
Public Function contrainte() As Integer
Dim iMateriau As Demande_client
Set iMateriau = New Demande_client
Dim iContrainte As Double
Dim aSection As Integer
aSection = iMateriau.Section()
iContrainte = (iMateriau.xeffort_traction) / (aSection)
contrainte = Int(iContrainte)
End Function
A voir également:
- VBA: erreur utilisation la fonction faisant intervenir les classes
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
6 réponses
Re,
J'ai mis en commentaire ces deux lignes dans le module de classe.
Pour moi, le fait de redefinir une nouvelle classe fait une raz des variables affectees dans l'Userform3
Maintenant avez vous vraiment besoin d'un module de classe?
J'ai mis en commentaire ces deux lignes dans le module de classe.
Pour moi, le fait de redefinir une nouvelle classe fait une raz des variables affectees dans l'Userform3
Public Function contrainte() As Integer 'Dim iMateriau As Demande_client 'Set iMateriau = New Demande_client
Maintenant avez vous vraiment besoin d'un module de classe?
Bonjour,
Mais une erreur s'affiche.
Laquelle?
Un fichier exemple serait plus a meme de pouvoir vous aider
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage
https://mon-partage.fr/
Mais une erreur s'affiche.
Laquelle?
Un fichier exemple serait plus a meme de pouvoir vous aider
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage
https://mon-partage.fr/
Re,
Je suppose que c'est l'Userform3 (Calculs).
Cas commande 1
Si je faits derouler le code avec des points d'arret, beaucoup de variables sont egales a 0 ald d'avoir les valeurs de cellules de la ligne 2: xforme, xdim1, xdim2 et autres
Pouvez expliquer?
Je suppose que c'est l'Userform3 (Calculs).
Cas commande 1
Si je faits derouler le code avec des points d'arret, beaucoup de variables sont egales a 0 ald d'avoir les valeurs de cellules de la ligne 2: xforme, xdim1, xdim2 et autres
Pouvez expliquer?
En fait, ce que je voilais faire c'est attribuer à chaque attribut de membre de classe demande_client les valeurs qui contiennent les cellules de la ligne 2 (le tableau à droite) . Ayant toutes ces valeurs je voulais effectuer les calculs pour connaitre la contrainte de la poutre. Le fait que xdim1, xdim2 sont nuls signifie que la poutre est ronde et pour trouver la section (aussi grâce à la fonction de la classe) on n'a pas de ces valeurs là. Quand on calcule la section tout dépend de xforme: quels valeurs seront priser en compte)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raz variables:
Plus exactement comme vous recreez une classe, vous avez de nouvelles variables x....