Bonjour à tous,

Juste une question de compréhension :
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
Ce code fonctionne. Je test d'abord si je n'ai pas une erreur et après si la cellule n'est pas vide.

J'ai forcément écrit ceci la première fois :
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
en changeant l'ordre dans le If, sachant pertinament que ça n'enlèverait pas l'erreur 13 : Incompatibilité de type.

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