VBA - Signaler si des données ont déjà été saisies

Bonjour,

J'ai besoin d'aide car j'essaie de développer une application en VBA pour gèrer mon stock. (Je suis brocanteur ) Je voudrais donc faire une base de données que je puisse compléter à ma guise avec des UserForm. Cependant, j'aimerais que l'application génère un message d'erreur si l'article est déjà présent dans la base de données.

Les catégories du tableau sont : Code Article / Description / Prix d'Achat / Vendeur / Téléphone Vendeur

J'ai une idée assez précise de ce que je veux, mais je n'ai pas les compétences en écriture VBA pour le faire : Je voudrais que si j'essaie d'ajouter un article qui est déjà présent, lorsque je clic sur le bouton Valider de mon UserForm, une boite de dialogue s'ouvre en disant quelque chose du genre "Erreur : Ce code article est déjà dans la base de données" (Ayant des vendeurs réguliers et des objets similaires, seul le code article doit être différent.)

Je sais qu'il est préférable d'ajouter un fichier mais je préférerais voir simplement la fonction attendue, je me chargerais de l'adapter de mon coté, en espérant que cela ne gène pas.

EDIT : Je viens d'apprendre l'existence de la fonction Validation de données. Cependant je n'arrive pas à adapter la formule présente dans la solution fournie ici https://forum.excel-pratique.com/excel/creer-une-alerte-en-cas-de-donnees-deja-saisies-t32793.html

Mon tableau à 5 colonnes de B à F et commence de la ligne 4 à la ligne 500. Merci d'avance

Bonne journée !

Bonjour Hakim45590,

Une solution possible serait de rechercher si le Code Article existe déjà :

Si le Code Article se trouve par exemple dans TextBox1 alors

Code_Article= TextBox1.Value

Set celluletrouvee = Sheets("Stocks").Range("A1:A900000").Find(Code_Article, LookAt:=xlWhole)

If celluletrouvee <> "" then

msgbox ("Ce Code Article existe déjà !")

end if

.... reste du code

code VBA à adapter.

Bonsoir, et merci. Cela fonctionne parfaitement !

EDIT : Je viens de m'apercevoir que, si le message s'affiche lorsque je rentre un code doublon, il y a un bug, ma fenêtre développeur s'ouvre et l'erreur suivante s'affiche :

"Variable objet ou variable de bloc with non définie " en me surlignant le "If celluletrouvee <> "" Then"

Une solution ?

Merci !

Petit up

Bonjour

Private Sub ComboBox1_Change()
  If Me.ComboBox1 = "" Then Exit Sub
  If Application.CountIf(Columns("A"), Me.ComboBox1) Then
    MsgBox "Ce numéro existe déjà"
    Me.ComboBox1 = ""
    Me.ComboBox1.SetFocus
  End If
End Sub

https://www.excel-pratique.com/~files/doc2/resolu_4.jpg

Bonjour et merci, cependant je ne comprends pas votre code, car à aucun moment je ne me sert d'une ComboBox, pourriez vous m'éclairer ?

Merci encore !

Hakim45590 a écrit :

Bonjour,

J'ai besoin d'aide car j'essaie de développer une application en VBA pour gèrer mon stock. (Je suis brocanteur ) Je voudrais donc faire une base de données que je puisse compléter à ma guise avec des UserForm. Cependant, j'aimerais que l'application génère un message d'erreur si l'article est déjà présent dans la base de données.

Plutôt que du VBA, tu peux utiliser une MFC et mettre en rouge les références en doublon.


18doublons.xlsx (8.96 Ko)

Bonjour, tout d'abord merci pour votre réponse, cependant, si j'ai bien compris, je crois que la MFC agit sur les données déjà rentrées dans la base de données. Je cherche plutôt un moyen pour empêcher de rentrer un doublon dans la base de données.7

Merci !

Up

Rechercher des sujets similaires à "vba signaler donnees ont deja ete saisies"