J'ai une macro qui recherche les valeurs déjà inscrite et si c'est le cas me
previent que le numéro entré existe déjà.
Mon problème c'est que la recherche doit se faire sur plusieurs colonnes A
et F
seulement cela ne fonctionne que pour la colonne A mais dès que je rentre un
numéro dans la colonne F il est pris alors qu'il existe déjà.
Voici le code de ma macro:
If Selection.Count > 1 Then Exit Sub
' pour vérifier si la saisie n'existe pas déjà dans les lignes précédentes
If Application.WorksheetFunction. _
CountIf(Range(Cells(2, 1), _
Cells(Target.Row, 1)), Target.Value) > 1 Then
' pour vérifier si la saisie n'existe pas déjà dans la colonne
If Application.WorksheetFunction. _
CountIf(Range("A:A"), Target.Value) > 1 Then
If Application.WorksheetFunction.CountIf(Range("F:F"), Target.Value) > 1
Then
MsgBox "Ce numéro à déjà été attribué!", vbInformation, "N° Invalide"
Target.Value = ""
Target.Select
End If
End If
End If
End Sub
Meric de votre aide précieuse.
--
Le partage du savoir contribue à l'amélioration de la condition humaine!
Merci à tous
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Je ne pense pas qu'il soit nécessaire de chercher dans les lignes qui précédent.....
Private Sub Worksheet_Change(ByVal zz As Range) If Selection.Count > 1 Then Exit Sub x1 = Application.CountIf([A:A], zz) x2 = Application.CountIf([F:F], zz) If x1 + x2 > 1 Then MsgBox "blabla" Application.EnableEvents = False zz = "": zz.Select Application.EnableEvents = True End If End Sub
AV
Je ne pense pas qu'il soit nécessaire de chercher dans les lignes qui
précédent.....
Private Sub Worksheet_Change(ByVal zz As Range)
If Selection.Count > 1 Then Exit Sub
x1 = Application.CountIf([A:A], zz)
x2 = Application.CountIf([F:F], zz)
If x1 + x2 > 1 Then
MsgBox "blabla"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
End If
End Sub
Je ne pense pas qu'il soit nécessaire de chercher dans les lignes qui précédent.....
Private Sub Worksheet_Change(ByVal zz As Range) If Selection.Count > 1 Then Exit Sub x1 = Application.CountIf([A:A], zz) x2 = Application.CountIf([F:F], zz) If x1 + x2 > 1 Then MsgBox "blabla" Application.EnableEvents = False zz = "": zz.Select Application.EnableEvents = True End If End Sub
AV
STEN83
Bonjour, Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se bloque obligé de faire fin de tâche. Peut être a cause de Byval zz As Range ? Peut tu m'en dire plus merci ps(je travaille avec office 2003)
Je ne pense pas qu'il soit nécessaire de chercher dans les lignes qui précédent.....
Private Sub Worksheet_Change(ByVal zz As Range) If Selection.Count > 1 Then Exit Sub x1 = Application.CountIf([A:A], zz) x2 = Application.CountIf([F:F], zz) If x1 + x2 > 1 Then MsgBox "blabla" Application.EnableEvents = False zz = "": zz.Select Application.EnableEvents = True End If End Sub
AV
Bonjour,
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se
bloque obligé de faire fin de tâche. Peut être a cause de Byval zz As Range ?
Peut tu m'en dire plus merci
ps(je travaille avec office 2003)
Je ne pense pas qu'il soit nécessaire de chercher dans les lignes qui
précédent.....
Private Sub Worksheet_Change(ByVal zz As Range)
If Selection.Count > 1 Then Exit Sub
x1 = Application.CountIf([A:A], zz)
x2 = Application.CountIf([F:F], zz)
If x1 + x2 > 1 Then
MsgBox "blabla"
Application.EnableEvents = False
zz = "": zz.Select
Application.EnableEvents = True
End If
End Sub
Bonjour, Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se bloque obligé de faire fin de tâche. Peut être a cause de Byval zz As Range ? Peut tu m'en dire plus merci ps(je travaille avec office 2003)
Je ne pense pas qu'il soit nécessaire de chercher dans les lignes qui précédent.....
Private Sub Worksheet_Change(ByVal zz As Range) If Selection.Count > 1 Then Exit Sub x1 = Application.CountIf([A:A], zz) x2 = Application.CountIf([F:F], zz) If x1 + x2 > 1 Then MsgBox "blabla" Application.EnableEvents = False zz = "": zz.Select Application.EnableEvents = True End If End Sub
AV
AV
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se bloque obligé de faire fin de tâche. Il n'y a aucune raison pour que ce code ne fonctionne pas quelle que soit la
version Tu l'as testé sur une feuille vierge pour éliminer quelques éventuels épiphénomènes ?
Peut être a cause de Byval zz As Range ?
Ah ça non car c'est breveté !
AV
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se
bloque obligé de faire fin de tâche.
Il n'y a aucune raison pour que ce code ne fonctionne pas quelle que soit la
version
Tu l'as testé sur une feuille vierge pour éliminer quelques éventuels
épiphénomènes ?
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se bloque obligé de faire fin de tâche. Il n'y a aucune raison pour que ce code ne fonctionne pas quelle que soit la
version Tu l'as testé sur une feuille vierge pour éliminer quelques éventuels épiphénomènes ?
Peut être a cause de Byval zz As Range ?
Ah ça non car c'est breveté !
AV
STEN83
Bonjour AV Exact tu as parfaitement raison cela fonctionne très bien sur une page vierge, mais alors que puis-je faire pour que cela fonctionne dans ma feuille je n'ai vraiment pas envie de me retapé tout! As tu la solution? Merci
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se bloque obligé de faire fin de tâche. Il n'y a aucune raison pour que ce code ne fonctionne pas quelle que soit la
version Tu l'as testé sur une feuille vierge pour éliminer quelques éventuels épiphénomènes ?
Peut être a cause de Byval zz As Range ?
Ah ça non car c'est breveté !
AV
Bonjour AV
Exact tu as parfaitement raison cela fonctionne très bien sur une page
vierge, mais alors que puis-je faire pour que cela fonctionne dans ma feuille
je n'ai vraiment pas envie de me retapé tout!
As tu la solution?
Merci
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se
bloque obligé de faire fin de tâche.
Il n'y a aucune raison pour que ce code ne fonctionne pas quelle que soit la
version
Tu l'as testé sur une feuille vierge pour éliminer quelques éventuels
épiphénomènes ?
Bonjour AV Exact tu as parfaitement raison cela fonctionne très bien sur une page vierge, mais alors que puis-je faire pour que cela fonctionne dans ma feuille je n'ai vraiment pas envie de me retapé tout! As tu la solution? Merci
Ce code ne fonctionne pas lorsque je le copie dans mon classeur excel se bloque obligé de faire fin de tâche. Il n'y a aucune raison pour que ce code ne fonctionne pas quelle que soit la
version Tu l'as testé sur une feuille vierge pour éliminer quelques éventuels épiphénomènes ?
Peut être a cause de Byval zz As Range ?
Ah ça non car c'est breveté !
AV
AV
..., mais alors que puis-je faire pour que cela fonctionne dans ma feuille je n'ai vraiment pas envie de me retapé tout! As tu la solution?
Ben non car je n'ai aucun élément me permettant de trouver "l'erreur"
AV
..., mais alors que puis-je faire pour que cela fonctionne dans ma feuille
je n'ai vraiment pas envie de me retapé tout!
As tu la solution?
Ben non car je n'ai aucun élément me permettant de trouver "l'erreur"