Macro pour copier/coller des colonnes

Bonjour,

Alors j'ai des difficultés avec une macro qui m'a été demandé.

Je souhaite copié collé les colonnes d'une feuille à une autre sachant que le nombre de la 1ère colonne n'a pas le même nombre de lignes à chaque mois et est donc effacé tout les mois pour être remplacé pas un nouveau tableau.

Par contre les données de la feuil2 sont conservé tout le temps.J'ai mis les colonnes correspondante dans le ficher joint.

Donc je dois faire un bouton qui copierais les colonnes de la feuil1 à la feuil2.

J'espère avoir été clair et que vous pourrez m'aider par ce que j'ai vraiment du mal.

Merci d'avance.

1'702classeur1.zip (8.94 Ko)

Bonjour,

Quelles colonnes veux-tu copier exactement ? Toutes ? ou seulement celles marquées sur la feuille 2 de la façon dont tu les a marqué ? (Colonne F, Colonne G, Colonne B+C, Colonne B+D)...

Bonjour Zirak,

Je souhaite coller seulement les colonnes que j'ai marqué (colonne F de la feuil1 dans la colonne B de la feuil 2 ,colonne G de la feuil1 dans la colonne C de la feuil2 etc...).

bonjour,

voila la macro

va dans visual basic un copier coller

test et tiens nous au courant

Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets("Feuil1").Select
    Range("F1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Feuil2").Select

    Range("B1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Feuil1").Select
    Range("G1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select

    Range("C1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

     Sheets("Feuil1").Select
    Columns("D:D").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D1").Select
    Selection.Copy
    ActiveCell.Offset(0, -1).Range("A1").Select

   Selection.End(xlDown).Select

    ActiveCell.Offset(0, 1).Range("A1").Select
    Range(Selection, Selection.End(xlUp)).Select
    ActiveSheet.Paste

    Range("D1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy

    Sheets("Feuil2").Select

    Range("D1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

         Sheets("Feuil1").Select
    Columns("D:D").Select
    Selection.Delete Shift:=xlToLeft
    Range("E7").Select

     Columns("E:E").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "=RC[-3]+RC[-1]"
    Range("E1").Select
    Selection.Copy
    ActiveCell.Offset(0, -1).Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 1).Range("A1").Select
    Range(Selection, Selection.End(xlUp)).Select
    ActiveSheet.Paste
    Range("E1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    ActiveWindow.SmallScroll Down:=-63
    Range("F1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Feuil1").Select
    Columns("E:E").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select

End Sub

a bientot

Bonjour spyderpaint,

J'ai testé ta macro et ça fonctionne parfaitement.

Un grand merci pour le temps que t'as passé à faire cette macro!

Bonjour,

J'essaie d'adapter ce code pour faire la même chose mais sur un classeur différent.

Mais je suis bloqué à la ligne : classeurDestination.Sheets("Feuil1").Select

Voici le code :

Dim classeurSource As Workbook, classeurDestination As Workbook

'ouvrir le classeur source (en lecture seule)

Set classeurSource = Application.Workbooks.Open(Fichier_Travail)

'définir le classeur destination

Set classeurDestination = ThisWorkbook

'copier les données de la "Feuil1" du classeur source vers la "Feuil1" du classeur destination

'classeurSource.Sheets("Feuil1").Cells.Copy classeurDestination.Sheets("Feuil1").Range("A1")

classeurSource.Sheets("Feuil1").Select

Range("A2").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

classeurDestination.Sheets("Feuil1").Select

Range("D1").Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

'fermer le classeur source

classeurSource.Close False

End Sub

Pourriez vous m'aider ?

Rechercher des sujets similaires à "macro copier coller colonnes"