VBA : Copier valeur de cellules dans une autre feuilles

Résolu/Fermé
Max49 - 24 mars 2014 à 10:39
michel_m
Messages postés
16570
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 mai 2022
- 24 mars 2014 à 14:46
Bonjour,

Je débute depuis peut en VBA et j'essaye
Je souhaiterais copier les valeurs d'une range dans une autre range mais dans une autre feuille. J'ai trouvé plusieurs solutions pour répondre à mon problème, j'ai tout d'abord utiliser cette trame pour faire mon copier coller :

Worksheets("Hebdo").Activate
Range(Cells(lig1, col), Cells(lig - 1, col + 2)).Select
Range(Cells(lig1, col), Cells(lig - 1, col + 2)).Copy

ActiveWorkbook.Sheets("GR1").Activate
ActiveWorkbook.Sheets("GR1").Range(Cells(5, 1), Cells(14, 3)).Select
ActiveWorkbook.Sheets("GR1").Paste

Cette trame me convenait parfaitement jusqu'à ce que je modifie la mise en forme de mon tableau excel de manière à imprimer mes tableaux remplis automatiquement. Je me retrouve dans à copier des valeurs de cellules taille 22 et à les coller dans des cellules qui sont censés être écrite taille 11.
Pour cela j'ai lu sur ce forum qu'il est plus simple pour effectuer cette action de copier coller en ne copiant que les valeurs et non la cellule entière en utilisant la manière suivante :

Range("A1:C5").value = Range("D6:G11").value

Appliquer à mon problème cela donne ceci :

Sheets("GR1").Range("A5:C14").Value = Sheets("Hebdo").Range(Cells(lig1, col), Cells(lig - 1, col + 2)).Value

lig et col étant 2 variables integer qui sont préalablement définis.

Cependant ce code ne fonctionne pas, cela me met un message d'erreur.

J'ai lu également qu'il existait une méthode avec .PasteSpecial mais je ne sais pas m'en servir.

Est-ce que quelqu'un aurait une solution

Cordialement

Max
A voir également:

2 réponses

michel_m
Messages postés
16570
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 mai 2022
3 280
Modifié par michel_m le 24/03/2014 à 11:39
Bonjour,
apparemment tes surfaces ne sont pas identiques
A5:C14 comporte 2 lignes
donc
Sheets("GR1").Range("A5:C14") = Sheets("Hebdo").Range(Cells(lig, col), Cells(lig +2, col + 2)).Value
ou
Range(Cells(lig-1, col), Cells(lig +1, col + 2)).Value

remarque
tu avais 3 variables Lig1, Lig et col...
il n'est pas néessaire d'indiquer .value das les cellules cibles



Michel
0