Bonjour à tous,
Juste une question de compréhension :
Ce code fonctionne. Je test d'abord si je n'ai pas une erreur et après si la cellule n'est pas vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If Not IsError(cell_ori.Offset(0, col_ori - cell_ori.Column)) Then If cell_ori.Offset(0, col_ori - cell_ori.Column).Value <> "" Then cell_des.Offset(i, col_des - cell_des.Column) = cell_ori.Offset(0, col_ori - cell_ori.Column) End If End If
J'ai forcément écrit ceci la première fois :
en changeant l'ordre dans le If, sachant pertinament que ça n'enlèverait pas l'erreur 13 : Incompatibilité de type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If Not IsError(cell_ori.Offset(0, col_ori - cell_ori.Column)) And cell_ori.Offset(0, col_ori - cell_ori.Column).Value <> "" Then cell_des.Offset(i, col_des - cell_des.Column) = cell_ori.Offset(0, col_ori - cell_ori.Column) End If
Je conçois bien qu'une erreur ne peut pas être évaluée/comparée à un <> "", cependant, je voulais savoir s'il n'y avait pas une autre manière de procéder que le code que j'ai écrit fonctionnant actuellement (j'ai horreur d'imbriquer des "If"... ^^ ).
Je ne sais pas si j'ai été suffisament clair dans ma question de compréhension et d'optimisation.
Je vous remercie par avance si vous avez une réponse.
Kimy
Partager