VBA Formule

C

C@thy

Guest
Bonjour à toutes les foromeuses et les foromeurs

j'ai un petit souci :

j'ai une trentaine de feuilles et plusieurs tableaux par feuille.

Dans chacun de ces tableaux j'ai des calculs de % déjà reffectués, mais je voudrais corriger la formule, car

=I4/F4
donne #DIV/0! si F4 est vide.

Je voudrais donc remplacer cette formule dans tous mes tableaux par =si(F4=0;"";I4/F4).

j'ai écrit ma petite macro, mais il ne trouve pas la formule alors qu'elle existe bien (par exemple en J4).

Pouvez-vous me dire pourquoi l'instruction

For Each cel In Selection
If cel.FormulaR1C1 = "=RC[-1]/RC[-4])" Then ActiveCell.FormulaR1C1 = "=IF(RC[-4]=0,"""",RC[-1]/RC[-4])"
Next cel
ne fonctionne pas???? (ci-joint un petit bout de mon fichier).

Merci pour votre aide.

C@thy
BipBip.gif
 

Pièces jointes

  • elections.zip
    16.4 KB · Affichages: 12
C

C@thy

Guest
non, la bonne formules est :
For Each cel In Selection
If cel.FormulaR1C1 = "=RC[-1]/RC[-4])" Then cel.FormulaR1C1 = "=IF(RC[-4]=0,"""",RC[-1]/RC[-4])"
Next cel

(cel.FormulaR1C1 et non activecell)
mais de toute façon ça ne marche pas!!!

C@thy
BipBip.gif
 
N

niko

Guest
salut cathy et au forum
pour le parcour de collection j'ai eu le meme probleme , il fallait en fait faire
une declaration de variable range et faire une reference ...dans mon exemple çà donne cela :

Dim marange,macell as range
set marange = union(range("XX:XX"),range("XX:XX"),etc...)

et alors ...:
For each macell in marange
If macell.Value <> "" Then
...
Ca fonctionnait !

Comme ta 'Selection' est a mon avis une plage de cellule je pense que c'est un peu le meme probleme que moi ...
En asperant que tu y arrivera

Bonne journée!
 

Discussions similaires

Réponses
17
Affichages
1 K