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.

6 réponses

1 2
Avatar
Youky
Ben fallait le dire de rechercher les doublons uniquement en P
ben voilà
Youky (avec un y au lieu de i ....à la fin(merçi)
Toutes facon tout le monde mets un i sauf moi

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
If cell.Value = Target.Value Then
Target.Select
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

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

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.




Avatar
Dracul
merci youky c'est exactement ca a un detail pres, tu vas dire que je suis
chiant mais est il possible de cumuler une couleur au cas ou quelqu'un
forcerait le passage en repondant oui ...
En fait maintenant que tu me donnes un outil génial j'en veux un peu plus
que prevu mais grand merci a toi et aux autres qui ont répondu.


"Youky" a écrit dans le message de news:
44c7c5a0$0$855$
Ben fallait le dire de rechercher les doublons uniquement en P
ben voilà
Youky (avec un y au lieu de i ....à la fin(merçi)
Toutes facon tout le monde mets un i sauf moi

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
If cell.Value = Target.Value Then
Target.Select
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

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

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.








Avatar
Youky
Petite rectif sans grande importance
les doublons prenais à partir de P1
donc voici de nouveau, vu la chaleur autant être au pc avec la clim que
dehors

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
For Each cell In Range("P15:P" & [P65536].End(xlUp).Row)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
If cell.Value = Target.Value Then
Target.Select
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
Avatar
Youky
doublon en rouge et se remets en noir si on reécrit un nondoublon
fait des essais avec l'enregistreur de macros pour voir les couleur ou si tu
veux autres choses

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
Target.Font.ColorIndex = 1
For Each cell In Range("P15:P" & [P65536].End(xlUp).Row)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
If cell.Value = Target.Value Then
Target.Select
rep = MsgBox("Doublon....Voulez-Vous forcer l'écriture....", _
vbYesNo + vbExclamation, "Attention Doublon")
If rep = vbNo Then
Target.Value = "": Exit Sub
Else
Target.Font.ColorIndex = 3
Target.Offset(1, 0).Select: Exit Sub
End If
End If
End If
Next cell
End Sub
"Dracul" a écrit dans le message de news:
OI5BQ$
merci youky c'est exactement ca a un detail pres, tu vas dire que je suis
chiant mais est il possible de cumuler une couleur au cas ou quelqu'un
forcerait le passage en repondant oui ...
En fait maintenant que tu me donnes un outil génial j'en veux un peu plus
que prevu mais grand merci a toi et aux autres qui ont répondu.


"Youky" a écrit dans le message de news:
44c7c5a0$0$855$
Ben fallait le dire de rechercher les doublons uniquement en P
ben voilà
Youky (avec un y au lieu de i ....à la fin(merçi)
Toutes facon tout le monde mets un i sauf moi

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Target, Range("P15:P65536")) Is Nothing Then Exit Sub
For Each cell In Intersect(UsedRange, Cells)
If cell.Address <> Target.Address And cell.Value = Target.Value Then
If cell.Value = Target.Value Then
Target.Select
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

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

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




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.












Avatar
Dracul
Excellent Youky!!!
Je teste tout ça demain et te tient au courant mais deja mille merci pour le
temps que tu as passé la dessus. L'ignare que je suis niveau programmation
te salut bien bas. Quand on veut apprendre un peu quelques rudiments de code
on commence par quel bout ? Cet experience me motive a pousser un plus loin
sur le sujet mais je ne sais par quel bout attaquer.
@+
Avatar
Dracul
Yep c'est nickel...Tout a fait ce que je voulais. Encore meci a vous deux
abed et youky....
1 2