LF pour les nuls
Messages postés19Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 2 juin 2006
-
2 juin 2006 à 11:35
LF pour les nuls
Messages postés19Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 2 juin 2006
-
2 juin 2006 à 15:09
Bonjour,
Après mes débuts en VBA excel, je m'en sors presque pas mal, mais là, j'ai un problème...
Je vais prendre un exemple simple plutôt que mon problème actuel... C'est déjà assez compliqué à expliquer comme ça). J'ai en gros un programme sous la forme :
Module de classe CVoiture
public vitesse as integer
public reservoir as integer
public Moteur as CMoteur
Module de classe moteur
public NbreSoupapes as integer
public NbreDeToursMaximum as long
Module Fonctions
public sub RemplirTableauCaractéristiques (Voiture as object 'ou CVoiture, ça ne marche pas non plus')
Là je remplis ma page excel avec un :
with workbooks(...).worksheets(...)
.cells(...) = Voiture.vitesse
.cells(...) = Voiture.Moteur.NbreSoupapes
...
end with
end sub
Et je fais appel à cette fonction dans une userform avec un petit bouton de cette manière :
RemplirTableauCaractéristiques(voiture1) 'Voiture1 étant une variable globale.
BILAN : ERREUR 438... Propriété ou méthode non gérée par l'objet...
D'où cela vient-il? Je me doute qu'il y a un truc que j'ai mal fait, mais comme je débute...
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 12:03
Bonjour
Sur quelle ligne ?
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 12:16
Bonjour
Tu as essayer :
Fonctions.RemplirTableauCaractéristiques(voiture1)
?
mettre le nom du module à utiliser quoi.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
LF pour les nuls
Messages postés19Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 2 juin 2006 2 juin 2006 à 12:22
ça ne marche pas non plus.
En fait, j'ai toujours le même problème : c'est pareil avec les textbox. Impossible de les entrer en paramètre. Dès que j'essaie de mettre un objet en paramètre, ça bugge.
Merci pour ton aide.
LF pour les nuls,
Bidouilleur fou.
Vous n’avez pas trouvé la réponse que vous recherchez ?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 12:28
Bonjour
Tu as testé ton exemple ?
Si il ne marche pas, il y a un gros pb quelque part.
Si il marche et pas ton programme, il faudra que tu le décrive un peu plus.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 12:29
Bonjour
J'oubliais, évite les accents dans les nom de méthodes/variable/classe. (c'est peut-être la cause de l'erreur).
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
LF pour les nuls
Messages postés19Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 2 juin 2006 2 juin 2006 à 13:32
ça ne vient pas des accents car je n'en mets pas dans mes programmes (juste sur l'exemple là sans faire expres).
J'ai bien testé mon exemple et ça me fait exactement le même problème. En fait, j'ai des soupçons sur la cause. Voilà ma commande bouton :
Private Sub CommandButton1_Click()
Dim voiture As New Cvoiture
Dim moteur As New CMoteur
With moteur
.NbreDeTours = 500
.NbreSoupapes = 16
End With
With voiture
.vitesse = 10
.reservoir = 50
Set .moteur = moteur
End With
RemplirTableauCaracteristiques (voiture) 'Même erreur ici
End Sub
Je pense que la ligne en rouge doit poser problème non?
Lorsqu'on a un objet en paramètre d'un autre objet, comment on s'y prend pour l'affectation?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 13:44
Bonjour
La ligne en rouge est syntaxiquement correct, et ne pose pas de problème.
C'est bizzare, quand tu fait "Deboguer", il te met la ligne violette en surligner ?
Essaye en mettant Byref ou Byval devant le paramètre de ta sub.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
LF pour les nuls
Messages postés19Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 2 juin 2006 2 juin 2006 à 13:51
Oui il me surligne la ligne violette lors du déboguage après erreur (avant le lancement de l'application, le déboguage passe tranquille).
byval ou byref, même erreur.
Je copie la fonction, mais je comprendrais si mon cas est désespéré^^
Public Sub RemplirTableauCaracteristiques(ByRef voiture As Cvoiture)
Cells(1, 1) = voiture.moteur.NbreDeToursMaximum
Cells(2, 1) = voiture.reservoir
Cells(3, 1) = voiture.vitesse
Cells(4, 1) = voiture.moteur.NbreSoupapes
End Sub
Les classes sont tout au début et le bouton juste au-dessus.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 14:07
Bonjour
Je te contact en pv pour que tu me passe le fichier par mail, pour tester.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 14:29
Bonjour
Tu m'as envoyer un vichier vide (ou il y a un pb de version).
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 14:41
Bonjour
Le fichier reçu fait 34.5ko et je n'ai aucun module ni userform (juste 3 feuilles vides, workbook les tout vide dans VBA editor).
Tu peux le réenvoyer ?
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 2 juin 2006 à 14:56
Bonjour
Je ne parvient pas à télécharger le fichier à partir du webmail laposte, désolé.
Tu doit surement appelé la procédure mais de manière incorrecte. j'arrive à la limite de ce que je peux faire (les données fournies durant les échanges n'ont pas été suffisant, et je ne peux pas recevoir le fichier envoyer).
Désolé.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
LF pour les nuls
Messages postés19Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 2 juin 2006 2 juin 2006 à 15:09
Tant pis... Je vais bidouiller autrement. Mais ça m'énervait de pas pouvoir utiliser d'objets dans mes procédures. Mais si tu n'arrives pas à recevoir mes fichiers, je dois avoir un problème quelque part... Surtout que le code est simple puisque j'ai déjà tout posté là...