IsNumeric

Bonjour à tous

J’ai besoin à nouveau de votre aide.

Dans une feuille se saisie je souhaite vérifier que l’on utilise que des chiffres et le moins – associé à un chiffre s’il est seul non autorisé.

Le contrôle de la zone de saisie est F5 à F18, J5 à J13, N5 à N10 et R5 à R10

En parcourant le net j’ai trouvé des sujets, mais je n’ai pas réussi à étendre la zone avec un code restreint.

If IsNumeric(Range("F5")) = False Then
MsgBox "LES LETTTRES NE SONT PAS AUTORISEES"
ElseIf IsNumeric(Range("F6")) = False Then
MsgBox "LES LETTTRES NE SONT PAS AUTORISEES"
Exit Sub
Else
End If
End Sub

Merci pour votre aide, bonne journée à tous

Bonjour,

Normalement, en utlisant le code suivant, cela devrait passer

If IsNumeric(Range("F5:F18,J5:J13,N5:N10,R5:R10")) = False Then
MsgBox "LES LETTTRES NE SONT PAS AUTORISEES"
End If

A tester,

Bonne journée,

Sha'

Bonjour Sharney, merci pour ton poste

Cette solution je l'ai testé aussi et ne marche pas, que tu saisisses chiffres , lettres ou rien la macro déclenche le message MsgBox.

Peut être une autre solution ?

Heu... Tous les champs sont bien remplis ? Car si une seule cellule est considérée comme n'étant pas numérique, il est normal que la msgbox s'affiche.

Sinon, plutôt qu'en faisant du Elseif, il est mieux de faire des If End If If... pour qu'un message apparaisse à chaque fois. Et suffit de sélectionner la cellule en question pour que visuellement on voit ce qui ne va pas

Bonjour,

Et pourquoi ne pas utiliser la Validation en sélectionnant autoriser nombre décimal ?

eric

Sharney, un point que je n'ai dis dans mon premier poste il n'est pas obligatoire dans la feuille de saisie d'écrire dans chaque cellule.

Pourquoi préférer IF End If à répétition plutôt que ElseIf ? avec le ElseIf ça fonctionne très bien.

Ma question était comment réduire mon code.

Eric je veux bien un exemple, me concernant il n'y a pas longtemps que j'utilise le VBA.

Merci pour vos postes

salut

essai ça

Dim c
For Each c In Range("F5:F18,J5:J13,N5:N10,R5:R10")
If IsNumeric(c.Value) = False Then
    MsgBox "LES LETTTRES NE SONT PAS AUTORISEES A " & " " & c.Address
    End If
    Next c

salut

ou essai ça

Dim c, notNumeric
For Each c In Range("F5:F18,J5:J13,N5:N10,R5:R10")
If Not (IsNumeric(c.Value)) Then
notNumeric = notNumeric + " " + c.Address
    End If
    Next c
    MsgBox "LES LETTTRES NE SONT PAS AUTORISEES A " & " " & notNumeric

AMIR la première proposition est la bonne. Merci d'avoir pris le temps de participer à ce poste.

La validation des données est une fonctionnalité d'excel, pas besoin de vba.

Voir exemple joint.

eric

79classeur2.xlsx (111.98 Ko)

Merci pour ton exemple eriiic, je prends note. Bonne soirée.

Rechercher des sujets similaires à "isnumeric"