Erreur '1004' sur objet un Range lors d'un .copy

[Résolu/Fermé]
Signaler
Messages postés
2
Date d'inscription
vendredi 21 novembre 2014
Statut
Membre
Dernière intervention
21 novembre 2014
-
Messages postés
2
Date d'inscription
vendredi 21 novembre 2014
Statut
Membre
Dernière intervention
21 novembre 2014
-
Bonjour,

Depuis un moment je cherche une solution au problème suivant :

Je cherche à créer une macro qui ouvre un fichier excel et qui effectuer un copier/coller des valeurs contenues dans toutes les feuilles (en fait à partir de la deuxième feuille) car il me faut supprimer toutes les formules.
Voici mon code :

Dim ClasseurR As Workbook
Dim i As Integer
Dim numcol As Integer
Dim jdeb As Integer, jfin As Integer
Set ClasseurR = Application.Workbooks.Open(message)
message = ""
NumFeuille = ClasseurR.Worksheets.Count
i = 2
For i = 2 To NumFeuille Step 1
numcol = ClasseurR.Worksheets(i).Range("B1").SpecialCells(xlCellTypeLastCell).Column
jdeb = numcol + 1
jfin = numcol * 2
ClasseurR.Worksheets(i).Range(Columns(1), Columns(numcol)).Copy
'ClasseurR.Worksheets(i).Cells(1, jdeb).Select
ClasseurR.Worksheets(i).Range(Columns(jdeb), Columns(jfin)).PasteSpecial Paste:=xlPasteValues
ClasseurR.Worksheets(i).Range(Columns(1), Columns(numcol)).Delete
Application.CutCopyMode = True
Next i



Lors du premier passage dans la boucle for tout se passe comme prévu.

Mais lors du deuxième passage j'ai un message d'erreur : erreur '1004' Erreur définie par l'application ou par l'objet sur la ligne ClasseurR.Worksheets(i).Range(Columns(1), Columns(numcol)).Copy
Je me suis dit que l'objet Range avait peut-être besoin d'être réinitialisé (indice limite par exemple) mais je n'ai rien trouvé à ce sujet.

Si l'un ou l'une d'entre vous avez déjà rencontré et solutionné ce problème, merci à l'avance.

2 réponses

Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
25
Première question.
Serait-il mieux de copier la feuille d'un classeur à l'autre plutôt que son contenu ?
Messages postés
2
Date d'inscription
vendredi 21 novembre 2014
Statut
Membre
Dernière intervention
21 novembre 2014

Merci pour la réponse. Je viens de réussir à faire passer la macro en utilisant With.... End with et en mettant .Range(.Columns..... au lieu de .Range(Columns.....