Vb Problème avec Roundup

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 !

Arpette

XLDnaute Impliqué
Bonsoir à toutes et à tous, je cherche une solution pour arrondir une variable quivant le résultat de mon code. Je m'explique:
si B2*B3/1000/25 est inférieur ou égal à 1, je renseigne 1*25 en A1, si j'arrive à 1,1 je renseigne 2*25, si 2,1 je renseigne 3*25 etc...J'ai écrit ce code mais ça ne change pas comme je souhaite. Je ne sais pas si c'est clair😕
Merci de votre aide
Code:
Option Explicit
Public Function RoundUp(ByVal vValeur As Variant, Optional ByVal iNbDecimal As Integer) As Variant
   If Abs(iNbDecimal) < 1 Then RoundUp = -Int(-vValeur * 10 ^ iNbDecimal) / 10 ^ iNbDecimal
End Function

Sub test()
Dim i As Integer

If Cells(1, 2) * Cells(1, 3) / 1000 = 0 Then
            Cells(1, 1).Value = 0
   End If
    If Cells(1, 2) * Cells(1, 3) / 1000 <> 0 Then
        i = RoundUp(Cells(1, 2) * Cells(1, 3) / 1000) / 25
        
        Cells(1, 1) = i * 25
    End If
End Sub
 
Re : Vb Problème avec Roundup

Bonsoir ,
Essaie comme ceçi

Code:
Sub test()
Dim i As Integer

If Cells(1, 2) * Cells(1, 3) / 1000 = 0 Then
            Cells(1, 1).Value = 0
   End If
    If Cells(1, 2) * Cells(1, 3) / 1000 <> 0 Then
        i = RoundUp(Cells(1, 2) * Cells(1, 3) / 1000)
        Cells(1, 1) = i * 25
    End If
End Sub
 
Re : Vb Problème avec Roundup

Bonsoir ,
Essaie comme ceçi

Code:
Sub test()
Dim i As Integer

If Cells(1, 2) * Cells(1, 3) / 1000 = 0 Then
            Cells(1, 1).Value = 0
   End If
    If Cells(1, 2) * Cells(1, 3) / 1000 <> 0 Then
        i = RoundUp(Cells(1, 2) * Cells(1, 3) / 1000)
        Cells(1, 1) = i * 25
    End If
End Sub
Bonsoir Systmd, ça fonctionne bien, mais au lieu d'avoir en A1 25 ou 50 etc.. j'ai 625, 650 etc... Je pense que çà vient de la fonction avec les décimales, mais je ne sais pas où.
Code:
Option Explicit
Public Function RoundUp(ByVal vValeur As Variant, Optional ByVal iNbDecimal As Integer) As Variant
   If Abs(iNbDecimal) < 1 Then RoundUp = -Int(-vValeur * 1 ^ iNbDecimal) / 1 ^ iNbDecimal
End Function
Sub test()
Dim i As Integer

If Cells(1, 2) * Cells(1, 3) / 1000 = 0 Then
            Cells(1, 1).Value = 0
   End If
    If Cells(1, 2) * Cells(1, 3) / 1000 <> 0 Then
        i = RoundUp(Cells(1, 2) * Cells(1, 3) / 1000)
        Cells(1, 1) = i * 25
    End If
End Sub
 
Re : Vb Problème avec Roundup

Bonjour à tous

pour reprendre l'idée d' Habitude avec un précision

[A1] = Round([B2] * [B3] / 1000 / 25 + 0.409, 0) * 25

J'avais une erreur à 2.1 j'obtenai 50 et seulement avec 2.12 j'avais 75
 
Re : Vb Problème avec Roundup

Bonsoir Arpette, et à ceux qui passeront par ici,

Il n'est pas bien de laisser tomber comme de vielles chaussette
ceux qui ont tenté de t'aider ici: 😕 Sur le même type de sujet...

https://www.excel-downloads.com/threads/vba-probleme-darrondi-avec-multiples.149240/

Il y a quand-même un coté vexant!!! 😡

Amicalement, et bonne suite.

Yann

Amicalement, et bonne suite.

Yann
Bonsoir Yannn, Soan, Habitude et systmd, j'ai réussi en faisant l'amalgamme de vos idées à résoudre mon problème. Yann, ta réponse m'a permis de me poser d'autres questions et d'ouvrir des portes auxqu'elles je n'avais pas pensé et tu n'es pas une vieille chaussette 🙂
Merci à tous, je fais çà pour un de nos ami du forum et avec votre aide on va lui simplifier la vie.
@+ dans la vie
 
- 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

Réponses
5
Affichages
908
Réponses
4
Affichages
280
Réponses
15
Affichages
779
Retour