Evolution excel 2002 vers 2010 PB lors d'écriture de formule

Résolu
Moutou25 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 5 septembre 2014 - Modifié par Moutou25 le 5/09/2014 à 12:22
Moutou25 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 5 septembre 2014 - 5 sept. 2014 à 13:57
Bonjour à Tous,
j'ai une application écrite en VB5 pour XP qui crée un classeur excel 2002 que j'essaie de faire fonctionner avec excel 2010 et il y a un pb dans l'écriture d'une formule.
Quand j'insére une formule dans la cellule du classeur avec VB j'ai une anomalie 1004
Par contre quand j'insère cette même formule manuellement dans le classeur en coure de documentation, cela fonctionne.

Je ne comprends pas

Voici le code et la valeur de la formule concernée par l'anomalie

With roActiveSheet
For iLigne = 1 To iMaxCol
 err.Clear 
 On Error Resume Next
 .Range(.Cells(iLigneDeb, iLigne), .Cells(iLigneDeb, iLigne)).Formula = nColBloc(iCpteBloc)(1, iLigne)
 err.Clear 
 Next
End With


La valeur de nColBloc(iCpteBloc)(1, iLigne) est :
=SI(SI(ESTNUM($E$36);  50,0001 - $E$36;50,0001 + $E$88) >= 0; SI(ESTNUM($E$36);  50,0001 - $E$36;50,0001 + $E$88) ; "")

Quelqu'un aurait il une idée ?
Merci par avance

4 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
5 sept. 2014 à 11:49
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

J'édite ton message pour les mettre... la prochaine fois penses y .
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
5 sept. 2014 à 11:55
Pour ce qui est de ton souci...

Déjà... tu postes dans la SECTION VBA du forum... et tu nous parles de VB5
écrite en VB5 pour XP

Donc... tu codes réellement en VB5 ou bien tu t'es trompé et c'est bien du VBA ?


Ensuite.. as tu regardé ce que valait nColBloc(iCpteBloc)(1, iLigne) au momment où il arrive sur la ligne de code qui ne fonctionne pas ?

avec un msgbox par exemple :
Dim Formule  as String
Formule =  nColBloc(iCpteBloc)(1, iLigne)
Msgbox Formule

With roActiveSheet
For iLigne = 1 To iMaxCol
 err.Clear 
 On Error Resume Next
 .Range(.Cells(iLigneDeb, iLigne), .Cells(iLigneDeb, iLigne)).Formula =Formule
 err.Clear 
 Next
End With


0
Moutou25 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 5 septembre 2014
5 sept. 2014 à 12:07
Bonjour jordane,
C'est du code exécuté à partir de VB5 pour créer en dynamique un classeur excel.
La valeur de nColBloc(iCpteBloc)(1, iLigne) que j'ai indiqué correspond à la valeur qui génère l'anomalie
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
5 sept. 2014 à 12:48
- Tu as quand même testé le code que je t'ai donné ??
La MsgBox... te donne bien la même "string" que celle que tu nous as posté ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 5/09/2014 à 13:41
Bonjour,
se servir de FormulaLocal, puisque le texte de la notation est en "français".
Ou (bien mieux) : utiliser Formula, mais la notation anglaise pour le "texte" dans la cellule concernée.
0
Moutou25 Messages postés 3 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 5 septembre 2014
5 sept. 2014 à 13:57
Avec FormulaLocal ça fonctionne effectivement.
Merci beaucoups
0
Rejoignez-nous