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

Besoin MAJ macro évènementielle

16 réponses
Avatar
Dracul
Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c'est
exactement ce que je cherche pour éviter la saisie des doublons sauf que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier parce
que j'ai des doublons normal et d'autres dont je veux absolument empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne en
particulier a partir de cette macro, la xolonne qui m'intéresse commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de Marseille)


D'avance merci a ceux qui prendront le temps de me lire.

10 réponses

1 2
Avatar
ABED HADDOU
Bonjour

voila ce que je te propose sans macro vba

1 Sélectionnez la plage de la cellule P15 à la cellule P100 par exemple,
2 Dans la barre de menus cliquez sur Données puis sur la commande
Validation.
3 Cliquez sur l’onglet Options de la boîte de dialogue qui s’affiche.
4 Dans la zone de liste déroulante Autoriser cliquez sur Personnalisé.
5 Dans la zone de texte Formule tapez cette formule :
=NB.SI($P$15:$P$200;P15)=1


Abed_H






Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c'est
exactement ce que je cherche pour éviter la saisie des doublons sauf que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier parce
que j'ai des doublons normal et d'autres dont je veux absolument empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne en
particulier a partir de cette macro, la xolonne qui m'intéresse commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de Marseille)


D'avance merci a ceux qui prendront le temps de me lire.






Avatar
Youky
Avec ceci tu peux écrire normalement en colonne P
Ailleurs que col P tu peux pas écrire une valeur qui existe en P15:P65536
Youky
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Column = 16 Then Exit Sub
For Each cell In Range("P15:P" & [P65536].End(xlUp).Row)
If cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

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

Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c'est
exactement ce que je cherche pour éviter la saisie des doublons sauf que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier
parce

que j'ai des doublons normal et d'autres dont je veux absolument empêcher
la

saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne en
particulier a partir de cette macro, la xolonne qui m'intéresse commence
en

"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de
Marseille)



D'avance merci a ceux qui prendront le temps de me lire.





Avatar
JB
Bonsoir,

Demande validation avant d'accepter un doublon:

http://cjoint.com/?hzvDDvN5Ak

Cordialement JB


Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c' est
exactement ce que je cherche pour éviter la saisie des doublons sauf que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier pa rce
que j'ai des doublons normal et d'autres dont je veux absolument empêch er la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne en
particulier a partir de cette macro, la xolonne qui m'intéresse commenc e en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous pour rez
m'aider :

Voici une macro événementielle à coller dans le module de la feuil le.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de Ma rseille)


D'avance merci a ceux qui prendront le temps de me lire.


Avatar
Dracul
Abed la formule que tu me donnes ( =NB.SI($P$15:$P$200;P15)=1) fonctionne
trop bien, c'est la première que j'ai essaier. Effectivement elle repere les
doublons mais empeche toute saisie hors doublon, pourquoi je me l'explique
pas, bref elle ne permet pas non plus la saisie correct peut être un rapport
avec les cellules vides.

Youki j'attends une solution de ce type mais la il ne se passe plus rien
avec ton code, plus de blocage hors et avec doublon.

JB la solution fond de cellule qui vire a la couleur choisie me convenait et
me paraissait assez evidente mais je suis a la merci de redoutable
collaborateur qui apparement ne perçoivent pas les codes couleurs. C'est
suite a cette solution que je cherche quelque chose qui empeche carrement la
saisie même si la solution conditionnelle via le format me paraissait
adéquate.

Merci a vous trois pour ces réponses rapide mais vraiment ce que je cherche
c'est d'empecher la saisie en cas de doublon tout en permettant une saisie
"normale".
Avatar
ABED HADDOU
Bonne soirée Monsieur Boisgontier





Bonsoir,

Demande validation avant d'accepter un doublon:

http://cjoint.com/?hzvDDvN5Ak

Cordialement JB


Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c'est
exactement ce que je cherche pour éviter la saisie des doublons sauf que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier parce
que j'ai des doublons normal et d'autres dont je veux absolument empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne en
particulier a partir de cette macro, la xolonne qui m'intéresse commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de Marseille)


D'avance merci a ceux qui prendront le temps de me lire.






Avatar
Dracul
C'est possible que j'ai pas bien saisie comment integrer le code mais a
priori cela ne fonctionne pas. Merci quand même.

"ABED HADDOU" a écrit dans le message
de news:
Bonne soirée Monsieur Boisgontier





Bonsoir,

Demande validation avant d'accepter un doublon:

http://cjoint.com/?hzvDDvN5Ak

Cordialement JB


Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c'est
exactement ce que je cherche pour éviter la saisie des doublons sauf
que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier
parce
que j'ai des doublons normal et d'autres dont je veux absolument
empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne
en
particulier a partir de cette macro, la xolonne qui m'intéresse
commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous
pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de
Marseille)


D'avance merci a ceux qui prendront le temps de me lire.








Avatar
ABED HADDOU
Donc si j'ai bien compris essaie ceci

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
If Target.Value = "" Then Exit Sub
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Abed_H





C'est possible que j'ai pas bien saisie comment integrer le code mais a
priori cela ne fonctionne pas. Merci quand même.

"ABED HADDOU" a écrit dans le message
de news:
Bonne soirée Monsieur Boisgontier





Bonsoir,

Demande validation avant d'accepter un doublon:

http://cjoint.com/?hzvDDvN5Ak

Cordialement JB


Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même, c'est
exactement ce que je cherche pour éviter la saisie des doublons sauf
que
dans mon cas il me faudrait pouvoir choisir une colonne en particulier
parce
que j'ai des doublons normal et d'autres dont je veux absolument
empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne
en
particulier a partir de cette macro, la xolonne qui m'intéresse
commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous
pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la feuille.
(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de
Marseille)


