Effacer le zèro après une multiplication

P

Pias

Guest
Bonsoir le Forum
------------------------------------------------------------------------------
Sub Macro1() 'formule D=B*C
Columns("D:D").FormulaR1C1 = "=RC[-2]*RC[-1]"
End Sub
-------------------------------------------------------------------------------
En utilisant la macro ci-dessus j’obtient naturelment dans la colonne D la multiplication de B*C.
Je souhaiterai par la suite effacer ou supprimer, mais je suppose que pour effacer ça va plus vite, dans la colonne D, depuis le bas (Stop dans la première cellule différente de zéro), toutes les cellules contenant un zéro.

J’ai déjà regardez dans les anciens message si l y a plusieurs solutions mais lentes à l’exécution ou l’alors je ne sais pas les utilisez.


Es-ce que quelqu’un peut SVP m’indiquer quel est la meilleur solution ?surtout question vitesse puis que avec la multiplication on vas jusque à la dernière cellule ?


Amicalement

...On se lasse de tout sauf d’apprendre !..
 
R

Robert

Guest
Oi Pias,

Eu aqui de novo... Tubo bom com você ?

Plusieurs options :
1/ Si tu remplaces la formule par celle-ci tu auras la formule dans toute la colonne D mais pas les zéros. Elle correspond sur Excel à une formule conditionnelle simple : =SI(OU(B1=0;C1=0);"";B1*C1). Avantage : si tu rajoutes des valeurs en B et C le calcul se fera toujours…

Sub Macro1() 'formule D=B*C
Columns("D:D").FormulaR1C1 = "=IF(OR(RC[-2]=0,RC[-1]=0),"""",RC[-2]*RC[-1])"
End Sub

2/ Menu Outil/Options..., onglet Affichage, partie Fenêtres, décocher la case Valeur zéro. Inconvénient : si tu veux voir les zéros dans d’autres cellules car c'est tout ou rien

3/ code VBA, Rajouter ces quelques lignes après la formule (si tu gardes la tienne, car avec la mienne ce n'est pas nécessaire). Inconvénient : en cas de nouvelle édition en B et C il faudra relancer la macro…

Dim li As Long 'déclare la variable li
'définit la variable li (dernière ligne éditée de la colonne B + 1)
li = Range("B65536").End(xlUp).Row + 1
Range("D" & li & ":D65536").ClearContents 'efface de Dli à D65536

À plus,

Robert
 
P

Pias

Guest
Salut Robert,

Ta réponse est presque plus belle que le but de Maniche à l’Euro2004 en Demi-Finale.

C’est simplement super la manière comme tu as répondue, et c’est ça la force de ce Forum.
Avoir la chance d’avoir de contributeurs comme toi.

Moi aussi j’aimerais pouvoir répondre mais le problème est que soit je ne connais pas la réponse soit j’arrive trop tard, et quelqu’un d’autre a déjà répondue.

Je vais utiliser la solution 3 car la macro est de toute façon relancé avant. (J’ai testé ça fonctionne très bien)
Bien entendue je garde précieusement les autres solutions au besoin pour plus tard.

Un grand Merci et mil Obrigados…

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
R

Robert

Guest
Re Pias,

Quelle comparaison ! Non mile fois non... Le but de Maniche était un vériatable Gol de ouro comme le chante Jorge Ben... rien à voir avec ma modeste contribution.

Mais tu sais, je ne compte plus les innombrables bétises que j'ai pu dire dans ce forum et heureusement qu'il y a souvent eu des "Mestres" qui m'ont repris et qui font, tu as raison, que ce froum est une pérola.

Tout tes post terminent par On ne lasse de tout sauf d'apprendre !, j'adore ta formule.

Um abraço,

Robert
 

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz