Bonjour à tous,
Je réalise une application VBA dans laquelle l'utilisateur se retrouve à saisir des valeurs dans des TextBox. Pour vérifier si il s'agit bien de nombres que je vais stocker dans les cellules, j'utilise la fonction IsNumeric. Jusqu'ici tout se passe très bien, il me recopie tout le temps les nombres dans les cellules.
Le problème se trouve dans la cellule juste à côté, dont la formule est un quotient de deux cellules, dont celle qui possède le IsNumeric. Lorsque l'utilisateur entre un nombre entier, tout va pour le mieux. Toutefois, ça coince lorsqu'il entre un nombre décimal. En effet, pour que IsNumeric fonctionne, il faut entrer le nombre décimal avec une virgule. Or mon quotient lui demande un point. Existe-t-il un argument permettant le contraire ?
Voici le code de ma ligne IsNumeric pour copier dans les cellules :
Voici ensuite ma formule telle qu'elle apparait dans la feuille excel pour la cellule D3:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub CommandButton1_Click() If IsNumeric(TextBox1.Value) = True And IsNumeric(TextBox2.Value) = True And IsNumeric(TextBox3.Value) = True And IsNumeric(TextBox4.Value) = True And IsNumeric(TextBox5.Value) = True And IsNumeric(TextBox6.Value) And IsNumeric(TextBox7.Value) And IsNumeric(TextBox8.Value) Then Application.Workbooks(1).Worksheets(1).Range("H" & compteur).Value = TextBox1.Value Application.Workbooks(1).Worksheets(1).Range("F" & compteur).Value = TextBox2.Value Application.Workbooks(1).Worksheets(1).Range("K" & compteur).Value = TextBox3.Value Application.Workbooks(1).Worksheets(1).Range("I" & compteur).Value = TextBox4.Value Application.Workbooks(1).Worksheets(1).Range("N" & compteur).Value = TextBox5.Value Application.Workbooks(1).Worksheets(1).Range("L" & compteur).Value = TextBox6.Value Application.Workbooks(1).Worksheets(1).Range("Q" & compteur).Value = TextBox7.Value Application.Workbooks(1).Worksheets(1).Range("O" & compteur).Value = TextBox8.Value Unload UserForm3 Else MsgBox ("Veuillez remplir des valeurs numériques entières ou avec une virgule (,) dans les champs.") End If End Sub
=SI(C3=0;"";ARRONDI(E3/C3;2))
Et la manière dont je les ai codé dans VBA :
Pour passer la fonction IsNumeric, il me faut entrer un nombre du type :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ' 'On remplit l'ensemble des données et on arrondit le cout unitaire a deux décimales ' For compteur = 3 To DerniereLigneProg Range("D" & compteur).Formula = "=IF(C" & compteur & "=0," & Chr(34) & Chr(34) & ",ROUND(E" & compteur & "/C" & compteur & ",2))" Range("F" & compteur).Formula = "=C" & compteur Range("G" & compteur).Formula = "=IF(F" & compteur & "=0," & Chr(34) & Chr(34) & ",ROUND(H" & compteur & "/ F" & compteur & ",2))" Range("H" & compteur).Formula = "=E" & compteur Range("I" & compteur).Formula = "=F" & compteur Range("J" & compteur).Formula = "=IF(I" & compteur & "=0," & Chr(34) & Chr(34) & ",ROUND(K" & compteur & "/ I" & compteur & ",2))" Range("K" & compteur).Formula = "=H" & compteur Range("L" & compteur).Formula = "=I" & compteur Range("M" & compteur).Formula = "=IF(L" & compteur & "=0," & Chr(34) & Chr(34) & ",ROUND(N" & compteur & "/ L" & compteur & ",2))" Range("N" & compteur).Formula = "=K" & compteur Range("O" & compteur).Formula = "=L" & compteur Range("P" & compteur).Formula = "=IF(O" & compteur & "=0," & Chr(34) & Chr(34) & ",ROUND(Q" & compteur & "/ O" & compteur & ",2))" Range("Q" & compteur).Formula = "=N" & compteur Next compteur
25
25,6
Mais le quotient lui ne fonctionne que avec les nombres du type :
25
25.6
Je vous remercie vivement par avance pour votre aide.