Evolution excel 2002 vers 2010 PB lors d'écriture de formule [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 5 septembre 2014
Statut
Membre
Dernière intervention
5 septembre 2014
-
Messages postés
3
Date d'inscription
vendredi 5 septembre 2014
Statut
Membre
Dernière intervention
5 septembre 2014
-
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

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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 .
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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


Messages postés
3
Date d'inscription
vendredi 5 septembre 2014
Statut
Membre
Dernière intervention
5 septembre 2014

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
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
- 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é ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
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.
Messages postés
3
Date d'inscription
vendredi 5 septembre 2014
Statut
Membre
Dernière intervention
5 septembre 2014

Avec FormulaLocal ça fonctionne effectivement.
Merci beaucoups