Référence Formule avec variable choix utilisateur

Résolu/Fermé
thealchemyst Messages postés 18 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 30 mars 2015 - 8 oct. 2014 à 12:05
thealchemyst Messages postés 18 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 30 mars 2015 - 9 oct. 2014 à 10:09
Bonjour,

Dans un classeur, j'ai un bouton qui cré des formules par VBA.

Voici une des formules créée :

Range("B4").FormulaR1C1 = "=IF(ISERR(janvier!R273C10),""0"",janvier!273C10)"


Etant donné que maintenant j'ai des feuilles qui se nomment "janvier 2013" ou "janvier 2014", j'ai crée une boîte de dialogue demandant à l'utilisateur d'insérer l'année correspondante aux données.


repannee = 0
repannee = InputBox("Veuillez entrer l'année correspondante aux données")


Ensuite, je voulais reprendre cette valeur comme référence pour la création de ma formule.

J'ai repris le principe de formule depuis un autre sujet et l'ai adapté à mon cas.


Range("B4").FormulaR1C1 = "=IF(ISERR('janvier " & repannee & "'!"& "R273C10)" & ",""0""," & "janvier " & repannee & "!R273C10)"""


Mais ça me donne l'erreur 1004...

J'ai aussi essayé de mettre tout ce qui était en texte dans des variables, comme ceci :

mois1 = "janvier "
mois2 = "février "
mois3 = "mars "
mois4 = "avril "
mois5 = "mai "
mois6 = "juin "
mois7 = "juillet "
mois8 = "août "
mois9 = "septembre "
mois10 = "octobre "
mois11 = "novembre "
mois12 = "décembre "

deb = "=IF(ISERR('"
mil = ",""0"","
excla = "'!"
gui = "'"
guid = """

cel1 = "R273C10)"

Range("B4").FormulaR1C1 = deb & mois1 & repannee & excla & cel1 & mil & mois1 & gui & repannee & excla & cel1 & guid


Erreur 1004 aussi et cela donne beaucoup de variables, mais on essaie quand même.

Voyez-vous l'erreur dans ces codes ou pouvez-vous me donner une idée pour résoudre mon problème.

D'avance, merci de vos réponses.

A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
8 oct. 2014 à 16:49
Bonjour,

peut-^tre une histoire de guillemets
range("B4").FormulaR1C1 = "=IF(ISERR(""'janvier "" & repannee & ""'!""&

soit guillmet-guillmet-apostrophe-janvier -... guillmet-guillmet

mais le plus sage serait de mettre un souligné entre le mis en l'année ce qui enlèverait l'apostrophe: janvier_2014
les espaces ne sont pas bien vus en info
0
thealchemyst Messages postés 18 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 30 mars 2015
9 oct. 2014 à 10:09
Bonjour michel_m,

j'ai essayé en mettant un guillemet supplémentaire comme tu me l'as suggéré et aussi en rajoutant un _ entre le mois et l'année mais cela ne fonctionne pas non plus... Je dois le conserver car j'ai une formule de tri basé sur le nom de la feuille, soit sur le mois et l'année.

Effectivement, l'apostrophe pose problème parce qu'il pourrait être interprété comme du texte dans mon code et ça Excel VBA, il aime pas... Mais après plusieurs essais, j'ai trouvé ceci :


Range("B4").FormulaR1C1 = "=IF(ISERR(" & "'janvier " & repannee & "'!" & "R273C10)" & ",""0""," & "'janvier " & repannee & "'!" & "R273C10)"


En séparant dans ma formule _'janvier _ du reste, la formule passe et repasse, c'est formidable :)

Merci michel_m, tu m'as mis sur la voie. Ta suggestion était bonne et m'a permis de rectifier mon code.
0