Message d'erreur 424: objet requis [Résolu]

dyjatou92 34 Messages postés mercredi 15 juin 2016Date d'inscription 30 septembre 2016 Dernière intervention - 21 juin 2016 à 13:58 - Dernière réponse : ucfoutu 18021 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention
- 27 juin 2016 à 17:46
VBA Office (Excel, Word ...) Posez votre question Signaler Répondre au sujet
Bonjour,
j'ai le soucis suivant. Ma boite de dialogue s'est toujours très bien exécutée mais aujourd'hui j'ai changé la propriété Name de l'userform et depuis lors ça refuse carrément de s’exécuter et on me stipule le message d'erreur suivant erreur 424: objet requis.
le code d'initialisation de l'userform vous est donné ci dessous. En utilisant l'execution pas à pas cest la 1ère ligne qui est surlignée


Private Sub UserForm_Initialize()
Dim compteur As Byte
Sheets("Données").Select
compteur = 3
Do
compteur = compteur + 1
ComboBox_typeactivite.AddItem (Cells(compteur, 1).Formula)
Loop While Not compteur = 11
compteur = 1
Do
compteur = compteur + 1
ComboBox_Niveau.AddItem (Cells(compteur, 17).Formula)
Loop While Not compteur = 51
'cacher les TextBox des luminaires
TextBox_lum_stand.Visible = False
TextBox_spot_encastre.Visible = False
TextBox_hublot.Visible = False
TextBox_lustre.Visible = False
TextBox_lum_incand.Visible = False
TextBox_applique.Visible = False
TextBox_lum_2regl.Visible = False
TextBox_lum_suspendu.Visible = False
TextBox_spot_rail.Visible = False
TextBox_lum_4regl.Visible = False
'cacher les TextBox des appareils électriques
TextBox_Ordinateur.Visible = False
TextBox_Imprimante.Visible = False
TextBox_Photocopieuse.Visible = False
TextBox_Televiseur.Visible = False
TextBox_Refrigerateur.Visible = False
TextBox_Lavelinge.Visible = False
TextBox_Lavevaisselle.Visible = False
TextBox_Four.Visible = False
TextBox_Onduleurs.Visible = False
TextBox_Transfo.Visible = False
TextBox_Autres.Visible = False
'cacher les TextBox des surfaces
TextBox_surfacemur_Nord.Visible = False
TextBox_surfacemur_Sud.Visible = False
TextBox_surfacemur_Ouest.Visible = False
TextBox_surfacemur_Est.Visible = False
TextBox_surfacemur_NO.Visible = False
TextBox_surfacemur_NE.Visible = False
TextBox_surfacemur_SO.Visible = False
TextBox_surfacemur_SE.Visible = False
TextBox_surfacevitr_Nord.Visible = False
TextBox_surfacevitr_Sud.Visible = False
TextBox_surfacevitr_Ouest.Visible = False
TextBox_surfacevitr_Est.Visible = False
TextBox_surfacevitr_NO.Visible = False
TextBox_surfacevitr_NE.Visible = False
TextBox_surfacevitr_SO.Visible = False
TextBox_surfacevitr_SE.Visible = False
TextBox_surfaceporte_Nord.Visible = False
TextBox_surfaceporte_Sud.Visible = False
TextBox_surfaceporte_Ouest.Visible = False
TextBox_surfaceporte_Est.Visible = False
TextBox_surfaceporte_NO.Visible = False
TextBox_surfaceporte_NE.Visible = False
TextBox_surfaceporte_SO.Visible = False
TextBox_surfaceporte_SE.Visible = False
End Sub



Merci de votre comprehension c'est le premier programme que je fais tous langages de programmation confondus
Afficher la suite 
34Messages postés mercredi 15 juin 2016Date d'inscription 30 septembre 2016 Dernière intervention

7 réponses

Répondre au sujet
ucfoutu 18021 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 21 juin 2016 à 14:34
0
Utile
Bonjour,
1) La "première ligne" est :
Dim compteur As Byte 

et ne saurait en aucune manière provoquer le message que tu rapportes !
2) ne s'agirait-il pas plutôt de la seconde, qui dit :
Sheets("Données").Select 

et qui provoquerait, elle, bien évidemment une erreur si n'existe pas, avec cette orthographe) la feuille "Données" ?
3) où en es-tu de cette autre discussion :
http://codes-sources.commentcamarche.net/forum/affich-10066390-liaison-d-interdependance-entre-des-cases-a-cocher
laissée ouverte et en suspens ?
Commenter la réponse de ucfoutu
dyjatou92 34 Messages postés mercredi 15 juin 2016Date d'inscription 30 septembre 2016 Dernière intervention - 22 juin 2016 à 15:26
0
Utile
Bonjour ucfoutu ,pour ce problème ci j'ai trouvé là où ça clochait. En fait j'avais supprimé des élèments du userform sans pour autant supprimer leurs instructions dans le code d'initialisation...
Et pour la question sur la liaison d'interdépendance entre des cases à cocher, votre réponse ne m'a été d'aucune utilité car vous n'avez pas réellement compris mon problème. Néanmoins, en poussant mes recherches et en tâtonnant j'ai pu trouver la solution. Merci pour votre disponibilité.
Dans le cas où je serai confronté à un autre problème (chose qui arrivera certainement) je vous solliciterai.
Merci
Commenter la réponse de dyjatou92
ucfoutu 18021 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 22 juin 2016 à 16:41
0
Utile
Et pour la question sur la liaison d'interdépendance entre des cases à cocher, votre réponse ne m'a été d'aucune utilité car vous n'avez pas réellement compris mon problème. Néanmoins, en poussant mes recherches et en tâtonnant j'ai pu trouver la solution.

