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.

4 réponses

JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
849
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
24381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2022
7 072
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
849
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
24381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2022
7 072
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