Bonjour(soir)

Voila mon problème réside dans la gestion de l'erreur 1004 comme l'indique le titre.

En effet je n'arrive pas à bien positionner sa recherche dans ma procédure.
Dans la configuration affichée en citation, si la personne recherche un stagiaire inexistant cela fonctionne. En revanche si l'utilisateur recherche un stagiaire existant, il m'affiche tout de même le message d'erreur de la gestion d'erreur et de ce fait sort du programme sans afficher les informations demandées.

J'espère que je trouverais parmi vous une âme charitable qui me tirera cette épine du pied.

Je vous souhaite une bonne journée (soirée)

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
45
46
47
48
49
50
51
Sub RechercheNom()
    Dim iG, iSSup As Integer                                    'Indice feuille General, Indice stage supplémentaire
    Dim NomSta, TestG, TestSSup As String                       'Nom du stagiaire, Valeur Test General, Test Stage supplémentaire
    
    Sheets("Formulaire").Select
    NomSta = Range("F4").Text
    
Erreur:
    If Err.Number = 1004 Then
        If MsgBox("Le stagiaire ou le stage n'a pas été trouvé. SVP corriger et cliquer Ok" & _
            vbCrLf & "ou cliquer annuler", vbOKCancel) = vbOK Then
            Resume
        End If
    End If

    If NomSta = "" Then
        MsgBox ("Veuillez saisir le NOM et le Prénom du stagiaire " & Chr(10) & _
        "ou le numéro de stage à chercher.")
        Range("F4").Select
    Else
        Sheets("General").Select
        iG = 3                                                  'Initialisation du curseur à la ligne 2
        TestG = Range("C" & iG).Text
        While TestG <> NomSta                                   'Recherche du nom dans le tableau
            iG = iG + 1

            TestG = Range("C" & iG).Text

'Gestion d'erreur
    On Error GoTo Erreur:
        MsgBox ("Le stagiaire n'a pas été trouvé. Vérifiez la saisie.")
        Sheets("Formulaire").Select
        Range("F4").Select
        Exit Sub

        Wend
        
        iSSup = iG + 1
        If Range("C" & iSSup).Text = "" Then                    'S'il existe une date supplémentaire de stage
            If Range("A" & iSSup).Text = "" Then
                Call Affichage(CInt(iG))
            Else
                While Range("A" & iSSup).Text <> "" And Range("C" & iSSup).Text = ""
                    iSSup = iSSup + 1
                Wend
                Call AffDSta(CInt(iG), iSSup - 1)
            End If
        End If
        Call Affichage(CInt(iG))
    End If
End Sub