[Catégorie modifiée VB6 --> VBA] formule et variable dans une cellule

tyron2002 Messages postés 8 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 2 juillet 2010 - 29 juin 2010 à 14:45
tyron2002 Messages postés 8 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 2 juillet 2010 - 29 juin 2010 à 15:28
Bonjour,

J'ai besoin de générer une formule de type ( =donnée!A4 ) en sachant que la cellule A4 peut changer de valeur et que sur chaque formule généré la position de la cellule évolue.
Voila la ligne de code que j'ai écrite :
intL2 est un entier que j'incrémente à chaque répétition de ma boucle.

Sheets("reception").Cells(intL3, 4).Formula = "=donne!" & intL2 & ", 2"

Quand j'exécute j'ai une erreur 1004 ( erreur définie par l'application ou par l'objet.

J'ai eu beau cherché sur le fofo et ailleurs je ne trouve pas.
Merci par avance de votre aide.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 juin 2010 à 15:00
Salut
As-tu vérifié la syntaxe de la .Formula que tu écris ?
Moi, je vois que tu écris "donne" au lieu de "donnée" et que tu ajoute un ",2" sans raison apparente.
Quelle est la valeur de intL2 au moment de l'écriture ?
Méfie toi : Quand on ajoute un chiffre à une chaine, certains chiffres sont automatiquement formatés avec un espace devant le chiffre (pour le signe - des négatifs), ce qui donnerait "!donnée 12" au lieu de "!donnée12"
Pour cela, il faut toujours écrire le type de conversion nécessaire :
"=donne!" & CStr(intL2) & ", 2"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
tyron2002 Messages postés 8 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 2 juillet 2010
29 juin 2010 à 15:28
En fait le ",2" me servait à définir les coordonnées de la cellule cible genre "ligne,colonne" mais visiblement ça ne marchai pas.

Voila comment j'ai modifié et c'est tout bon :

Sheets("reception").Cells(intL3, 4).Formula = "=donne!B" & intL2

Je n'avais pas fait attention à la transition entre les coordonnées sous VB qui sont au format ligne, colonne en chiffre et sous excel ou on a ligne(chiffre et colonne(lettre).

Merci pour ton aide ça m'a mis sur la bonne voie ;)
0
Rejoignez-nous