Insertion de calcul dans une cellule

Résolu
Signaler
Messages postés
24
Date d'inscription
dimanche 4 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2007
-
Messages postés
24
Date d'inscription
dimanche 4 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2007
-
Bonjour,

J'ai un problème (erreur 1004, venant de Excel) lorsque j'essaie d'effectuer la ligne suivante :

ActiveCell.Value = "=+SI('" + SuiviPage + "'!E" + CStr(LineSuivi + GraphLine - 1) + "<=" + colstr + "" + CStr(GraphLine) + _

                               ";" + colstr + "" + CStr(GraphLine) + _

                               ";'" + SuiviPage + "'!E" + CStr(LineSuivi + GraphLine - 1) + ")"

J'ai fait tourner avec un debug :

Debug.Print "=+SI('" + SuiviPage + "'!E" + CStr(LineSuivi + GraphLine - 1) + "<=" + colstr + "" + CStr(GraphLine) + _

                               ";" + colstr + "" + CStr(GraphLine) + _

                               ";'" + SuiviPage + "'!E" + CStr(LineSuivi + GraphLine - 1) + ")"

Qui me fournit la chaine de caractère suivante :
+SI('suivi journalier'!E6<U3;U3;'suivi journalier'!E6)

Cette même chaîne, ajoutée manuellement dans la cellule concernée ne me fait aucune erreur... ou peut bien se cacher l'erreur?

Merci

7 réponses

Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
1 - on ne concatène pas avec  +
      l'opérateur est  &

2 - ActiveCell.FormulaLocal  dans ton cas (ta fonction est traduite : SI etc)

    et ton code ne pourras pas être partagé sur Internet... tout le monde n'a pas Office en Fr, et tes formules ne passeront pas partout.
    solution :
        utiliser ActiveCell.Formula et les formules en anglais... IF(....




Renfield





Admin CodeS-SourceS

- MVP Visual Basic
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
Salut ActiveCell.Formula



 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
24
Date d'inscription
dimanche 4 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2007

ca ne semble pas marcher mieux... :s
ActiveCell.Formula = "=+SI('" + SuiviPage + "'!E" + CStr(LineSuivi + GraphLine - 1) + "<=" + colstr + "" + CStr(GraphLine) + _

                               ";" + colstr + "" + CStr(GraphLine) + _

                               ";'" + SuiviPage + "'!E" + CStr(LineSuivi + GraphLine - 1) + ")"

me fait la même erreur.
j'avais déja fait une insertion du genre, mais c'etait pour une formule plus simple :
ActiveCell.Value = "=+'" + SuiviPage + "'!E" + CStr(LineSuivi)

qui remplissait la case par la formule
=+'suivi journalier'!E4

et qui marchait... mais je ne voit pas pourquoi avec une formule plus compliquée (qui est bien formatée au vu de mon debug) ca ne marcherait pas :s
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
"=+SI('" pourquoi =+Si?




 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
24
Date d'inscription
dimanche 4 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2007

La fonction de test...
en fait je dois traiter une table du genre :

ID1 : 56
ID1 : 128
...
ID1 : 5648
ID2 : 12
ID2 : 41
...

seulement, le nombre de valeurs données a IDx varie entre 18 et 22, et augmente toujours. Il n'y a aucune chance pour que IDx+1, 4° valeurs soit plus élevé que IDx, 18° valeur, donc je teste SI la valeur suivante est plus petite, que celle déja enregistrée, alors je reste a la même valeur.

donc j'obtientUx SI(' nouvelle valeur de l'autre tableau '<Ux-1;Ux-1;'nouvelle valeur de l'autre tableau')

c'est pour créer un tableau de statistiques en gros...
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
de même, utiliser séparateurs de liste et décimal anglais...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
24
Date d'inscription
dimanche 4 juillet 2004
Statut
Membre
Dernière intervention
18 avril 2007

Merci beaucoup.

Le problème de partage ne se pose pas ici, par contre je le retiendrait si le besoin s'en fait sentir ;)