Recherchev à partir d'un classeur fermé

Fermé
Freddyfbb - Modifié par Chris 94 le 31/05/2016 à 02:05
Bonjour,

Votre support habituel pour avoir les codes me permettant d'afficher les données dans un formulaire en utilisant la fonction Recherchev. Les informations à afficher dans ce formulaire se trouvent dans un autre classeur et celui-ci est fermé.

Mon programme fonctionne très bien lorsque les informations à afficher ou à rechercher se trouvent dans une autre feuille du même classeur mais vu le nombre d'utilisateurs de mon programme, cela me donne un grand travail lorsqu'il faut faire la mise à jour de cette feuille.

Ainsi, j'ai créé un nouveau classeur que tous les users utiliseront pour afficher les informations dans leur formulaire.

Le nom du nouveau classeur est Titulaire_PAC
La feuille qui contient les données : Détails
La plage des données : A:S

Ci-dessous, les codes que j'utilise pour le moment.

Private Sub cmdVerifMat_Click()
Dim Mat_Benef As String

    With Sheets("Titulaire_PAC")
        Mat_Benef = UserForm1.Matricule_Beneficiaire.Value
        If Mat_Benef = "" Then MsgBox "Matricule bénéficiaire ne peut pas être vide", vbCritical + vbOKOnly, "Champ Matricule vide"
            UserForm1.Matricule_Beneficiaire.SetFocus
            If Application.CountIf(Worksheets("Titulaire_PAC").Columns("D"), Mat_Benef) > 0 Then
            UserForm1.TxtNoms.Value = Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 2, False)
            UserForm1.TxtPrenom.Value = Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 3, False)
            UserForm1.TxtDateNaissance.Value = CDate(Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 4, False))
            If UserForm1.TxtDateNaissance.Value <> "" Then
                UserForm1.Age.Value = Year(UserForm1.Date_Jour.Value) - Year(UserForm1.TxtDateNaissance.Value)
            Else
                UserForm1.Age.Value = ""
            End If
            UserForm1.TxtSexe.Value = Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 5, False)
            UserForm1.TxtAdresse.Value = Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 6, False)
            UserForm1.TxtCommune.Value = Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 7, False)
            UserForm1.TxtTelephone.Value = Application.WorksheetFunction.VLookup(Mat_Benef, Worksheets("Titulaire_PAC").Range("D:K"), 8, False)

                UserForm1.Fosa_Provenance.Enabled = True
                'UserForm1.TxtNoms.SetFocus
                UserForm1.Frame2.Visible = True
                UserForm1.Frame3.Visible = True
                UserForm1.Frame4.Visible = True
                UserForm1.Frame5.Visible = True
                UserForm1.Frame6.Visible = True
                
            Else
                MsgBox "Ce Bénéficiaire n'existe pas la base. Veuillez l'ajouter dans la Feuille Titulaire_PAC avant de continuer avec l'encodage", vbCritical + vbOKOnly, "Erreur de saisi"
                'Unload UserForm1
                usfTitulairePAC.Show
                'Worksheets("Titulaire_PAC").Visible = True
                'Sheets("Titulaire_PAC").Activate
            End If
    End With
End Sub