Un code vb pour simplifier
gilou
-
gilou -
gilou -
Bonjour,
je suis confronté à un probleme de valeurs negatives qui me faussent une addition ,ma question est la suivante:
dans la plage de cellules (f4: k30) toute valeur <0 = 0 je vous remercie en esperant que l'en mettant ce code
dans une procedure selection_change je puisse arriver a mes fins
je suis confronté à un probleme de valeurs negatives qui me faussent une addition ,ma question est la suivante:
dans la plage de cellules (f4: k30) toute valeur <0 = 0 je vous remercie en esperant que l'en mettant ce code
dans une procedure selection_change je puisse arriver a mes fins
A voir également:
- Un code vb pour simplifier
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
4 réponses
Bonjour,
Je suppose que tes cellules contiennent des formules. Dans ce cas, la cellule peut changer sans pour autant être modifiée. Il me semble donc que ce n'est pas un événement SelectionChange dont tu as besoin, mais plutôt d'un Calculate.
Par exemple :
Cela étant dit, s'il s'agit bien de formules, tu les perdras si la valeur est inférieure à 0. Je pense qu'il serait plus sage d'ajouter le IF x<0 dans la formule même...
m@rina
Je suppose que tes cellules contiennent des formules. Dans ce cas, la cellule peut changer sans pour autant être modifiée. Il me semble donc que ce n'est pas un événement SelectionChange dont tu as besoin, mais plutôt d'un Calculate.
Par exemple :
Private Sub Worksheet_Calculate() For Each cellule In Range("F4:K30") If cellule.Value < 0 Then cellule.Value = 0 End If Next End Sub
Cela étant dit, s'il s'agit bien de formules, tu les perdras si la valeur est inférieure à 0. Je pense qu'il serait plus sage d'ajouter le IF x<0 dans la formule même...
m@rina
bonjour Gilou,M@rina
tiens, pour 1 fois j'ai mis l'arobase... :-#
syntaxe VBA:
Set plage = Range("F4:F30")
total = Application.SumIf(plage, ">=0", plage)
mais + simplement par formule
=SOMME.SI(F4:F30;">=0";F4:F30)
tiens, pour 1 fois j'ai mis l'arobase... :-#
syntaxe VBA:
Set plage = Range("F4:F30")
total = Application.SumIf(plage, ">=0", plage)
mais + simplement par formule
=SOMME.SI(F4:F30;">=0";F4:F30)
Hello Michel_m (du coup j'ai ajouté le m aussi ! ;)
Pourquoi un somme.si ? Je n'ai pas vu que Gilou parlait de la somme de cette plage.. Mais bon, j'ai peut être pas tout lu !! :D Ou je n'ai peut être pas tout compris, ça c'est possible aussi !
Donc, Gilou, tu nous réexplique avec un peu plus de détails ?
m@rina
Pourquoi un somme.si ? Je n'ai pas vu que Gilou parlait de la somme de cette plage.. Mais bon, j'ai peut être pas tout lu !! :D Ou je n'ai peut être pas tout compris, ça c'est possible aussi !
Donc, Gilou, tu nous réexplique avec un peu plus de détails ?
m@rina
Coucou M@rin@
et 2 arobases, 2!
bin ch'ais pas, c'est le mot "addition" qui m'a aiguillé
"qui me faussent une addition ,ma question est la suivante:
dans la plage de cellules (f4: k30) toute valeur <0 = 0 "
Alors attendons Gilou
bonne soirée
et 2 arobases, 2!
bin ch'ais pas, c'est le mot "addition" qui m'a aiguillé
"qui me faussent une addition ,ma question est la suivante:
dans la plage de cellules (f4: k30) toute valeur <0 = 0 "
Alors attendons Gilou
bonne soirée
bonjour
merci d'attendre . Alors voila le sujet . Dans une feuille j'ai crée un tableau qui me calcule des temps passés dans des tranches horaires : il suffit de saisir l'heure de debut et l'heure de fin pour savoir combien de temps
à ete passé de telle à telle heure : exemple : de 3 à 14 hr cela donne : de 0 à5 =2; de5à7 =2 ; de7à8 =1 ;de8à17= 5 ces resultats sont obtenus par une "armee" de f(x) SI mais parfois selon la saisie j'obtiens des valeurs negatives malgre la complexite des fonctions (probablement une mauvaise gestion des conditions) neanmoins si je n'avais pas eu envie de totaliser chaque colonne tout irai bien donc les valeurs negatives me genent ,c 'est là qu'aimablement vous m' aidez à convertir ces valeurs en 0
nb)1 j'ai 3 "etudes" de ce tableau 1) avec vba +/- potable ; 2) fonction si(et + recherche : pas mal mais dure à tirer dans le tableau ; 3) f(x) si: ma preferée ormis les val negatives
je vous ai tout dit le sujet principal est : comment convertir des valeurs negatives en 0 sans perturber l'action d'une fonction
merci d'avance
merci d'attendre . Alors voila le sujet . Dans une feuille j'ai crée un tableau qui me calcule des temps passés dans des tranches horaires : il suffit de saisir l'heure de debut et l'heure de fin pour savoir combien de temps
à ete passé de telle à telle heure : exemple : de 3 à 14 hr cela donne : de 0 à5 =2; de5à7 =2 ; de7à8 =1 ;de8à17= 5 ces resultats sont obtenus par une "armee" de f(x) SI mais parfois selon la saisie j'obtiens des valeurs negatives malgre la complexite des fonctions (probablement une mauvaise gestion des conditions) neanmoins si je n'avais pas eu envie de totaliser chaque colonne tout irai bien donc les valeurs negatives me genent ,c 'est là qu'aimablement vous m' aidez à convertir ces valeurs en 0
nb)1 j'ai 3 "etudes" de ce tableau 1) avec vba +/- potable ; 2) fonction si(et + recherche : pas mal mais dure à tirer dans le tableau ; 3) f(x) si: ma preferée ormis les val negatives
je vous ai tout dit le sujet principal est : comment convertir des valeurs negatives en 0 sans perturber l'action d'une fonction
merci d'avance
pouvez -vous me donner un modele concret car je n'ai jamais melangé des macros avec des fonctions
si la f(x) est SI(.......;SI(........;SI(.........))))ou doit -on mettre le IF x<0 de plus est-ce vraiment x ou faut-il nommer la cell si :alors je crains une ref circulaire ; s v p expliquez moi cela dans le detail afin d'eviter qu'en voulant simplifier ,jen'aille "scratcher" des fonctions qui m'ont deja pris la tete en tout cas merci de m'avoir prevenu