Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

eviter un doublon dans une colone

8 réponses
Avatar
Bonjour,
j'ai penser à faire quelque chose qui peut m'eviter de saisir par erreure
une 2eme fois le meme nombre dans une liste de la meme colone, mais j'ai
rien trouver (je ne parle pas des regles de validation de donnée)
Merci pour l'aide.

8 réponses

Avatar
AV
Pour empécher la saisie de doublon dans la colonne A
Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Valeur déjà présente en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End If
End Sub

AV
Avatar
azza
Merci AV ca marche
je vais essayer decomprendre tout ça!!.

"AV" a écrit dans le message de news:

Pour empécher la saisie de doublon dans la colonne A
Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Valeur déjà présente en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End If
End Sub

AV




Avatar
michdenis
Bonjour Alain,

A ) Pour être un peu pointilleux ... suppose que dans la colonne A:A , il y a une formule aussi simple que : µ , Es-tu
certain que ta procédure va réussir à identifier le doublon si l'usager entre une valeur identique à la valeur contenue en B5
dans une autre cellule de la colonne A:A ?

B ) Si le paramètre de la fonction "Find" LookAt:=XlWhole , je suppose que la procédure pourrait toujours trouvé un doublon
qui est en fait seulement une partie du contenue de la cellule correspondant au paramètre LookAt:=XlPart ... Non ?

C'était seulement quelques chinoiseries du lundi matin !

;-))


Bonne semaine,


Salutations!


"AV" a écrit dans le message de news:
Pour empécher la saisie de doublon dans la colonne A
Dans le module de la feuille :

Private Sub Worksheet_Change(ByVal zz As Excel.Range)
If Selection.Count > 1 Then Exit Sub
If Intersect(zz, [A:A]) Is Nothing Or zz = "" Then Exit Sub
Set C = [A:A].Find(zz(1), zz(1))
If C.Address <> zz(1).Address Then
MsgBox "Valeur déjà présente en " _
& C.Address, vbCritical, "Doublon !"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
SendKeys "{F2}+{HOME}"
End If
End Sub

AV
Avatar
AV
A ) Pour être un peu pointilleux ... suppose que dans la colonne A:A , il y a
une formule aussi simple que : µ , Es-tu

certain que ta procédure va réussir à identifier le doublon si l'usager entre
une valeur identique à la valeur contenue en B5

dans une autre cellule de la colonne A:A ?


Je suis "moyennenment" d'accord car lorsqu'il s'agit de "peut m'eviter de saisir
par erreure une 2eme fois le meme nombre", j'exclue d'autorité toute saisie
autre qu'une constante !

B ) Si le paramètre de la fonction "Find" LookAt:=XlWhole , je suppose que la
procédure pourrait toujours trouvé un doublon

qui est en fait seulement une partie du contenue de la cellule correspondant
au paramètre LookAt:=XlPart ... Non ?


Là, je suis pleinement d'accord !
Donc l'ajouter ou mieux (?) laisser tomber le "find" et utiliser match

C'était seulement quelques chinoiseries du lundi matin !
Mais non, mais non, je sais bien que "ton moteur de recherche" à une faiblesse

(justifiée) pour les 'find' !
;-)
AV

Avatar
michdenis
Bonjour AV,

Je suis "moyennenment" d'accord car lorsqu'il s'agit de "peut m'eviter de saisir
par erreure une 2eme fois le meme nombre", j'exclue d'autorité toute saisie
autre qu'une constante !


Bien qu'il saisisse ses données à la mimine... rien n'indique qu'il n'y a pas au moins une formule en colonne A:A susceptible
de venir jouer les trouble-fêtes . M'enfin !

"ton moteur de recherche" à une faiblesse(justifiée) pour les 'find' !


C'était la dernière fois ... promis !

;-))


Salutations!

Avatar
AV
C'était la dernière fois ... promis !


Ah non, surtout pas, car ça me permet de mettre à jour mes archives !
;-)
AV

Avatar
michdenis
re Bonjour AV,

Donc l'ajouter ou mieux (?) laisser tomber le "find" et utiliser match


Le hic avec Match, c'est si l'usager modifier une donnée dans une cellule précédente la fin de la colonne, si le doublon se
trouve après la cellule corrigée, la boîte de message fera affichée l'adresse de la cellule qui vient d'être corrigée et non
pas la cellule où l'on retrouve le doublon ! M'enfin ...!

Dans ce cas, il me semble que la méthode "Find" soit la meilleure ... si elle a tous ses paramètres !

;-)

Salutations!




"AV" a écrit dans le message de news:e6%
A ) Pour être un peu pointilleux ... suppose que dans la colonne A:A , il y a
une formule aussi simple que : µ , Es-tu

certain que ta procédure va réussir à identifier le doublon si l'usager entre
une valeur identique à la valeur contenue en B5

dans une autre cellule de la colonne A:A ?


Je suis "moyennenment" d'accord car lorsqu'il s'agit de "peut m'eviter de saisir
par erreure une 2eme fois le meme nombre", j'exclue d'autorité toute saisie
autre qu'une constante !

B ) Si le paramètre de la fonction "Find" LookAt:=XlWhole , je suppose que la
procédure pourrait toujours trouvé un doublon

qui est en fait seulement une partie du contenue de la cellule correspondant
au paramètre LookAt:=XlPart ... Non ?


Là, je suis pleinement d'accord !
Donc l'ajouter ou mieux (?) laisser tomber le "find" et utiliser match

C'était seulement quelques chinoiseries du lundi matin !
Mais non, mais non, je sais bien que "ton moteur de recherche" à une faiblesse

(justifiée) pour les 'find' !
;-)
AV

Avatar
AV
Le hic avec Match,


Boff....avec qques petites retouches dans le code

AV