Vérifier le type d'une variable
Résolu
VBAdebutant11
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
VBAdebutant11 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
VBAdebutant11 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour.
Svp comment utiliser l'instruction TantQue en VBA pour le cas suivant
Dim c as string
c = Inputbox("Saisissez une lettre.")
Do until c is string
c= Inputbox ("Veuillez saisir une lettre."
Loop
Le c est censé représenter la lettre d'une colonne.
Le "Do Until c is string" est faux
Donc, comment vérifier le type d'une variable ?
Et, existe-t-il un type "colonne de cellule" en VBA car même en considérant c une chaine de caractères, si l'utilisateur saisit "affj5454??" j'aurais un souci.
Merci beaucoup.
Svp comment utiliser l'instruction TantQue en VBA pour le cas suivant
Dim c as string
c = Inputbox("Saisissez une lettre.")
Do until c is string
c= Inputbox ("Veuillez saisir une lettre."
Loop
Le c est censé représenter la lettre d'une colonne.
Le "Do Until c is string" est faux
Donc, comment vérifier le type d'une variable ?
Et, existe-t-il un type "colonne de cellule" en VBA car même en considérant c une chaine de caractères, si l'utilisateur saisit "affj5454??" j'aurais un souci.
Merci beaucoup.
A voir également:
- Vérifier le type d'une variable
- Verifier compatibilite windows 11 - Guide
- Verifier un lien - Guide
- Vérifier si une phrase est correcte - Accueil - Google
- Clear type - Guide
- Vérifier si mot de passe piraté - Guide
4 réponses
Bonjour,
Ce n'est pas une vérification de type de donnée dont tu as besoin car tu fais saisir une chaîne de caractères.
Il faut simplement que tu vérifies que la saisie est dans les limites du nombre de colonnes.
Majuscule(c)>="A" et <="XFD" pour xl 2010
Cdlt
Ce n'est pas une vérification de type de donnée dont tu as besoin car tu fais saisir une chaîne de caractères.
Il faut simplement que tu vérifies que la saisie est dans les limites du nombre de colonnes.
Majuscule(c)>="A" et <="XFD" pour xl 2010
Cdlt
Bonjour,
attention que "AAAA" < "XFD" est vrai
Tu pourrais utiliser :
pour tester la validité de la saisie selon la version d'excel utilisée.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
attention que "AAAA" < "XFD" est vrai
Tu pourrais utiliser :
IsError(Range(c & 1).Address)
pour tester la validité de la saisie selon la version d'excel utilisée.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Merci pour votre aide précieuse !
Svp quelle est l'instruction exacte à faire dans cet exemple :
Dim c as string
Dim l as integer
c = Inputbox("Colonne de la cellule")
l = Inputbox ("Ligne de la cellule")
Do until IsError (Range(C & L).Address) = False
c = Inputbox("Colonne de la cellule")
l = Inputbox ("Ligne de la cellule")
Loop
Je veux vérifier que que Range(c & l) est bien une cellule
Merci d'avance.
Svp quelle est l'instruction exacte à faire dans cet exemple :
Dim c as string
Dim l as integer
c = Inputbox("Colonne de la cellule")
l = Inputbox ("Ligne de la cellule")
Do until IsError (Range(C & L).Address) = False
c = Inputbox("Colonne de la cellule")
l = Inputbox ("Ligne de la cellule")
Loop
Je veux vérifier que que Range(c & l) est bien une cellule
Merci d'avance.
Ca pourrait être :
ou
Mais je te conseille de ne pas travailler avec c et l.
Travaille avec un range, et utilise .offset() pour le décaler.
cel.offset(5, -2) te fourni un range (une cellule) située 5 ligne en-dessous et 2 colonnes à gauche de cel (car négatif).
Si tu as du mal précise ton cas et on essaiera de t'éclairer. On a tous débuté, autant essayer de gagner du temps sur les bons reflexes ;-)
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Sub test() Dim c As String, l As Integer, ok As Boolean Do c = InputBox("reference de la cellule") On Error Resume Next ok = Not (IsError(Range(c).Address)) On Error GoTo 0 Loop Until ok l = Split(Range(c).Address, "$")(2) c = Split(Range(c).Address, "$")(1) End Sub
ou
Sub test2() Dim cel As Range Dim c As String Dim l As Integer Set cel = Application.InputBox("Cliquer la cellule", "Référence", , , , , , 8) c = Split(Range(c), "$")(0) l = Split(Range(c), "$")(1) End Sub
Mais je te conseille de ne pas travailler avec c et l.
Travaille avec un range, et utilise .offset() pour le décaler.
cel.offset(5, -2) te fourni un range (une cellule) située 5 ligne en-dessous et 2 colonnes à gauche de cel (car négatif).
Si tu as du mal précise ton cas et on essaiera de t'éclairer. On a tous débuté, autant essayer de gagner du temps sur les bons reflexes ;-)
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci