1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| Private Sub CommandButton1_Click()
If ind1 = "" Or ind2 = "" Then
Unload Me
Else
année = Year(Date)
'si je met les 2 indices a type long j'ai un resultat faux dans l'operation pourquoi????
Dim indice1 As Variant, indice2 As Variant
'si je met les 2 variables de loyerdepart et parkingdepart a type long j'ai un resultat faux dans l'operation pourquoi????
Dim loyerdepart As Variant, parkingdepart As Variant
'pareil ici si je les met a long je n'obtiens que les chiffres devant la virgule
Dim result1 As Variant, result2 As Variant
loyerdepart = Sheets(année).Range("N4")
parkingdepart = Sheets(année).Range("N18")
indice1 = ind1
indice2 = ind2
result1 = Format(loyerdepart / indice1 * indice2, "0.00") 'ici j'ai mis un point pour la decimale mais dans le textbox c'est une virgule pourquoi?????
result2 = Format(parkingdepart / indice1 * indice2, "0.00")
'j'injecte les resultat dans les textboxs de resultat
resultappart = result1
resultparking = result2
'et ici je suis encore obligé de faire un replace sur la virgule vers le point bien _ que le separateur decimal des cellules est une virgule
Sheets(année).Range("N14").Value = Replace(result1, ",", ".")
Sheets(année).Range("N20").Value = Replace(result2, ",", ".")
Sheets(année).Range("N10").Value = Replace(indice1, ",", ".")
Sheets(année).Range("N12").Value = Replace(indice2, ",", ".")
Application.Wait (Now + TimeValue("0:00:02"))
ferme = False
Unload Me
End If
'conclusion
'si j 'injecte un nombre decimal par un textbox dans une formule vba(addition,soustraction et autre) je suis _
obligé de remplacer le point par une virgule dans le textbox car vba _
interprete le point dans le textbox comme du texte hors c'est le point qui est le separateur decimal dans une macro
'mais si j'utilise un nombre decimale dans une macro je dois utiliser le point sinon _
le nombre est interprété comme du texte
'ensuite si je veut injecter un resultat dans une cellule par macro je doit remplacer la virgule par le point
'pourtant dans les cellules c'est une virgule le separateur decimal sinom avec la virgule c'est interprété comme du text
'c'est assez paradoxal quand meme!!!!!voir meme quand on tape un nombre decimal dans une cellule _
avec le clavier le point est automatiquement remplacée par une virgule
''exemple :
'Sub calcul_moi_ca()
'MsgBox 10.2 * 2.5----->>>> j'obtiens 25,5 donc avec une virgule
'End Sub
'maintenant si j'utilise 2 textboxs avec les meme valeur
'textbox1 avec 10.2 dedans
'textbox2 avec 2.5 dedans
'pour faire l'operation je suis obligé de faire un replace(textboxX,".",",")
'c'est assez déconcertant sans parler que je suis obligé de passer par des variables _
"de type variant "pour calculer des valeurs numeriques(type long )
'sinon j 'ai un resultat incohérent voir faux
'
' bref je me suis bien donné mal a la tete
End Sub |