Controle d 'entrée

Z

ZORRO30

Guest
Bonjour à tous
sur une colonne où on rentre des références ( 0 à 2000 ref )
je voudrais indiquer à la personne qui rentre une nouvelle référence
qu' elle est présente dans la colonne si c'est le cas, pour éviter les doublons

Merci d'avance
 
E

Eric C

Guest
Bonjour le forum
Bonjour ZORRO30, bonjour Gérard

En VBA (court mais efficace). A adapter ==> ici colonne 1 (A)

'Debra Dalgleish, mpep
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 1 Then

If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) > 1 Then

MsgBox "Cette saisie existe déjà !!!!!"
Target.Value = ""
Target.Select
End If
End If
End Sub

@++ Eric C
 
Z

Zorro30

Guest
Merci Gérard mais pour la formule =NB.SI(C$7:C$11;C7)<2 je ne vois pas à quoi correspond C7 et j' ai mon résultat de formule qui est toujours à 1

Merci Eric mais il faudrait m'en dire un peu plus car je commence la prog sur Excel et la je bloque macro -> VBA -> ???

Merci de me répondre
 
G

Gérard DEZAMIS

Guest
Bonsoir Zorro30
Bonsoir Eric

La solution d'Éric est la plus simple la plus rapide la ..... mieux quoi.
Tu dois copier Ctrl C le texte ci-dessous



Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) > 1 Then
MsgBox "Cette saisie existe déjà !"
Target.Value = ""
Target.Select
End If
End If
End Sub
ensuite tu te places dans ta feuille de travail, tu fais Alt+F11 ce qui ouvre l'éditeur VB tu double clique sur Feuil1(Feuil1) à gauche dans la fenetre VBAProject et tu colles Ctrl+V ton texte.
Tu fais Fichier fermer et retrourner à Microsoft Excel
et ainsi à chaque fois que tu inscriras dans la colonne A une valeur qui existe déjà un Msgbox va apparaître pour te le signaler et effacer cette donnée interdite.
Comme te le dit Eric il faut adapter le code en fonction de ta demande Ici c'est Colonne 1 (Target.column=1) et CountIf(Range("A:A")
Penser à le modifier en cas de besoin.
@+
GD
 
Z

Zorro30

Guest
Ok Gérard c 'est bien ce que je faisais
je démarre ma colonne en A2 -> A2000
j' ai donc changé Target.column = 1 en =2
mais il ne se passe rien
lorsque je fais débug ou compil -> erreur manque if

salut
 
Z

Zorro30

Guest
Ok j'ai rectifié le tir concernant la colonne. Le problème venait en fait
du niveau de sécurité des macros qui était trop élevé.
Par contre maintenant lorsque je teste les entrées, j'ai bien la fenêtre qui apparait pour m'indiquer le doublon.Mais quand je valide OK,cela m'enlève bien la ligne doublon mais la fenêtre reste et pas moyen de la faire partir.Je dois quitter excel par arrêt d' application.

Merci d'avance
 
E

Eric C

Guest
Bonjour le forum
Re bonjour Gérard & Zorro30

Que nous chantes tu là ? Que vient faire ici le niveau de protection des macros ? L'évènement du bouton Ok est :
- "Disparition" de la MsgBox
- Remise à "blanc" de la cellule qui contenait le doublon
- La sélection de ladite cellule en attente d'une nouvelle entrée
Le mieux serait de mettre en ligne ton fichier pour regarder cela de plus près.
Bon ouikand à toutes & à tous
@ ++ Eric C
 
Z

Zorro30

Guest
Bonjour à tous
pour Eric : il ne se passait rien dans la feuille tant que je n'ais pas diminueé le niveau de sécurité dans le menu " outils " -> macro -> sécurité ( j' étais au max )
Je t' ai fais suivre le fichier car j' ai toujours le problème de l'enlèvement de la fenêtre OK et par moment le simple fait de pointer sur une cellule me déclenche la fenêtre d' avertissement

salut
 

Discussions similaires

Statistiques des forums

Discussions
312 977
Messages
2 094 109
Membres
105 939
dernier inscrit
mgd313492