Erreur au niveau de la méthode PasteSelection

Résolu/Fermé
khawla.az Messages postés 14 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 29 août 2018 - 10 juil. 2018 à 10:31
khawla.az Messages postés 14 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 29 août 2018 - 10 juil. 2018 à 11:47
Salut je veux copier une feuille à la fin d'une autre feuille. j'ai réallisé ce code mais il affiche une erreur au niveau de la méthode pasteSpecial.Merci

<code>Sub Copier()
Dim Sh As Worksheet, ws As Worksheet
Dim LastRow As Integer
Set ws = Sheets("MAI")
Set Sh = Sheets("April")
LastRow = Sh.Cells(Rows.Count, "A").End(xlUp).Row
ws.Cells.Copy
With Sh
Range("A" & LastRow).Select
Selection.PasteSpecial, Paste:=xlValues ' Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End With
End Sub
</code>
A voir également:

2 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
10 juil. 2018 à 11:36
Bonjour,

Evitez les select'

Sub Copier()
    Dim Sh As Worksheet, ws As Worksheet
    Dim LastRow As Long
    
    Set ws = Sheets("MAI")
    Set Sh = Sheets("April")
    ws.Cells.Copy Sh.Range("A" & .Cells(Rows.Count, "A").End(xlUp).Row)
End Sub
0
khawla.az Messages postés 14 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 29 août 2018
10 juil. 2018 à 11:46
Merci mais le code affiche une erreur.
0
FlawTECH Messages postés 193 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 12 juillet 2018 100
Modifié le 10 juil. 2018 à 11:38
Bonjour,

Pour copier une feuille entière vers une autre feuille, il est obligatoire que la destination de la copie soit la première cellule d'une feuille (en l'occurence A1).

Il faudrait donc, au lieu de copier la feuille entière, copier uniquement les valeurs qui t'intéressent (en cherchant où se trouve la dernière ligne/colonne occupée et de coller cette selection).

Voici ton code adapté, en assumant que le contenu à copier est un tableau commençant en A1.
Au passage, j'en ai profité pour corriger et simplifier ton code, sinon le contenu collé allait écraser la dernière ligne de l'autre feuille :)

Sub Copier()
Dim Sh As Worksheet, ws As Worksheet
Dim LastRow, lRow, lCol As Long
Set ws = Sheets("MAI")
Set Sh = Sheets("April")
LastRow = Sh.Cells(Rows.Count, "A").End(xlUp).Row

With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row ' Dernière ligne du tableau
lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column ' Dernière colonne du tableau
.Range("A1", .Cells(lRow, lCol)).Copy ' On copie le tableau
End With

Sh.Range("A" & LastRow + 1).PasteSpecial Paste:=xlPasteValues ' Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub


Cordialement,

FlawTECH

0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
10 juil. 2018 à 11:40
Bonjour,
En effet, j'ai un peu oublie la chose
0
khawla.az Messages postés 14 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 29 août 2018
10 juil. 2018 à 11:47
Merci bien le code ça fonctionne très bien.c'est ce que je veux .
0