Obliger de saisi une valeur numérique

Bonjour,

je voudrais savoir comment obliger les utilisateurs de saisir une valeur numérique dans des plages spécifique (par ex: A1:A20, C10:C30), et si un utilisateur a saisi une valeur non numérique un userform s'affiche: "Merci de saisir une valeur numérique !!! ".

quelqu'un peut me donner un code VBA pour effectuer cette opération!!!

A+ Galaxy201000

Bonjour

Code à placer dans le module de la feuille : Clic droit sur l'onglet de la feuille ---> Visualiser le code

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A1:A20"), Target) Is Nothing And Target.Count = 1 Then
    If Not IsNumeric(Target) Then
      MsgBox "Merci de saisir une valeur numérique !!! "
      With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
      End With
    End If
  End If
End Sub

Bonjour,

j'ai appliquer votre code mais sa ne marche pas un message d'erreur s'affiche:

Ci-dessous votre code qui à été modifier pour l'applique a mes feuilles

NB: je voudrais appliquer le code sur 10 feuilles de mon classeur.

Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect(Range("O14:O24", "S14:S24", "O32:O42", "S32:S42", "O49:O59", "S49:S59", "O67:O77", "S67:S77", "O84:O94", "S84:S94", "O102:O112", "S102:S112"), Target) Is Nothing And Target.Count = 1 Then
        If Not IsNumeric(Target) Then
          MsgBox "Merci de saisir une valeur numérique !!!", vbOKOnly, "Information"
          With Application
            .EnableEvents = False
            .Undo
            .EnableEvents = True
          End With
        End If
      End If
    End Sub

Merci.

A+ Galaxy201000.


Re-Bonjour,

Ooops, j'ai oublier le message d'erreur qui s'affiche:

Erreur de compilation:

Nombre d'arguments incorrect ou affectation de propriété incorrecte

Merci.

Bonjour

galaxy201000 a écrit :

NB: je voudrais appliquer le code sur 10 feuilles de mon classeur.

Tu l'aurais dis plus tôt, cela m'aurait évité cette macro

Combien de feuilles ton classeur ?

Pour 1 feuille

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("O14:O24,S14:S24,O32:O42,S32:S42,O49:O59,S49:S59,O67:O77,S67:S77,O84:O94,S84:S94,O102:O112,S102:S112"), Target) Is Nothing And Target.Count = 1 Then
    If Not IsNumeric(Target) Then
      MsgBox "Merci de saisir une valeur numérique !!!", vbOKOnly, "Information"
      With Application
        .EnableEvents = False
        .Undo
        .EnableEvents = True
      End With
    End If
  End If
End Sub

Bonjour,

Merci infiniment, ça marche très bien.

un autre chose peut-tu m'explique le code! si possible

A + Galaxy201000

Bonjour

Pas grand chose à expliquer

Private Sub Worksheet_Change(ByVal Target As Range)
  ' Zones surveillées
  If Not Intersect(Range("O14:O24,S14:S24,O32:O42,S32:S42,O49:O59,S49:S59,O67:O77,S67:S77,O84:O94,S84:S94,O102:O112,S102:S112"), Target) Is Nothing And Target.Count = 1 Then
    ' Teste si la siaise est numérique
    If Not IsNumeric(Target) Then
       ' Non alors message
      MsgBox "Merci de saisir une valeur numérique !!!", vbOKOnly, "Information"
      With Application
        .EnableEvents = False   ' Bloque les évènements
        .Undo                   ' Un pas en arrière
        .EnableEvents = True    ' Rétablit les évènements
      End With
    End If
  End If
End Sub
Banzai64 a écrit :

Combien de feuilles ton classeur ?

Tu n'as pas répondu

Le code que je t'ai donné n'est pas intéressant s'il faut le copier 10 fois

Bonjour,

c'est formidable, ça marche très bien votre code, merci

Je peut demander une autre chose:

je voudrais créer un userform concernant un calendrier (Format JJ/MM/YY) pour insérer la date dans des cellules spécifiques

les cellules se sont:

D6

B50 (la cellule B50 été fusionner avec la cellule B51)

G50 (la cellule G50 été fusionner avec la cellule G51)

B52 (la cellule B52 été fusionner avec la cellule B53)

G52 (la cellule G52 été fusionner avec la cellule G53)

C60. et ainsi dans G7, H7

Merci pour votre support.

A+ Galaxy201000

Bonjour

Je t'invite à clore ce sujet et d'en ouvrir un autre, car ce n'est plus le même problème

J'espère que si quelqu'un te pose une question (2 fois) tu y répondes

Bonne journée

Bonjour,

Bonjour Banzaï

Pourquoi une macro, alors qu'Excel le propose nativement, par Données/Validation (Autoriser nombre entier ou décimal, supérieure ou égale, ou comprise entre, .......)

du moins, si j'ai bien compris.

Bonne journée

Bonjour

Oui je sais , mais habitude, je pense souvent à macro en premier

Rechercher des sujets similaires à "obliger saisi valeur numerique"