dyjatou92
Messages postés34Date d'inscriptionmercredi 15 juin 2016StatutMembreDernière intervention30 septembre 2016
-
Modifié par dyjatou92 le 21/06/2016 à 14:23
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
27 juin 2016 à 17:46
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
dyjatou92
Messages postés34Date d'inscriptionmercredi 15 juin 2016StatutMembreDernière intervention30 septembre 2016 22 juin 2016 à 15:26
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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 22 juin 2016 à 16:41
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).
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 :
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.
dyjatou92
Messages postés34Date d'inscriptionmercredi 15 juin 2016StatutMembreDernière intervention30 septembre 2016 27 juin 2016 à 17:24
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
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));"")"
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.