Oui ?
Et alors ? ===>> tu vas dans la discussion concernée et y mets ta solution.
C'est le principe même d'un forum de développement.
(je vais surveiller personnellement ce suivi).
Commenter la réponse de ucfoutu
dyjatou92 34 Messages postés mercredi 15 juin 2016Date d'inscription 30 septembre 2016 Dernière intervention - Modifié par dyjatou92 le 27/06/2016 à 15:22
0
Utile
ucfoutu. Pourrais tu me trouver l'erreur de syntaxe au niveau de cette formule vba:

ActiveCell.Formula =INDEX(ChaleurSensible,(MATCH("Range("B5").value",TypeActivite,0)),(MATCH(" Range("'Conditions climatiques'!D6").value",Temperature,0)))
Commenter la réponse de dyjatou92
ucfoutu 18021 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - Modifié par ucfoutu le 27/06/2016 à 17:19
0
Utile
Une erreur ? C'est tout ?
1) ce n'est en aucun cas la syntaxe générale de la propriété Formula. Cette propriété doit être une chaîne de caractères (et son contenu doit :
--- être donc mis entre guillemets
--- être de même syntaxe que celle de la formule que tu écrirais à la main directement dans cette cellule (pas de Range ....)
2) je ne comprends pas le rapport avec l'objet de l'ouverture de cette discussion (erreur 424). Je ne peux par ailleurs connaître le contenu des variables que tu y utilises. Si l'une d'entre elles ne correspond pas à un objet alors qu'elle se réfère à un objet ===>> erreur.
Si tu veux que l'on tente de corriger cela, il te faudra :
- montrer la formule que tu frapperais manuellement dans la cellule concernée et qui fonctionnerait
- nous y montrer quelles cellules, objets, valeurs etc ... correspondent aux variables nommées que tu utilises dans ta tentative d'écriture par code !

EDIT : on ne peut écrire tout et n'importe quoi "au hasard" ou "par intuition".
Un minimum d'apprentissage est nécessaire (au moins les rudiments).
Pour comprendre tout ce dont je t'ai parlé plus haut :
regarde la différence entre l'exécution de la 1ère ligne et la 2ème de ce code :
 Range("C1").Formula = Range("B1")
Range("D1").Formula = "=B1"

Va sur la feuille et regarde l'énorme différence en résultant entre la cellule C1 (qui ne contiendra pas de formule) et la cellule D1, qui en contiendra une.
Premier soin : ouvre (c'est sa vocation) ton aide VBA à la rubrique Range.Formula, propriété et lis. C'est un minimum.
Voilà, déjà ... Bon courage dans ton apprentissage.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
dyjatou92 34 Messages postés mercredi 15 juin 2016Date d'inscription 30 septembre 2016 Dernière intervention - 27 juin 2016 à 17:24
0
Utile
L'erreur d'execution est plutot de numéro 1004. j'ai mal lu. et voici le code

Sub Calcul_Bilan()
Dim ta As String
Dim te As Byte
ta = Range("B5").Text
te = ConditionsClimatiques.Range("D6").Value
'Récupération de la chaleur sensible
Range("B7").Select
ActiveCell.FormulaLocal = "=SI(ESTERREUR(INDEX('Donnés'!(B4:N11);EQUIV(ta; 'Donnés'!(A4:A11); 0);EQUIV(te;'Donnés'!(B3:N3); 0));"")"
End Sub
Commenter la réponse de dyjatou92
ucfoutu 18021 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - Modifié par ucfoutu le 27/06/2016 à 17:47
0
Utile
1) Je crois t'avoir demande assez clairement ceci :
- montrer la formule que tu frapperais manuellement dans la cellule concernée et qui fonctionnerait
- nous y montrer quelles cellules, objets, valeurs etc ... correspondent aux variables nommées que tu utilises dans ta tentative d'écriture par code !

Elle est où, cette formule qui, écrite manuellement, fonctionnerait ???

2) ce simple réflexe :
Dim ta As String
Dim te As Byte
ta = "toto"
te = 2
MsgBox "=SI(ESTERREUR(INDEX('Donnés'!(B4:N11);EQUIV(ta; 'Donnés'!(A4:A11); 0);EQUIV(te;'Donnés'!(B3:N3); 0));"")"

te montrerait que ce que tu obtiens, à savoir :
=SI(ESTERREUR(INDEX('Donnés'!(B4:N11);EQUIV(ta; 'Donnés'!(A4:A11); 0);EQUIV(te;'Donnés'!(B3:N3); 0));")

n'est pas du tout ce que tu attends d'obtenir.
Tu ne parais même pas savoir encore concaténer une chaîne de caractères et une variable !
-
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.