Le deboggeur ne trouve pas mon erreur

Bonjour à tous en cette journée pluvieuse,

Je me retrouve face à une erreur que je ne comprend pas, généralement lorsque je code en VBA, il indique à l'enregistrement (ou lors du retour chariot) si il manque un argument ou si la forme lexicale est mauvaise, ici que ne-ni.

Sheets("Consos KW.h").Cells(k, i) = "=SI('Consos par équipe'!" & alphabet(i) & k & "=0;'Consos KW.h'!P2;'Consos par équipe'!" & alphabet(i) & k & "/8)"

Pour l'explication le tableau alphabet contient tout simplement l'alphabet . donc en faisant :

'Consos par équipe'!" & alphabet(i) & k cela équivaut à cells(k,i).

L'algorithme est le suivant :

Si (Case1 est vide alors Case2 sinon Case1/8)

Est ce que vous avez une idée du type d'erreur ?

Bonjour Olivier,

Je pense qu'il faut que tu traduises ta formule en anglais.

Donc à la place du SI tu mets IF et tu remplaces les ; par des ,

Bonjour à toi !

Cette formule, écrite en VBA, a pour but d'écrire sans une cellule d'un classeur. Ayant la version française d'excel, le classeur ne comprendra que les "SI( ; ; )".

Cordialement

Ta version excel est en français mais VBA est en anglais. Tu remarqueras que les fonctions en VBA sont en anglais. As-tu essayé ? (Sachant que tes cellules ne doivent pas être au format texte)

Je crois qu'il y a quiproquo :S. Je suis conscient que VBA et les classeurs ne sont pas dans la même langue. Mais le but ici n'est pas de vérifier une condition puis de calculer la cellule lorsque la macro se lance, mais uniquement d'imprimer une formule dans la cellule, de manière à se que le calcul se fasse automatiquement et systématiquement, sans avoir fait appel à la macro.

Edit : Ce qui m'aiderait ça serait de savoir comment imprimer rien dans une cellule car :

Sheets("Feuille1").range("A1")="" Il aime

Sheets("Feuille1").range("A1")= "=SI(Case1;"";Case1/8)" Il n'aime pas

Sheets("Feuille1").range("A1")= "=SI(Case1;" & "" & ";Case1/8)" Il n' aime pas non plus....

Pour tout vous dire, je veux faire une moyenne sur une colonne, mais lorsqu'il y a des zéros la moyenne est erronée. Remplacer les cellules où le résultat est nul par rien "" éviterait ce problème.

A bon entendeur

Olivier.Ga a écrit :

Mais le but ici n'est pas de vérifier une condition puis de calculer la cellule lorsque la macro se lance, mais uniquement d'imprimer une formule dans la cellule, de manière à se que le calcul se fasse automatiquement et systématiquement, sans avoir fait appel à la macro.

Je ne capte pas la subtilité

Tu ne veux pas mettre dans la cellule ligne k colonne i la formule =SI('Consos par équipe'!... ??

Sinon, pour "imprimer" des guillemets, double-les. Au lieu de mettre "", mets """"

:'(

Je veux bien qu'il apparaisse dans la ligne k colonne i la formule : =SI(...;...;...)

Mais cela doit être fait a partir de mon code VBA, car le nombre de cellule à remplir sur la feuille dépend de plusieurs variables (Ici le nombre d'entités par exemple). Et non je ne veux pas imprimer des guillemets , je veux juste que je rende la cellule vide si la condition rend zéro. De manière à ce que la future moyenne ne soit pas faussée par les zéros.

Bonjour

Une idée en passant

As tu essayé ?

Sheets("Consos KW.h").Cells(K, I).FormulaLocal = _
  "=SI('Consos par équipe'!" & Alphabet(I) & K & "=0;'Consos KW.h'!P2;'Consos par équipe'!" & Alphabet(I) & K & "/8)"

Si erreur désolé

Bonjour Banzai,

Merci pour l'idée. Je ne connaissais cette formulation, je vais essayer de suite. Je vous tiens naturellement au courant.

@toute

-- 04 Aoû 2011, 12:29 --

Je viens aux nouvelles,

Je ne sais pas pourquoi, mais ça marche nickel chrome comme on dit. Merci Banzai pour cet élément de réponse.

Et a une prochaine fois .

Re,

Salut banzai,

Un petit conseil Olivier, lorsque tu inscrits une formule dans une cellule pour savoir quoi écrire en VBA, as-tu déjà essayé d'utiliser l'enregistreur de macro ? Ça peut être très très utile tu verras !

a+

Rechercher des sujets similaires à "deboggeur trouve pas mon erreur"