Fonction Find déclaration variables

Bonjour à tous,

Je suis nouveau sur ce forum et débutant en VBA. J'ai suivi les cours VBA pour commencer à utiliser ce langage qui je pense va me faire gagner beaucoup de temps dans mes tableaux Excel. Je trouve cependant vite mes limites

J'ai un fichier pour laquelle j'ai écris ces quelques lignes mais après 1 journée de lecture sur ce forum et autres ainsi que divers essais je bloque.

J'ai une erreur 424 Objet requis pour la ligne en grisé. Je n'arrive cependant pas à m'expliquer ce qui génère l'erreur. Est ce la déclaration de variable? Je ne maîtrise pas la notion d'objet...

Dim L As Range 'Numéro de la ligne à récuperer

Dim A As Range 'Numéro de l'affaire

Set A = Worksheets("Formulaire").Range("S17")

Set L = Worksheets("Tableau de bords").Columns("C").Find(what:=A.Value, LookAt:=xlWhole).Row

'

If A = "" Then

MsgBox ("Saisir un code affaire!")

Worksheets("Formulaire").Range("S17") = ""

Exit Sub

Else

If L Is Nothing Then

MsgBox ("Code affaire erroné!")

End If

Set L = Nothing

Exit Sub

End If

'

'Copier Coller Mois de démarrage travaux

Workbooks("TEST.xlsm").Worksheets("Tableau de bords").Cells(L, 1).Copy

Workbooks("TEST.xlsm").Worksheets("Formulaire").Range("C8").PasteSpecial Paste:=xlPasteValues

J'ai bien trouvé des post sur ce thème mais pas de solution qui s'adapte pour moi ou bien que je n'ai pas compris . C'est pourquoi je crée ce nouveau sujet.

Si quelqu'un peut m'aider sur ce point.

Merci par avance,

Bonne journée

Bonjour et bienvenue,

De ce que je comprends !...

Qu'en penses-tu ?

Cdlt.

Public Sub TEST()
Dim L As Range    'Cellule à récuperer
Dim A As Range    'Numéro de l'affaire

    Set A = Worksheets("Formulaire").Range("S17")

    If IsEmpty(A) Then
        MsgBox ("Saisir un code affaire!")
        Exit Sub
    Else
        Set L = Worksheets("Tableau de bords").Columns("C").Find(what:=A.Value, LookAt:=xlWhole)
        If L Is Nothing Then
            MsgBox ("Code affaire erroné !")
            Worksheets("Formulaire").Range("S17") = ""
        Else
            Workbooks("TEST.xlsm").Worksheets("Tableau de bords").Cells(L.Row, 1).Copy
            Workbooks("TEST.xlsm").Worksheets("Formulaire").Range("C8").PasteSpecial Paste:=xlPasteValues
        End If
    End If

End Sub

Bonjour Jean Eric,

Merci pour ce retour, cela semble fonctionner, je vais continuer mes tests.

Pour ma culture :

  • La fonction IsEmpty est différente en quel sens?
  • Le .row n'était pas placé au bon endroit? C'est pourquoi j'avais une erreur?

Encore merci pour ton aide

Rechercher des sujets similaires à "fonction find declaration variables"