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
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,
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