Bonjour,

Je voudrais copier des données d'une feuille à une autre, mais à des lignes différentes dans la deuxième feuille :

Dans la feuille SheetSource, j'ai un traitement qui me donne des données sur la plage M5:N519.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
A10	signal_1
A11	P3V3
A12	signal_2
A13	signal_3
A14	signal_4
A15	signal_5
A17	signal_6
A18	signal_7
A19	signal_8
A20	
A21	P3V3
Dans la feuille SheetDestination, je dois recherché si pour chaque ligne la valeur de la colonne A de cette feuille se retrouve dans la colonne M de la feuille SheetSource, et si oui copier le contenu de la colonne N de la feuille SheetSource dans la colonne I de la feuille SheetDestination.

Je me doute que la fonction Find est la clé de ma solution, mais je ne comprends pas tout dans cette fonction ni comment faire cela.

pour l'instant j'ai fais une portion de code pas optimisée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
'Dim row, row2 As Integer
 
For row = 5 To 519 'colonne M feuille SheetSource 
 For row2 = 3 To 678 'colonne I feuille SheetDestination
  If Worksheets(SheetSource).Cells(row, 13).Text = Worksheets(SheetDestination).Cells(row2, 1).Text Then
   Worksheets(SheetDestination).Cells(row2, 9) = Worksheets(SheetSource).Cells(row, 14)
 End If
 Next
Next
Le soucis avec ce code c'est qu'il est lent, et aussi j'ai une erreur de lecture de donnée pour Worksheets(SheetDestination).Cells(row2, 1).Text