Copier plusieurs cellules avec VBA

Bonjour,

Je suis novice en VBA.

Je voudrais copier plusieurs cellules dont le référencement est variable d'une feuille à une autre sans conserver le formatage.

Où est l'erreur de cette formule? Merci !

Sheets("Feuil2").Range(Cells(i, 1), Cells(i + 1, 1)).Value = Sheets("Feuil1").Range(Cells(j, 1), Cells(j + 1, 1)).Value

Admettons que les variables i et j aient un contenu. Cette ligne doit provoquer une erreur 1004 (syntaxe incorrecte). Il vaut mieux écrire :

    Sheets("Feuil1").Range("A" & j & ":A" & j + 1).Copy _
    Destination:=Sheets("Feuil2").Range("A" & i & ":A" & i + 1)

A noter que la syntaxe ci-dessous est correcte :

Sheets("Feuil2").Range("A" & i).Value = Sheets("Feuil1").Range("A" & j).Value
Sheets("Feuil2").Range("A" & i+1).Value = Sheets("Feuil1").Range("A" & j+1).Value

Bonjour,

Optimix ta première solution est syntaxiquement correcte mais en utilisant copy Excel va garder la mise en forme alors que Pasero précise qu'il ne veut que les valeurs sans la mise en forme.

Tu as raison Alex. L'absence de "formatage" m'avait échappé. Je ne m'étais penché que sur l'erreur de syntaxe.

    Sheets("Feuil1").Range("A" & j & ":A" & j + 1).Copy
    Sheets("Feuil2").Range("A" & i & ":A" & i + 1).PasteSpecial xlPasteValues

Merci pour votre réponse.

Si la colonne est une variable et non unr valeur fixe comme "A" dans l'exemple donné, comment fait-on ? Merci !

Sheets("Feuil2").Cells(i2, j2).resize(,n).Value = Sheets("Feuil1").Cells(i1,j1).resize(,n).Value

avec resize(,n), n dit le nombre (horizontal) de cellules à copier&coller ,

Un grand merci pour vos réponses, et leur rapidité !

Ca correspond bien à ce que je recherchais

Rechercher des sujets similaires à "copier vba"