Problème de critères

  • Initiateur de la discussion Initiateur de la discussion tallia64
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tallia64

XLDnaute Occasionnel
bonsoir je travaille sur un code qui me permet de retrouver des personnes dans une liste, selon certains critères. Les critères dans mon formulaire sont les suivants :

RaisonSociale format RaisonSociale = UCase(RaisonSociale )
Titre format Titre = UCase(Titre )
Nom format Nom = UCase(Nom )
Prénom format Prenom = UCase(Prenom )
DateDeNaissance format DateDeNaissance.MaxLength = 8

Quand je lance mon application sans le critère DateDeNaissance mon application fonctionne parfaitement dès que je rajoute le critère DateDeNaissance elle n'effectue plus la recherche et je ne comprends pas pourquoi. Voici mon code en espérant que vous puissiez m'aider. Je vous en remercie d'avance pour votre aide car je dois présenter cette application cette semaine. Bonne soirée.
Tallia🙂



Private Sub liste_noire_Click()

Dim DerLig As Long, lig As Long
Dim VRaisonsociale As String, VTitre As String, VNom As String, VPrenom As String, VDateDeNaissance As String
' Récupérer le numéro de ligne sur laquelle on se trouve
lig = ActiveCell.Row

' Mémoriser la raison sociale, le titre, le nom,le prénom, la date de naissance de la ligne sélectionnée

VRaisonsociale = ActiveSheet.Range("A" & lig).Value
VTitre = ActiveSheet.Range("B" & lig).Value
VNom = ActiveSheet.Range("C" & lig).Value
VPrenom = ActiveSheet.Range("D" & lig).Value
VDateDeNaissance = ActiveSheet.Range("E" & lig).Value

' Vérifier l'existence d'une raison sociale nom et prénom sur la ligne

If VRaisonsociale = "" And VTitre = "" And VNom = "" And VPrenom = "" And VDateDeNaissance = "" Then
MsgBox "Merci de selectionner une ligne avec un titre un nom et prénom et une date de naissance"
Exit Sub
End If

' Effectuer une recherche de doublon

If NbVSearch(VRaisonsociale, VTitre, VNom, VPrenom, VDateDeNaissance) > 0 Then
If MsgBox("Attention cette personne fait déjà partie de la liste !" & vbCrLf & vbCrLf _
& "Voulez-vous continuer ?", vbQuestion + vbYesNo, "ATTENTION ...") = vbNo Then
'AJOUT.Hide
End If
ActiveSheet.Range("A" & lig & "😛" & lig).Interior.ColorIndex = 3
End If
end sub


Function NbVSearch(RaisonSociale As String, TITRE As String, NOM As String, PRENOM As String, DateDeNaissance As String)
Dim myformule As String


myformule = "SUMPRODUCT((liste_noire!$A$2:$A$65535=""" & RaisonSociale & """)*(liste_noire!$B$2:$B$65535=""" & TITRE & """)*(liste_noire!$C$2:$C$65535=""" & NOM & """)*(liste_noire!$D$2:$D$65535=""" & PRENOM & """)*(liste_noire!$E$2:$E$65535=""" & DateDeNaissance & """))"
NbVSearch = Application.Evaluate(myformule)
' si la raison sociale est vide
If RaisonSociale = "" Then
myformule = "sumproduct((liste_noire!$B$2:$B$65535=""" & TITRE & """)*(liste_noire!$C$2:$C$65535=""" & NOM & """)*(liste_noire!$D$2:$D$65535=""" & PRENOM & """)*(liste_noire!$E$2:$E$65535=""" & DateDeNaissance & """))"
End If
End Function
 
Re : Problème de critères

Bonsoir désolée de répondre aussi tardivement mais pendant la journée pas de connexion. Oui je sais que mon code est une usine à gaz comme vous le dites mais je débute en vba et ce n'est pas vraiment évident pour moi vu que je n'ai jamais appris de langage de programmation. J'ai fait un step by step et en effet le nbvsearch ne récupère pas la datedenaissance. j'ai testé en format date ça me bloque le nbvsearch. je vous remercie pour votre aide et surtout votre patience. Bonne soirée
tallia64
 
Re : Problème de critères

Salut,

ton fichier est corrompu (mêmes remarques que Catrice 😉).
Voici un fichier "nettoyé" avec ce que j'ai compris de ta liste noire.
J'ai changé le code du test de présence d'un cas dans cette liste.
A toi de voir et de tester.
 

Pièces jointes

Re : Problème de critères

Bonjour,

Ci-joint une autre version, c'est perfectible et un peu l'usine aussi 😉
Je ne gere pas la liste noire (on peut mettre en liste noire et donner un badge quand meme ?).

Le code ENTREE affiche les badges disponibles pour affecté une nouveau badge, controle que tous les champs sont renseignés, ajoute la fiche.
Le code SORTIE affiche les badges affectés et les "désaffecte" (j'espere que tu n'as pas prévu d'archiver qui a eu quel badge 😉)
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
272
Réponses
2
Affichages
467
Réponses
3
Affichages
300
Réponses
3
Affichages
589
Retour