Find sur plusieurs colonnes
Bien le bonjour la communauté,
N'étant pas encore super à l'aise avec VBA je me contente de bricoler des solutions en utilisant des bout de code existant et l'enregistreur. Il se trouve que je rencontre une erreur dans mon code que je n'arrive pas à solutionner.
La philosophie du code est de chercher les données une à une qui se trouvent dans la colonne V de l'onglet Base, dans l'onglet Lieu. Une fois la valeur trouver dans l'onglet Lieu, la macro dans me prendre l'info qui se trouve sur la meme ligne mais en colonne E et me copier l'info dans l'onglet Base en colonne W. Tout se passait bien jusqu'à ce que je tente de gérer les erreurs (valeur non trouvée). Si la valeur n'est pas trouvée je voudrais que la macro m'inscrire N/A en colonne W sur la même ligne que la valeur trouvée. La macro me sort l'erreur 91 au niveau de mon find suite à des valeurs non trouvées
J'espere que j'ai réussi à etre clair, je ne vous joint pas le fichier pour le moment car les données sont confidentielles. Je peux modifier ce qu'il y a dedans si besoin
Voici le code (qui n'est pas très beau)
Code:
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
Sub Macro3()
'
Application.ScreenUpdating = False
'
Dim I As Long
Dim Plage As Range
Dim Valeur As Variant
Sheets("Base").Select
Set Plage = Range("V2:A" & Range("V65536").End(xlUp).Row)
For I = 2 To 15
Range(Cells(I, 22), Cells(I, 22)).Select
Valeur = Range(Cells(I, 22), Cells(I, 22)).Value
Selection.Copy
Sheets("Lieu").Select
On Error GoTo Suite
Cells.Find(What:=Valeur, After:=ActiveCell, LookIn:= _
xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext _
, MatchCase:=False, SearchFormat:=False).Activate
On Error GoTo Suite
Cells(ActiveCell.Row, "E").Select
ActiveCell.Copy
Sheets("Base").Select
Range(Cells(I, 23), Cells(I, 23)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
DEBUT:
Next
GoTo FIN
Suite:
Sheets("Base").Select
Cells(I, 23).Value = "n/a"
If I < 1456 Then GoTo DEBUT Else
FIN:
End Sub |
Merci pour votre aide