Méthode pastespecial de la classe range a échoué

Bonjour, je souhaite copier les données de la feuille ("UNE") colonnes(A,B) et les coller dans la feuille ("DEUX") dans les colonnes (F,G) sachant que mes 2 feuilles contiennent plusieurs colonnes (A,B C D E F G H I ..)

Ensuite, faire la même choses pour la partie restante de ma première feuille, pour la coller dans la deuxième feuille mais à partir de I ( EN GROS LA COLONNE H de ma deuxième feuille ne doit contenir aucun élément et mon collage commencera par la colonne F)

l'erreur dit que "Méthode pastespecial de la classe range a échoué " et voici le code utilisé.

Pourriez vous m'aider à comprendre mon erreur pour trouver une solution ? Merci

Dim LastRow As String

Sheets("UNE").Range("A:B").Copy

LastRow = Sheets("DEUX").Range("F" & Rows.Count).End(xlUp).Row + 1

Sheets("DEUX").Range("F" & LastRow).PasteSpecial xlPasteValues

Sheets("UNE").Range("C:Z").Copy
LastRow =Sheets("DEUX"). Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("DEUX").Range("I" & LastRow).PasteSpecial xlPasteValues

Bonjour,

Tu copies les colonnes entières, soit les 1048576 lignes.

Puis, tu te positionnes sur une ligne qui n'est pas la 1ère et tu colles toutes ces lignes.

Tu essaies donc de coller plus de lignes qu'il n'en reste de disponible sur ta feuille.

Merci beaucoup pour le retour, il me semble que c'est ce que j'ai fait dans mon code.

Je me suis positionner sur le Lastrow+1 mais cela ne fonctionne pas.

Ps: dites moi si je n'ai pas bien compris votre méthode

Tu demandais une explication sur ton erreur, c'est ce que je t'avais donné.

Tu copies l'intégralité des colonnes A et B.

Puis tu te mets sur la 1ère cellule vide de ton autre feuille, et tu colles l'intégralité des colonnes copiées.

Sauf que tu n'as pas assez de lignes disponibles sur ta 2ème feuille pour coller les 1048576 lignes copiées.

Merci beaucoup pour l'explication. je veux coller que 1700 lignes et il y a encore beaucoup plus de lignes vides sur ma feuille 2.

Auriez vous un autre code qui pourrait marcher ? Merci

C'est dur à dire sans voir comment sont organisées les données.

Essaie de poster un exemple représentatif de quelques lignes, sans données confidentielles.

J'ai fait un exemplaire et voici le code appliqué. IL N Y A PAS DE DONNEES A COLLER DANS LA COLONNE H DE A FEUIL1

Merci j'ai trouvé

Dim LastRow As String

Dim LastRow1 As String

Dim LastRow2 As String

LastRow1 = Sheets("feuil2").Range("A" & Rows.Count).End(xlUp).Row

Sheets("feuil2").Range("A1:B1" & LastRow1).Copy

LastRow = Sheets("feuil1").Range("F" & Rows.Count).End(xlUp).Row + 1

Sheets("feuil1").Range("F" & LastRow).PasteSpecial xlPasteValues

Sheets("feuil2").Range("C1:Z1" & LastRow1).Copy

Sheets("feuil1").Range("I" & LastRow).PasteSpecial xlPasteValues

C'est une façon de faire. Même si je pense qu'il faudra que tu changes :

Sheets("feuil2").Range("A1:B1" & LastRow1).Copy

par :

Sheets("feuil2").Range("A1:B" & LastRow1).Copy

Il faudrait aussi déclarer tes variables en Long (nombre) et non en string (texte).

Tu peux également faire comme ceci :

Sub trial()
Dim LastRow2 As Long, lastRow1 As Long

lastRow1 = Sheets("feuil1").Range("F" & Rows.Count).End(xlUp).Row + 1
LastRow2 = Sheets("feuil2").Range("A" & Rows.Count).End(xlUp).Row + 1

Sheets("feuil1").Range("F" & lastRow1 & ":G" & lastRow1 + LastRow2 - 1).Value = Sheets("feuil2").Range("A1:B" & LastRow2).Value
Sheets("feuil1").Range("I" & lastRow1 & ":AF" & lastRow1 + LastRow2 - 1).Value = Sheets("feuil2").Range("C1:Z" & LastRow2).Value
End Sub

Ce code à super fonctionné pour moi !

Merci

Rechercher des sujets similaires à "methode pastespecial classe range echoue"