Vérifier le type d'une variable

Résolu/Fermé
VBAdebutant11 Messages postés 7 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 14 décembre 2014 - 12 déc. 2014 à 10:40
VBAdebutant11 Messages postés 7 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 14 décembre 2014 - 14 déc. 2014 à 11:30
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.
A voir également:

4 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
12 déc. 2014 à 10:55
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
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 12/12/2014 à 16:13
Bonjour,

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
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
13 déc. 2014 à 03:33
hé oui ...

Et "
ATTENTIONACEQUETUECRISJVDO
" n'est effectivement pas une colonne valide (pour l'instant!!!!!) dans excel.

cordialement
0
VBAdebutant11 Messages postés 7 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 14 décembre 2014
13 déc. 2014 à 20:35
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.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 13/12/2014 à 22:14
Ca pourrait être :
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
0
VBAdebutant11 Messages postés 7 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 14 décembre 2014
14 déc. 2014 à 11:30
Ca marche :) Merci beaucoup !
0