Copier/coller en VBA

Bonjour, j'ai un problème je veux copier coller une plage de données vers une autre feuille mais mon code ne comprend pas ce que je lui demande.

Sub Rectangle4_Cliquer()

Range("C5:C16").Select
Application.CutCopyMode = False
Selection.Copy

Sheets("Base de données").Select
ActiveCell.Copy.Range ("A4:J4")

End Sub

A Active.Cell il plante, donc je voudrais savoir comment l'écrire pour que cela marche.

Merci,

Bonjour,

Il ne comprend pas par ce que tu lui demande mal ! Malheureusement, il ne suffit pas d'ajouter "s'il te plait" au code pour que ça fonctionne...

Quelques remarques :
- Select et Activate (et dérivés type ActiveCell) sont inutiles si tu précises systématiquement les feuilles et plages concernées
- ActiveCell.Copy.Range ("A4:J4") est un syntaxe sortie du chapeau, mais ça ne veux rien dire !

Une proposition à adapter :

Sub Copie()

Sheets("NomFeuille").Range("C5:C16").Copy Sheets("Base de données").Range("A4")
Application.CutCopyMode = False

End Sub

J'imagine que tu tentes de coller en 'Base de données!'A4 ce que tu as copié en C5:C16 de je ne sais quelle feuille ? Par contre il est préférable que les 2 plages soient de dimension identique, sinon on précise juste la cellule du coin supérieur gauche de la plage de destination.

Bonjour, Il n'y a pas que votre code qui ne comprend pas ??

Expliquez d'abord ce que vous cherchez à faire. vous parlez de coller "paste" n'apparaît nul part dans votre code.

Par ailleurs vous sélectionnez des données en colonne de C5 à C16 soit 12 données

ensuite vous sélectionnez une plage de A4 à J4 soit 10 cellules ????

Dans le cas ou vous souhaitiez écrire que les cellules de la feuille "Base de données" de A4 à L4 (12 données) doivent être égales aux cellules de C5 à C16 (12données aussi)

alors ce n'est pas un simple copié collé car la destination est en ligne alors que la copie est en colonne.

Il faudra utiliser la fonction transpose dans ce cas. Et une simple égalité suffit pas besoin de copier coller.

Sheets("Base de données").Range("A4:L4").Value = Application.WorksheetFunction.Transpose(Range("C5:C16"))

Bonjour, Pedro22 et Xmenpl,

J'ai réussi a faire ce que je voulais autrement ce n'est plus nécessaire de corriger ce code.

Merci quand même d'avoir répondu à ma question.

Bonne journée :)

J'ai réussi a faire ce que je voulais autrement ce n'est plus nécessaire de corriger ce code.

Pourrait on avoir le fin mot de l'histoire, pour notre curiosité ?

Re,

Range("G5:M30").Select
Selection.Copy
Sheets("copier coller").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A5").Select

Il permet de copier de la feuille saisie à la feuille copier coller pour y mettre dans la feuille base de données. C'est vrai cela fait beaucoup de copier coller mais ça marche donc c'est le principal.

Je n'envoie que la partie que je voulais corriger.

Merci,

ça fait plaisir de voir que tu as tenu compte de nos remarques !

Non je plaisante...

Rechercher des sujets similaires à "copier coller vba"