[VBA]Condition sur le type d'une valeur
Résolu
Schtroumpf_Wiki
-
Schtroumpf_Wiki -
Schtroumpf_Wiki -
Bonjour,
une question toute bête. Est-il possible de faire une boucle conditionnelle où la condition ne serait pas une compatraison à une valeur mais à un type de valeur ? Par exemple est-ce que l'algorithme suivant est faisable en VBA :
Si a n'est pas un entier alors
message d'erreur
fin du programme
fin si
pour éviter que me macro bug en multipliant des lettres !
Merci !
une question toute bête. Est-il possible de faire une boucle conditionnelle où la condition ne serait pas une compatraison à une valeur mais à un type de valeur ? Par exemple est-ce que l'algorithme suivant est faisable en VBA :
Si a n'est pas un entier alors
message d'erreur
fin du programme
fin si
pour éviter que me macro bug en multipliant des lettres !
Merci !
A voir également:
- [VBA]Condition sur le type d'une valeur
- Excel cellule couleur si condition texte - Guide
- Clear type - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Attribuer une valeur à une cellule texte excel ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
2 réponses
Bonjour
en utilisant la fonction IsNumeric(VarName) qui renvoie une réponse booléenne
ou bien TypeName(VarName) qui renvoie "Integer","String",.....
en utilisant la fonction IsNumeric(VarName) qui renvoie une réponse booléenne
ou bien TypeName(VarName) qui renvoie "Integer","String",.....
bonjour,
voici une petite boucle qui permet de le faire :
Sub cherchedécimal()
i = 1
'balaie toutes les lignes de la colonne 1 jusqu'à ce que la cellule de la colonne 1 de la ligne i soit vide
Do While Cells(i, 1) <> ""
car = Len(Cells(i, 1)) 'variable car = nombre de caractère de la cellule de la ligne i et de la colonne 1
valeur = Cells(i, 1) 'variable valeur = cellule de la ligne i et de la colonne 1
Do While car > 0 ' tourne jusqu'à ce que valeur n'est plus de caractères
If Left(valeur, 1) = "," Then 'si le premier caractère de valeur à gauche est une virgule représentant ton nombre décimal
mess = MsgBox("Il y a un chiffre décimal dans la liste", vbOKOnly) 'alors affichage d'un message d'erreur
Exit Sub 'stop d ela macro
Else
valeur = Right(Cells(i, 1), Len(valeur) - 1) 'valeur devient égal à valeur moins le premier caractère situé à gauche
car = Len(valeur) ' car = nombre de caractère de valeur
End If
Loop
i = i + 1
Loop
End Sub
voici une petite boucle qui permet de le faire :
Sub cherchedécimal()
i = 1
'balaie toutes les lignes de la colonne 1 jusqu'à ce que la cellule de la colonne 1 de la ligne i soit vide
Do While Cells(i, 1) <> ""
car = Len(Cells(i, 1)) 'variable car = nombre de caractère de la cellule de la ligne i et de la colonne 1
valeur = Cells(i, 1) 'variable valeur = cellule de la ligne i et de la colonne 1
Do While car > 0 ' tourne jusqu'à ce que valeur n'est plus de caractères
If Left(valeur, 1) = "," Then 'si le premier caractère de valeur à gauche est une virgule représentant ton nombre décimal
mess = MsgBox("Il y a un chiffre décimal dans la liste", vbOKOnly) 'alors affichage d'un message d'erreur
Exit Sub 'stop d ela macro
Else
valeur = Right(Cells(i, 1), Len(valeur) - 1) 'valeur devient égal à valeur moins le premier caractère situé à gauche
car = Len(valeur) ' car = nombre de caractère de valeur
End If
Loop
i = i + 1
Loop
End Sub
Merci beaucoup !