Copier /coller les colonnes non masquées d'une feuille sur une autre

Bonjour à la communauté.

Je suis débutant en programmation Vba. J'ai essayé de régler mon problème en adaptant certaines Macro proposées sur le forum, mais ça ne règle pas mon problème.

Aujourd'hui encore, je demande votre aide. mon problème est le suivant:

J'ai un fichier composé de plusieurs feuilles. Et, sur une des feuilles que j'ai nommé "recaputilatif" je veux une écrire :

- une première Macro1 qui va me permettre de copie les données des colonnes de la feuil1 qui ne sont pas masquées et de les coller sur la feuille"récapitulatif".

- une deuxième Macro qui va me permettre de copier les données des colonnes de la feuil2 qui ne sont pas masquées et de les coller sur la feuille "récapitulatif"

-Une troisième Macro qui va me permettre de copier les données des colonnes de la feuil3 qui ne sont pas masquées et de les coller sur la feuille "récapitulatif" ...

et lier à chacune des Macro un bouton qui la lance.

8application.xlsm (48.49 Ko)

Bonjour Some, bonjour le forum,

Pas tres clair ton affaire... Copier ok mais où ? à la suite, en-dessous ?...

Bonsoir ThauThème

Merci pour votre aide.

D'abord, j'efface les données qui sont sur la Feuil "récapitulatif" et je copie les données de la feuil1 que je viens coller à partir de la Range A1 de la feuille récapitulatif.

si c'est les données de la feuil 2 que je veux coller sur la Feuil "récapitulatif" j'efface encore les données qui sont sur la feuil "récapitulatif" avant de coller les données que j'ai copier.

en claire, avant de copier et coller je rends vierge la Feuil récapitulatif avant de coller les données que j'aurai copier sur l'une des "feuil1, feuil3 ou Feuil3.

ne pas coller à la ni à la suite, ni au début, ni à gauche. Vider la feuil et coller les données copier.

Re,

Essaie comme ça :

Private OD As Worksheet
Private OS As Worksheet

Sub copier_COLLER_1()
Set OS = Worksheets("Feuil1")
Set OD = Worksheets("RECAPUTILATIF")
Call Action
End Sub

Sub copier_COLLER_2()
Set OS = Worksheets("Feuil2")
Set OD = Worksheets("RECAPUTILATIF")
Call Action
End Sub

Sub copier_COLLER_3()
Set OS = Worksheets("Feuil3")
Set OD = Worksheets("RECAPUTILATIF")
Call Action
End Sub

Sub copier_COLLER_4()
Set OS = Worksheets("Feuil4")
Set OD = Worksheets("RECAPUTILATIF")
Call Action
End Sub

Sub Action()
OD.Range("A1").CurrentRegion.Clear
OS.Cells.Copy
OD.Range("A1").PasteSpecial xlPasteAll
OD.Activate
OD.Range("A1").Select
End Sub

merci bien, je vais appliquer à mon fichier et vous revenir éventuellement.

Re,

j'ai essayé. Le copier coller marche correctement. Mais, les cellules masquées sont toujours là.

je voudrais que les cellules masquées ne soient plus prises en compte sur la Feuil "récapitulatif".

j'ai essayé. Le copier coller marche correctement. Mais, les colonnes masquées sont toujours là.

je voudraisque les colonnes masquées ne soient plus prises en compte sur la Feuil "récapitulatif".

Re,

Le problème vient des cellules fusionnées. J'ai modifié la procédure Action qui défusionne la source, copie/colle puis refusionne la source et la destination. Il doit y avoir plus simple mais j'ai la flemme...

Sub Action()
OD.Range("A1").CurrentRegion.Clear
OS.Rows(1).UnMerge
Set PL = Application.Union(OS.Columns("A:A"), OS.Columns("F:J"), OS.Columns("M:P"), OS.Columns("S:V"), OS.Columns("Y:AB"), OS.Columns("AD:AG"), OS.Columns("AJ:AM"), OS.Columns("AP:AS"))
PL.Copy
OD.Range("A1").PasteSpecial xlPasteAll
Application.DisplayAlerts = False
OD.Range("B1:E1").Merge
OD.Range("G1:J1").Merge
OD.Range("K1:N1").Merge
OD.Range("O1:R1").Merge
OD.Range("S1:V1").Merge
OD.Range("W1:Z1").Merge
OD.Range("AA1:AD1").Merge
OS.Range("F1:J1").Merge
OS.Range("M1:P1").Merge
OS.Range("S1:V1").Merge
OS.Range("T1:AB1").Merge
OS.Range("AD1:AG1").Merge
OS.Range("AJ1:AM1").Merge
OS.Range("AP1:AS1").Merge
Application.DisplayAlerts = True
OD.Activate
OD.Range("A1").Select
End Sub

