[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
- Clear type - Guide
- Excel cellule couleur si condition texte - Guide
- Valeur relative et absolue ✓ - Forum Webmastering
- Condition optimale téléphone ✓ - Forum Mobile
- Incompatibilité de type vba ✓ - Forum Excel
2 réponses
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 !