VBA programme qui calcul une chaine de caract
Boc
-
JP -
JP -
Bonjour,
J'avais créer un programme qui me perté de calculer P x T avec P et T des nombre et x et un caractère.
mais je voudrais essayer de calculer P x T x R avec P, T et R des nombre et x et un caractère.
Voici mon programme.
' cette fonction permet de déterminer le nombre de barre
' on a besoin de 5 paramètres qui sont dans l'ordre le nombre de barre, savoir si on à des attentes, connaitre le mètre linéaire des attentes, et connaitre l'éspacement
Function NB_HA(Nb As Variant)
' endroit ou l'on va stocker pendant l'éxécution du programme
Dim i As Integer, Caractere As String, X As Integer, y As Integer, z As Integer, Operateur As String, chaine As Variant, calcul As Variant
'si il y a une erreur on continue
On Error Resume Next
If IsNumeric(Nb) Then
'NB_HA est égale a cette valeur à laquelle on ce débarrasse du signe + en lui effectuant une opération "*1 +0 "
NB_HA = (Nb * 1) + 0
Else
' sinon si ce n'est pas une valeur numérique
chaine = Nb
i = 1
' on créer une boucle qui va récupérer les valeurs avant le signe opérateur et après
Do
' caractère correspondant au nombre récupére
Caractere = Mid(chaine, i, 1)
i = i + 1
Loop Until Not IsNumeric(Caractere)
'x récupère les valeurs avant le signe opérateur
X = CInt(Left(chaine, i - 2))
' y récupère les valeurs après le signe opérateur
y = CInt(Right(chaine, Len(chaine) - i + 1))
Operateur = Mid(chaine, i - 1, 1)
y = CInt(Right(chaine, Len(chaine) - i + 2))
Operateur = Mid(chaine, i - 1, 2)
' si les valeurs en y sont 0 alors le résultat NB_HA donnera juste les valeurs trouvé par x
If y = 0 Then
NB_HA = X
Else
' inversement,si les valeurs en x sont 0 alors le résultat NB_HA donnera juste les valeur trouvé par y
If X = 0 Then
NB_HA = y
' sinon si x et y contiennent quelque chose alors on transformet les signes + en + x en * et X en * selon le cas que l'on a
Else
Select Case Operateur
Case "+": NB_HA = X + y + z
Case "X": NB_HA = X * y * z
Case "x": NB_HA = X * y * z
End Select
End If
End If
End If
End Function
J'avais créer un programme qui me perté de calculer P x T avec P et T des nombre et x et un caractère.
mais je voudrais essayer de calculer P x T x R avec P, T et R des nombre et x et un caractère.
Voici mon programme.
' cette fonction permet de déterminer le nombre de barre
' on a besoin de 5 paramètres qui sont dans l'ordre le nombre de barre, savoir si on à des attentes, connaitre le mètre linéaire des attentes, et connaitre l'éspacement
Function NB_HA(Nb As Variant)
' endroit ou l'on va stocker pendant l'éxécution du programme
Dim i As Integer, Caractere As String, X As Integer, y As Integer, z As Integer, Operateur As String, chaine As Variant, calcul As Variant
'si il y a une erreur on continue
On Error Resume Next
If IsNumeric(Nb) Then
'NB_HA est égale a cette valeur à laquelle on ce débarrasse du signe + en lui effectuant une opération "*1 +0 "
NB_HA = (Nb * 1) + 0
Else
' sinon si ce n'est pas une valeur numérique
chaine = Nb
i = 1
' on créer une boucle qui va récupérer les valeurs avant le signe opérateur et après
Do
' caractère correspondant au nombre récupére
Caractere = Mid(chaine, i, 1)
i = i + 1
Loop Until Not IsNumeric(Caractere)
'x récupère les valeurs avant le signe opérateur
X = CInt(Left(chaine, i - 2))
' y récupère les valeurs après le signe opérateur
y = CInt(Right(chaine, Len(chaine) - i + 1))
Operateur = Mid(chaine, i - 1, 1)
y = CInt(Right(chaine, Len(chaine) - i + 2))
Operateur = Mid(chaine, i - 1, 2)
' si les valeurs en y sont 0 alors le résultat NB_HA donnera juste les valeurs trouvé par x
If y = 0 Then
NB_HA = X
Else
' inversement,si les valeurs en x sont 0 alors le résultat NB_HA donnera juste les valeur trouvé par y
If X = 0 Then
NB_HA = y
' sinon si x et y contiennent quelque chose alors on transformet les signes + en + x en * et X en * selon le cas que l'on a
Else
Select Case Operateur
Case "+": NB_HA = X + y + z
Case "X": NB_HA = X * y * z
Case "x": NB_HA = X * y * z
End Select
End If
End If
End If
End Function
A voir également:
- VBA programme qui calcul une chaine de caract
- Chaine tnt gratuite sur mobile - Guide
- Calcul moyenne excel - Guide
- Plus de chaine tv - Guide
- Programme demarrage windows - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
1 réponse
Bonjour,
exemple de code pour 3 nombres, que vous pourrez faire evoluer pour x nombres
Bonne suite
exemple de code pour 3 nombres, que vous pourrez faire evoluer pour x nombres
Function NB_HA(Nb As Variant) Dim Nb As Variant, Chaine As Variant If IsNumeric(Nb) Then 'NB_HA est égale a cette valeur à laquelle on se débarrasse du signe + 'en lui effectuant une opération "*1 +0 " NB_HA = (Nb * 1) + 0 Else Chaine = UCase(Nb) If InStr(1, Chaine, "+") > 0 Then Carcherch = "+" ElseIf InStr(1, Chaine, "X") Then Carcherch = "X" Else MsgBox "erreur d'operateur!!!!!!" Exit Function End If pos = 0 pos1 = 0 pos2 = 0 For i = 1 To Len(Chaine) pos = InStr(i, Chaine, Carcherch) X = Val(Left(Chaine, pos - 1)) debut = pos + 1 i = debut pos1 = InStr(i, Chaine, Carcherch) If pos1 = 0 Then y = Val(Mid(Chaine, debut, Len(Chaine))) Exit For Else y = Val(Mid(Chaine, debut, pos1 - debut)) End If debut = pos1 + 1 i = debut pos1 = InStr(i, Chaine, Carcherch) If pos2 = 0 Then z = Val(Mid(Chaine, debut, Len(Chaine))) Exit For Else z = Val(Mid(Chaine, debut, pos1 - debut)) End If 'a continuer pour un nombre suivant Next 'Calcul en fonction des valeurs de x,y,z If Carcherch = "+" Then NB_HA = X + y + z ElseIf Carcherch = "X" Then If X > 0 And y > 0 And y > 0 Then NB_HA = X * y * z ElseIf X < 1 And y > 0 And z > 0 Then NB_HA = y * z ElseIf X < 1 And y < 1 And z > 0 Then NB_HA = z ElseIf X < 1 And y > 0 And z < 1 Then NB_HA = y ElseIf X > 0 And y < 1 And z < 1 Then NB_HA = X ElseIf X > 0 And y < 1 And z > 0 Then NB_HA = X * z ElseIf X > 0 And y > 0 And z < 1 Then NB_HA = X * y ElseIf X < 1 And y < 1 And z < 1 Then NB_HA = 0 Else End If Else End If End If End Function
Bonne suite
JP
Merci