Bonjour frwigz, Salut ThauThème,
@frwigz, quelques commentaires sur ton code :
--> Plutôt que de répéter un nom de feuille sur laquelle tu travailles, tu peux utiliser :
With Sheets("MaFeuille") 'Toute objet commençant par "." se rapporte à cette feuille
.Cells(n, 1)
.Range("A1:A100")
...
End With
--> Pour déterminer à partir d'un point, la dernière cellule avant une cellule vide, tu peux faire :
.Cells(1, 1).End(xlDown).Row 'Équivalent au n° de ligne obtenu en appuyant sur CTRL + FLECHE DU BAS depuis la cellule A1
'NOTE : cette instruction peux aussi s'écrire de façon à trouver la dernière cellule non vide de ta feuille :
.Cells(.Rows.Count, 1).End(xlUp).Row
--> Pour copier/coller ou naviguer entre les feuilles, VBA n'a pas besoin (comme le ferait un utilisateur) de "séléctionner" les objets (donc les instructions "Select" sont inutiles) :
.Cells(n, 1).Copy Sheets("02. Material Data").Cells(x, 1)
'Est équivalent à :
Cells(n, 1).Select
Selection.Copy
Sheets("02. Material Data").Select
Cells(x, 1).Select
ActiveSheet.Paste
--> Si seule la valeur de la cellule t'intéresse, copier est inutile, il sera plus rapide et plus simple de reporter la valeur contenue dans la cellule (PS: ça fonctionne aussi avec une plage et pas uniquement cellule par cellule) :
Sheets("02. Material Data").Cells(x, 1).Value = .Cells(n, 1).Value