Validation de données selon le type de cellule

xav28

XLDnaute Nouveau
Bonjour,

J'ai besoin d'aide pour un bout de macro qui doit vérifier si chaque cellule d'un ensemble de cellules est numérique, dans le cas contraire je lance une validation des données pour limiter la saisie à certains codes congés.

Code:
Range("C13", "AG" & dl).Select
    With Selection.Validation
        If Not IsNumber Then
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="RC,RTT,rc,rtt"
            .IgnoreBlank = True
            .InCellDropdown = False
            .InputTitle = ""
            .ErrorTitle = "Erreur de saisie"
            .InputMessage = ""
            .ErrorMessage = "La valeur doit-être RC ou RTT"
            .ShowInput = False
            .ShowError = True
        End If
    End With

Ce code actuel m'impose uniquement la saisie de RTT ou RC sans m'offrir la possibilité de saisir un chiffre.
Comment faire pour inclure la condition de tester si la cellule est numérique avant de valider les données?

Est-ce un problème de syntaxe ou faut-il aborder le problème différemment ?
 

Etienne2323

XLDnaute Impliqué
Re : Validation de données selon le type de cellule

Bonjour xav28,
la fonction pour vérifier si c'est un nombre est IsNumeric.

À adapter à ton code.

Code:
'Si ce n'est pas un nombre alors ...
If Not IsNumeric("Ta_plage.Value") Then

En espérant t'avoir aidé !

Étienne
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Validation de données selon le type de cellule

Bonjour,

Code:
Sub essai()
    For Each c In [C13:D19]
        If IsEmpty(c.Value) Or Not IsNumeric(c.Value) Then
          With c.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="rtt,c"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
          End With
        End If
    Next c
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • DVVBA6.xls
    31 KB · Affichages: 63

xav28

XLDnaute Nouveau
Re : Validation de données selon le type de cellule

Bonne année !!! :)

Merci pour vos propositions mais j'ai mal du me faire comprendre :eek:

Sur le range ("C13", "AG" & dl), je veux pouvoir saisir soit du numérique au format [h]:mm (comme 8:30 par exemple), soit un certain nombres de valeurs prédéfinies comme CA, RTT ou JF.

En l'état actuel de la macro, il m'est impossible de saisir les heures sur la plage donnée, je suis bloqué par la validation de données.

Comment éviter la validation des données ( CA, RTT ou JF) lorsque la cellule saisie est du numérique ?

Merci d'avance pour vos éclaircissements. ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 201
Membres
103 156
dernier inscrit
Ludo94130