Valeur non présente dans colonne lors de la saisie

Bonjour,

Comment faire pour ouvrir un message d'erreur si lors de la saisie d'un texte (ou d'un nombre), celui-ci n'est pas présent dans une colonne sur une autre feuille ??

Pour résumer :

  • J'ai une colonne sur une feuille "Base" avec des valeurs
  • Lors de la saisie dans une colonne d'une autre feuille, je voudrais qu'il y ait une vérification automatique de la présente de la valeur saisie
  • Si elle est bien dans ma colonne de la feuille "Base" --> RAS
  • Si elle n'y est pas, j'ai une fenêtre d'alerte qui s'ouvre

Merci d'avance

Bonjour,

Est-ce qu'il sera quand même possible de saisir une valeur qui n'est pas dans la base ou le but est-il de forcer une valeur existante ?

Dans ce cas tu peux créer une liste de validation de données avec ta base comme référence.

Voir exemple si le chiffre saisie existe dans la base alors ok sinon message et impossible de saisir autre chose.

Bonjour,

Désolé pour la réponse tardive et merci déjà pour t'intéresser à mon souci

Il ne doit pas être possible qu'il y ait une valeur en dehors de la base. J'avais bien pensé à la liste de validation que j'utilise sur d'autres tableaux mais ça ne fonctionne pas si on fait un copier/coller de données d'un autre classeur dans ce nouveau tableau.

Là le but est vraiment qu'il y ait une vérification au cours de la saisie, si erreur ouverture d'une boite de dialogue type msgbox.

Pour être plus précis, je souhaiterai qu'il soit possible de vérifier que les colonnes B, E, H, K etc (une colonne sur 3) ne contiennent que les données présentes dans une liste sur un autre onglet (nommé "LISTE" par exemple) ou qu'il n'y ait rien.

Mais il faudrait que ça fonctionne avec un copier/coller issu d'un autre classeur.

Merci d'avance car là je sèche

NB : Le petit "plus" serait que si une valeur de ces colonnes n'est pas présente dans la liste, elle(s) soi(en)t mise(s) en surbrillance ou d'une couleur spécifique pour qu'une correction soit apportée

Bonjour Paulox,

Salut Xmenpl,

Une simple MFC sur les colonnes ne suffirait-elle pas ?

11test-mfc.xlsx (11.17 Ko)

Cordialement,

Bonjour,

Effectivement ça peut être une solution. J'ai malgré tout approfondi au niveau de la macro et j'en suis là :

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column <> 2 Or Target.Count > 1 Then Exit Sub
    If Target = "" Then Exit Sub
        Dim Dli As Long
        Dli = Cells(Rows.Count, 1).End(xlUp).Row
    If Application.CountIf(ActiveWorkbook.Sheets("Liste").Range("A1:A999" & Dli), Target) = 0 Then
         MsgBox Target & " n'est pas existant", vbInformation, "ATTENTION"
         Target = ""
    End If

End Sub

J'ai donc mes données sur une feuille "Liste" en colonne A, quand je fais la saisie manuellement ça fonctionne au poil sur ma feuille destination mais ça ne fonctionne pas avec un copier/coller. Je vais peut-être faire un mix de ta proposition et de ce que j'ai fait, sauf si quelqu'un a une solution pour prendre en compte le copier/coller dans la macro ?? Là je ne vois pas du tout.

Merci en tout cas pour cette approche à laquelle je n'avais pas pensé.

Re,

Un essai par vba...

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Range("B:B,E:E,H:H,K:K")) Is Nothing Then
    If Target.Count > 1 Or Target = "" Then Exit Sub
        Dim Dli As Long
        Dli = Cells(Rows.Count, 1).End(xlUp).Row
    If Application.CountIf(ActiveWorkbook.Sheets("Liste").Range("A1:A999" & Dli), Target) = 0 Then
         MsgBox Target & " n'est pas existant", vbInformation, "ATTENTION"
         Target = ""
    End If
   End If
End Sub

Le copier/coller semble fonctionner, à condition de ne copier qu'une valeur à la fois...

Cordialement,

Merci pour cette approche, je vais me débrouiller avec tout ça

Rechercher des sujets similaires à "valeur presente colonne lors saisie"