D'avance merci a ceux qui prendront le temps de me lire.













Avatar
Youky
Re
Pour mettre le code au bon endroit, fait un click de souris avec le bouton
droit sur l'onglet de ta page
et va en Visualiser le code, dans la fenetre blanche
et colle toute cette macro.
Tu auras le choix si tu veux écrire le doublon
Youky

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
Target.Select
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
For Each c In Range("P15:P" & [P65536].End(xlUp).Row)
If c.Value = Target.Value Then
rep = MsgBox("Doublon....Voulez-Vous forcer l'écriture....", _
vbYesNo + vbExclamation, "Attention Doublon")
If rep = vbNo Then
Target.Value = "": Exit Sub
Else
Target.Offset(1, 0).Select: Exit Sub
End If
End If
Next c
End If
Next cell
End Sub

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

C'est possible que j'ai pas bien saisie comment integrer le code mais a
priori cela ne fonctionne pas. Merci quand même.

"ABED HADDOU" a écrit dans le
message

de news:
Bonne soirée Monsieur Boisgontier





Bonsoir,

Demande validation avant d'accepter un doublon:

http://cjoint.com/?hzvDDvN5Ak

Cordialement JB


Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même,
c'est




exactement ce que je cherche pour éviter la saisie des doublons sauf
que
dans mon cas il me faudrait pouvoir choisir une colonne en
particulier




parce
que j'ai des doublons normal et d'autres dont je veux absolument
empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une colonne
en
particulier a partir de cette macro, la xolonne qui m'intéresse
commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous
pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la
feuille.




(click droit sur l'onglet et visualiser le code ) qui fera ce que tu
demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de
Marseille)


D'avance merci a ceux qui prendront le temps de me lire.












Avatar
Youky
Oups y a une boucle en trop dans la version précédente
rectif....... Youky
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
Target.Select
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
If cell.Value = Target.Value Then
rep = MsgBox("Doublon....Voulez-Vous forcer l'écriture....", _
vbYesNo + vbExclamation, "Attention Doublon")
If rep = vbNo Then
Target.Value = "": Exit Sub
Else
Target.Offset(1, 0).Select: Exit Sub
End If
End If
End If
Next cell
End Sub

"Youky" a écrit dans le message de news:
44c77e2b$0$879$
Re
Pour mettre le code au bon endroit, fait un click de souris avec le bouton
droit sur l'onglet de ta page
et va en Visualiser le code, dans la fenetre blanche
et colle toute cette macro.
Tu auras le choix si tu veux écrire le doublon
Youky

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
Target.Select
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
For Each c In Range("P15:P" & [P65536].End(xlUp).Row)
If c.Value = Target.Value Then
rep = MsgBox("Doublon....Voulez-Vous forcer l'écriture....", _
vbYesNo + vbExclamation, "Attention Doublon")
If rep = vbNo Then
Target.Value = "": Exit Sub
Else
Target.Offset(1, 0).Select: Exit Sub
End If
End If
Next c
End If
Next cell
End Sub

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

C'est possible que j'ai pas bien saisie comment integrer le code mais a
priori cela ne fonctionne pas. Merci quand même.

"ABED HADDOU" a écrit dans le
message

de news:
Bonne soirée Monsieur Boisgontier





Bonsoir,

Demande validation avant d'accepter un doublon:

http://cjoint.com/?hzvDDvN5Ak

Cordialement JB


Bonjours a tous. Voilà mon souci j'ai trouvé une macro ici même,
c'est




exactement ce que je cherche pour éviter la saisie des doublons
sauf





que
dans mon cas il me faudrait pouvoir choisir une colonne en
particulier




parce
que j'ai des doublons normal et d'autres dont je veux absolument
empêcher la
saisie.
Etant un néhophite absolu je ne sais comment sélectionner une
colonne





en
particulier a partir de cette macro, la xolonne qui m'intéresse
commence en
"P15" jusqu'à l''infini.
Je vous remets ci-dessous le code d'origine en espérant que vous
pourrez
m'aider :

Voici une macro événementielle à coller dans le module de la
feuille.




(click droit sur l'onglet et visualiser le code ) qui fera ce que
tu





demandes.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Value = "" Then Exit Sub

For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value
Then





MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
Exit For
End If
Next cell
End Sub

Cette macro t'interdira d'inscrire
deux fois le même numéro dans la feuille
et l'effacera à chaque fois.

Frédéric Sigonneau sur un scénario de Sitting hoax Laurent D (de
Marseille)


D'avance merci a ceux qui prendront le temps de me lire.
















Avatar
Dracul
Bon merci a vous deux pour tous mais c'est tjrs pas ça.
La première d'Abed il se passe rien.
La deuxième de youki on est tres pres mais c'est pas ce que je veux. la
telle quel la macro repère les doublons d'une colonne a l'autre. Par exemple
le message (tres bien) qui propose de forcer l'ecriture s'enclanche si il y
a un doublon d'une colonne a l'autre, de la colonne B a la P. Ce que je
cherche c'est d'empecher la saisie sur une colonne unique la P donc de
reperer les doublons de P uniquement. Dans la saisie normale je peux tout a
fait avoir un doublon sur deux cellules qui corresponde a un N° de clientpar
exemple sur la colonne B, par contre ce même client ne peut avoir deux n°
identique dans la colonne P. Bref c'est tres pres mais c'est pas encore ça.
Merci encore a vous deux pour tout le mal que vous vous donnez mais pour moi
sachez que le jeu en vaut la chandelle ce serait un vrai plus.
1 2