Calcul d'un ratio par une règle de trois

Bonjour,

Débutant en VBA j'ai créé un petit userform à but professionnel afin d'aider mes collaborateurs à calculer un ratio en fonction d'une modification de cadence.

J'ai en fait 4 TextBox : "Cadence Originelle" - "Ratio Originel" - "Cadence Actualisée" - "Ratio Actualisé".

Les trois premières TextBox sont renseignées par l'opérateur. La quatrième - "Ratio Actualisé" doit me fournir cette opération :

"Ratio Actualisé" = ("Cadence Actualisée" * "Ratio Originel") / "Cadence Originelle".

Je joins le fichier.

Merci par avance pour votre aide et vos suggestions.

Stéphane,

Edit : fichier supprimé à cause du développement qui pose un souci

Bonjour Goose72000

Merci de remplacer votre fichier avec un qui ne comporte pas la ligne SVP

Private Sub Workbook_Open()
Application.Visible = False

Cordialement.

Bonjour,

Il y a un problème dans le userform, il y a 2 fois "cadence originelle", laquelle des 2 est "cadence actualisée"?

Cdlt

Ouops !

En effet, quelques erreurs

Ci-joint le fichier actualisé.

Merci à vous pour votre implication.

41calculs13.xlsm (24.58 Ko)

Vous avez fait un trop de macros pour la partie calcul du ratio, voici cette partie simplifiée

'***********************
' Procédure pour calculer un ratio
'***********************

Private Sub TextBox26_Change()
    If Not IsNumeric(Me.TextBox26) Then
        Me.TextBox26 = 0
    End If
    If TextBox26.Value <> "" And TextBox27.Value <> "" And TextBox38.Value <> "" Then
        If TextBox26.Value > 0 And TextBox27.Value > 0 And TextBox38.Value > 0 Then TextBox39.Value = Round((TextBox27.Value * TextBox38.Value) / (TextBox26.Value), 2)
    End If
End Sub

Private Sub TextBox27_Change()
    On Error Resume Next
    If Right(TextBox27, 1) = 0 Then Exit Sub
    If Not IsNumeric(Right(Me.TextBox27, 1)) Then
        If Right(TextBox27, 1) = "." Then
            MsgBox "Le caractere saisi n'est pas valide." & Chr(10) & "La saisie d'une virgule est nécessaire." & Chr(10) & "Exemple : 7,50"
            TextBox27.Value = Left(TextBox27, Len(TextBox27) - 1)
        End If
    End If
End Sub

Private Sub TextBox38_Change()
    If Not IsNumeric(Me.TextBox38) Then
        Me.TextBox38.Value = 0
    End If
    If TextBox26.Value <> "" And TextBox27.Value <> "" And TextBox38.Value <> "" Then
        If TextBox26.Value > 0 And TextBox27.Value > 0 And TextBox38.Value > 0 Then TextBox39.Value = Round((TextBox27.Value * TextBox38.Value) / (TextBox26.Value), 2)
    End If
End Sub

Cdlt

Coucou Arturo,

Merci pour ce code. Il fonctionne parfaitement.

Je vais désormais le décortiquer pour mieux comprendre mes erreurs.

Un très grand merci car cela me retire une sacrée épine du pied.

Bonne soirée,

Stéphane,

Rechercher des sujets similaires à "calcul ratio regle trois"