Franchement merci. Ça marche correctement

Bonjour.

Après 5 jours de nuits blanches, je ne suis pas parvenu à résoudre une difficulté liée à mon problème de copier/coller auquel vous m’aviez beaucoup aidé. En effet, le code que vous m’aviez donné copie et colle correctement les colonnes de mon choix sur mon fichier auquel j’ai adapté la macro.

Toutefois, je me trouve confronté à un problème de référence (#REFF!). Dans mon classeur original :

Les données de la FEUIL2 sont liées à celles de la FEUIL1

Les données de la FEUIL2 sont divisées en trois (Année1, Année2, Année3)

Sur la feuille (RECAPTILATIF), par la macro1, je colle les données de la zone (‘’Année1’’) que j’ai copié sur la feuil2.

Sur la feuille (RECAPTILATIF), par la macro2, je colle les données de la zone (‘’Année2’’) que j’ai copié sur la feul2.

Sur la feuille (RECAPTILATIF), par la macro3, je colle les données de la zone (‘’Année 3’’) que j’ai copié sur la feul2.

Jusque-là, tout se passe bien. Sauf que dans certaine colonne, en lieu et place des valeurs, il s’affiche (‘REFF’).

Je demande votre aide. Ci-joint le classeur et la macro adapté.

0application.xlsm (51.13 Ko)
Private OD As Worksheet

Private OS As Worksheet

Sub copier_COLLER_1()

Set OS = Worksheets("FEUIL2")

Set OD = Worksheets("RECAPUTILATIF")

OD.Range("A1").CurrentRegion.Clear

OS.Range("A:AT").Copy OD.Range("A1")

OD.Rows(1).UnMerge

Set PL = Application.Union(OD.Columns("A:A"), OD.Columns("F:J"), OD.Columns("L:O"),

OD.Columns("R:U"), OD.Columns("X:AA"), OD.Columns("AF:AI"), OD.Columns("AL:AO"))

PL.Copy

OD.Range("AT1").PasteSpecial xlPasteAll

OD.Range("A:AS").Delete

Application.DisplayAlerts = False

OD.Range("B1:F1").Merge

OD.Range("G1:J1").Merge

OD.Range("K1:N1").Merge

OD.Range("O1:R1").Merge

OD.Range("S1:V1").Merge

OD.Range("W1:Z1").Merge

Application.DisplayAlerts = True

OD.Activate

OD.Range("A1").Select

End Sub
Sub copier_COLLER_2()

Set OS = Worksheets("FEUIL2")

Set OD = Worksheets("RECAPUTILATIF")

OD.Range("A1").CurrentRegion.Clear

OS.Range("AW:CV").Copy OD.Range("A1")

OD.Rows(1).UnMerge

Set PL = Application.Union(OD.Columns("A:B"), OD.Columns("G:K"), OD.Columns("O:R"),

OD.Columns("U:X"), OD.Columns("AA:AD"), OD.Columns("AI:AL"), OD.Columns("AO:AR"))

PL.Copy

OD.Range("BA1").PasteSpecial xlPasteAll

OD.Range("A:AZ").Delete

Application.DisplayAlerts = False

OD.Range("C1:G1").Merge

OD.Range("H1:K1").Merge

OD.Range("L1:O1").Merge

OD.Range("P1:S1").Merge

OD.Range("T1:W1").Merge

OD.Range("X1:AA1").Merge

Application.DisplayAlerts = True

OD.Activate

OD.Range("B1").Select

End Sub
Sub copier_COLLER_3()

Set OS = Worksheets("FEUIL2")

Set OD = Worksheets("RECAPUTILATIF")

OD.Range("A1").CurrentRegion.Clear

OS.Range("CY:EI").Copy OD.Range("A1")

OD.Rows(1).UnMerge

Set PL = Application.Union(OD.Columns("A:B"), OD.Columns("G:K"), OD.Columns("N:Q"), OD.Columns("T:W"), OD.Columns("Z:AC"), OD.Columns("AH:AK"))

PL.Copy

OD.Range("AL1").PasteSpecial xlPasteAll

OD.Range("A:AK").Delete

Application.DisplayAlerts = False

OD.Range("C1:G1").Merge

OD.Range("H1:K1").Merge

OD.Range("L1:O1").Merge

OD.Range("P1:S1").Merge

OD.Range("T1:W1").Merge

Application.DisplayAlerts = True

OD.Activate

OD.Range("B1").Select

End Sub
Rechercher des sujets similaires à "copier coller colonnes masquees feuille"