Private Sub BoutonValider_Click()
Dim Ctrl As Control
Dim T(1, 23)
For Each Ctrl In Me.Controls
If Ctrl.Tag <> "" Then
T(1, CLng(Ctrl.Tag)) = CSng(Ctrl.Value)
End If
Next Ctrl
Les contrôles sont des Textbox dont les Tag sont en ordre croissant. Je cherche à mettre dans un tableau, au rang indiqué par le Tag, la valeur du Textbox correspondant convertie (ici en Single). Cela fonctionne sans le CSng (donc, en restant en texte), mais avec la conversion cela m'indique une erreur "Incompatibilité de type"...
CSng, comme CLng ou CDbl, renvoie une erreur si la valeur à convertir n'est pas numérique (texte vide par exemple).
On peut donc utiliser :
Code:
Private Sub BoutonValider_Click()
Dim Ctrl As Control
Dim T(1, 23)
For Each Ctrl In Me.Controls
If Ctrl.Tag<> Then
If IsNumeric(Ctrl) then T(1, CLng(Ctrl.Tag)) = CSng(Ctrl)
End If
Next Ctrl
End Sub
ou aussi :
Code:
Private Sub BoutonValider_Click()
Dim Ctrl As Control
Dim T(1, 23)
For Each Ctrl In Me.Controls
If Ctrl.Tag <> "" Then
T(1, CLng(Ctrl.Tag)) = Val(Replace(Ctrl, ",", "."))
End If
Next Ctrl
End Sub