• Initiateur de la discussion Initiateur de la discussion jeanphi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanphi

XLDnaute Occasionnel
Bonjour


J'tulise une macro me permettant de faire faire des calculs de pourcentage à partir d'un TCD (voir ci dessous)
Le pb est que parfois les données de mon TCD implique de diviser 0 par 0....
Du coup je me prends un #DIV/0! en résultat!!
Comment puis je coder dans ma macro que si le dioviseur est 0 alors ma cellule reste vide???
Merci 🙂

Range("H11").Select
ActiveCell.FormulaR1C1 = _
"=GETPIVOTDATA(""Somme de Réalisé"",'TCD par PE et Projet'!R3C1,""Plan Equipement"",""PE DISQUE IC"")/GETPIVOTDATA(""Somme de Engagé"",'TCD par PE et Projet'!R3C1,""Plan Equipement"",""PE DISQUE IC"")"
 
Re : Division par zéro

bonjour jeanphi

A tester:

Code:
If Not IsError(Application.Evaluate("=GETPIVOTDATA(""Somme de Réalisé"",'TCD par PE et Projet'!R3C1,""Plan Equipement"",""PE DISQUE IC"")/GETPIVOTDATA(""Somme de Engagé"",'TCD par PE et Projet'!R3C1,""Plan Equipement"",""PE DISQUE IC"")")) Then
ActiveCell.FormulaR1C1 = "=GETPIVOTDATA(""Somme de Réalisé"",'TCD par PE et Projet'!R3C1,""Plan Equipement"",""PE DISQUE IC"")/GETPIVOTDATA(""Somme de Engagé"",'TCD par PE et Projet'!R3C1,""Plan Equipement"",""PE DISQUE IC"")"
End If
 
Re : Division par zéro

Pour être clair, la solution apportée par Pierrot marche très bien
Le problème c'est que si l'erreur #DIV/0! survient, le code de Pierrot enlève la formule de la cellule (données issues d'un TCD) et du coup si je relance la macro en ayant au préalable modifier les données afin d'éviter qu'un "cas 0 / 0" se produise, la valeur de la cellule reste malgré tout vide puisque la formule a disparu
Quelqu'un peut t'il m'aider??? 🙁
Merci
 
Re : Division par zéro

Re

bonjour jeanphi

Je peux tout au plus t'indiquer une piste a savoir

remplacer tes formules par quelque chose du genre (version Vba)

Code:
IF(ISERROR(formule),"""",formule)

Mais je t'avoue que je n'y suis pas arrivé
 
Re : Division par zéro

j avoue ne pas avoir tout compris la macro que tu as donnée est tres longue mais bon je vais quand meme donnée une réponse avec ce que j ai "cru" comprendre.

Tu veux garder une formule dans la cellule sans que ca marque diviser par 0 car quand ca marque cela ca enleve ta formule .... ca c est ce que j ai compris !
je te propose donc une solution trés moche 🙂

tu regarde si ton diviseur est nul si oui tu crée une variable qui le remplace par 10^20. comme ca apres dans ton tableau si tu affiche juste 1 ou 2 chiffre apres la virgule le résultat de 1/10^20 va etre zéro.

bon ok je sors 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
9
Affichages
3 K
Maxime7
M
C
Réponses
5
Affichages
2 K
Charles78
C
C
Réponses
23
Affichages
4 K
Charles78
C
M
Réponses
9
Affichages
1 K
Mr.Nobody
M
K
Réponses
3
Affichages
1 K
K
B
Réponses
2
Affichages
1 K
briatexte
B
S
Réponses
9
Affichages
6 K
Sarahlala
S
L
Réponses
4
Affichages
4 K
Lazuli
L
N
  • Question Question
Réponses
5
Affichages
3 K
D
Réponses
3
Affichages
2 K
K
Réponses
0
Affichages
3 K
K
B
Réponses
4
Affichages
3 K
Belligou
B
Retour