IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème de recherche selon des critères


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Problème de recherche selon des critères
    bonjour 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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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 journée.
    Tallia



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    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 & ":P" & 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

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 121
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par tallia64 Voir le message
    bonjour 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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    DateDeNaissance format DateDeNaissance.MaxLength = 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    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
    Bonjour tallia64 et le forum

    je t'ai mis en gras ce qui, à mon avis, ne convient pas, je remplacerais comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDeNaissance format Date.MaxLength = 8
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VDateDeNaissance As date



    Bonne journée

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    bonjour
    Merci pour votre aide mais ça ne fonctionne pas oui peut être que c'est moi qui le place mal vu que je début en vba.
    Je vous transmets mon fichier en espérant que vous puissiez m'aider. Je pense que c'est la ligne de code suivante ou le format de ma datedenaissance qui me bloque mais je n'arrive pas à comprendre pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ' 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
    Je vous remercie d'avance
    tallia64

    Mon fichier : http://cjoint.com/?goboWYmUGC

Discussions similaires

  1. Trier une vue tree selon des critères de recherches
    Par alexdess dans le forum Odoo (ex-OpenERP)
    Réponses: 5
    Dernier message: 09/07/2014, 15h08
  2. Requetes selon des critères
    Par Z[ee]k dans le forum Access
    Réponses: 6
    Dernier message: 05/06/2006, 14h06
  3. tableau descriptif de SQL server selon des critères techniq
    Par h.sofia dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/02/2006, 16h25
  4. Supprimer des sous-dossiers selon des critères
    Par Dertron dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 18/01/2006, 14h33
  5. lister des fichiers selon des critères
    Par Corben dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 18/10/2005, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo