Bonjour à tous,

J'espère que vous pourrez encore m'aider sur mon nouveau problème. Je m'explique : j'ai une base de données excel d'une part. D'autre part j'ai un userform qui permet à l'utilisateur de faire une recherche dans cette bdd. Je veux faire en sorte que lorsque la fonction trouve une correspondance entre le nom saisi par l'utilisateur et la bdd ça affiche un userform pré-rempli avec les données récupérées dans la bdd.

J'ai donc créé une variable public dans le module de code du userform formulaire (on va l'appeler ligne). Lorsque la fonction recherche a trouvé le nom rentré par l'utilisateur, elle actualise la valeur de ligne avec le numéro de la ligne sur laquelle se trouve le résultat de la recherche.
Après quoi j'ai dit dans mon UserForm_Initialize() que les textbox doivent prendre la valeur des cellules de cette ligne.
Mais c'est là que ça plante : j'ai sans cesse droit à "Erreur définie par l'application ou par l'objet" et ça me surligne UserForm1.Show. Je comprends pas

Voilà le code pour plus de clarté :
Variable public:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Public ligne As Integer
La fonction recherche :
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
Sub ok_Click()
If Len(TextBox_recherche.Text) < 3 Then
    MsgBox "Veuillez saisir au moins 3 lettres"
Else
    With Worksheets(2).Columns("A:A")
        Set c = .Find(TextBox_recherche.Text, Range("A1"), xlFormulas, xlPart, xlByRows, xlNext)
    If c Is Nothing Then
        MsgBox "Introuvable"
    Else
        ligne = c.Row
        Me.Hide
        UserForm1.Show
        Unload Rechercher
    End If
    End With
End If
End Sub
Et l'initialisation (c'est ça qui plante) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Private Sub UserForm_Initialize()
    TextBox_NOM.Text = Worksheets(2).Cells(ligne, 1).Value
    TextBox_Prenom.Text = Worksheets(2).Cells(ligne, 2).Value
End Sub
Voilà, j'espère vraiment que vous pourrez m'aider