Problème erreur d'execution 9 (objet worksheet)

Bonjour à tous

J'ai un petit soucis dans un code, le code créer un chemin worksheet via une variable c.

Set Ws2 = Wb2.Sheets(Left(c, 3))
          

Problème il arrive parfois que la feuille crée via la variable C n'existe pas dans le classeur Wb2 et donc me cause une erreur d'exécution 9.

j'ai essayé de faire une gestion d'erreur via On error goto, mais ça ne marche pas.

voici la partie du code:

            Set Ws2 = Wb2.Sheets(Left(c, 3))
            Valeur_Cherchee = c
            Set PlageDeRecherche = Ws2.Columns(1)
            Adr = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlPart).Row
                If Adr = "" Then
                Ws.Range("M" & i) = "Introuvable"
                Else
                Ws.Range("M" & i) = Ws2.Range("B" & Adr)
                End If

Je souhaite que quand

Set Ws2 = Wb2.Sheets(Left(c, 3))

est en erreur qu'il ne fasse que cette partie du code et saute tous le reste:

 Ws.Range("M" & i) = "Introuvable"

merci d'avance pour votre aide

Bonjour Mickou14,

Je te propose le code suivant :

            Dim wS2 As Worksheet
            On Error Resume Next
            Set wS2 = Wb2.Sheets(Left(c, 3))
            On Error GoTo 0
            If Not wS2 Is Nothing Then
                Valeur_Cherchee = c
                Set PlageDeRecherche = wS2.Columns(1)
                Adr = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlPart).Row
                If Adr = "" Then
                    Ws.Range("M" & i) = "Introuvable"
                Else
                    Ws.Range("M" & i) = wS2.Range("B" & Adr)
                End If
            Else
                MsgBox "La feuille '" & Left(c, 3) & "' n'existe pas!", vbCritical, "Fin du traitement"
            End If

Merci gvialles, je test ça dès demain !!

Rechercher des sujets similaires à "probleme erreur execution objet worksheet"