J'ai une manip toute simple à faire: Copier des données d'un fichier et les coller dans un nouveau. Il y a environ 8000 données, donc j'ai recours à une macro. Je pensais qu'elle serait toute simple à réaliser mais je rencontre une erreur à chaque fois que je veux coller.
"Run-Time error '438': Object does not support this property or method"
Le bout de code qui provoque cette erreur est le suivant:
Code:
For i = 3 To 2000
If Workbooks("DN-2010.xls").Sheets("OL").Cells(i, 1) = ThisWorkbook.Sheets("OL").Cells(i, 1) Then
Workbooks("DN-2010.xls").Sheets("OL").Cells(i, 23).Copy
ThisWorkbook.Sheets("OL").Cells(i, 23).Paste
Else
End If
Next i
Je ne vois pas où il y a d'erreur même si la ligne qui est marquée comme étant fausse est la dernière (avec le .Paste)
Mais pourquoi donc utiliser Paste ? Je pense que ceci devrait être plus rapide :
Code:
Set F1 = Workbooks("DN-2010.xls").Sheets("OL")
Set F2 = ThisWorkbook.Sheets("OL")
For i = 3 To 2000
If F1.Cells(i, 1) = F2.Cells(i, 1) Then
F1.Cells(i, 23).Copy F2.Cells(i, 23)
Else 's'il y a une suite après Else...
End If
Next
Et si l'on ne cherche à copier que les valeurs :
Code:
Set F1 = Workbooks("DN-2010.xls").Sheets("OL")
Set F2 = ThisWorkbook.Sheets("OL")
For i = 3 To 2000
If F1.Cells(i, 1) = F2.Cells(i, 1) Then
F2.Cells(i, 23) = F1.Cells(i, 23)
Else 's'il y a une suite après Else...
End If
Next
Merci Pierrot, ta dernière solution semble marcher!
@job75: j'utilise "Paste" pour coller les données que j'ai copié dans le 1er fichier... tu veux dire qu'avec ta solution Excel transférerait les données du premier fichier vers le deuxième sans jamais copier ou coller?
La solution de Pierrot fonctionnait et je l'avais déjà testée/utilisée avant votre intervention, c'est pour cela que je ne l'avais pas essayé et que je posais simplement la question.
Mais afin de ne frustrer personne, j'ai testé votre solution qui, en plus de fonctionner parfaitement, le fait d'une manière beaucoup plus rapide.