Macro de recopie qui sature un onglet Excel

Bonsoir,

J'ai crée une macro qui recopie des données d'un classeur A vers le classeur B

Quand la macro est exécutée, elle recopie des données du classeur A vers le classeur B

Par contre le classeur B (il s'appelle collaborateur) devient énorme avec plus de 104000 lignes alors que normalement 100 ligne suffirait. Je constate qu'il y a autant de ligne en tapant CTRL+END et pourtant beaucoup de cases sont vides de données.

Je précise que le classeur A contient des valeurs filtrées.

Je vous donne le code VBA ci-dessous auriez-vous une idée de ce qui crèe cela ?

Sub Copie_mes_allocations()

'

' Copie_mes_allocations Macro

' Faire une copie du tableau de l'onglet Plan Activité Charge

'

'

Columns("A:N").Select

Selection.Copy

Sheets("Collaborateur").Select

ActiveSheet.Paste

Columns("B:B").EntireColumn.AutoFit

Columns("C:C").EntireColumn.AutoFit

Columns("D:D").EntireColumn.AutoFit

Columns("E:E").EntireColumn.AutoFit

Columns("F:F").EntireColumn.AutoFit

Columns("G:G").EntireColumn.AutoFit

End Sub

Merci pour votre future aide sur le sujet

Je n'ai pas mis la macro complète. La voici

Sub Recopie_tableau()

' Cette macro permet de créer un tableau dans un onglet collaborateur pour mettre en forme les heures par an pour une ou plusieurs personnes

' Le bon fonctionnement de cette macro nécessite d'avoir sélectionner au préalable dans l'onglet PLAN-ACTIVITES_CHARGE les données qui nous intéresse dans la colonne xxx

'

MsgBox ("Cliquer sur OK pour démarrer la mise en forme. Pendant l'opération de mise en forme SVP ne rien faire et attendez que la fenêtre qui indiquera la fin de l'opération de mise en forme apparaisse. Cliquer sur OK pour démarrer l'opération")

Sheets("Collaborateur").Select

Cells.Select

Selection.Delete Shift:=xlUp

Sheets("PLAN_ACTIVITES_CHARGE_2019").Select

Columns("A:N").Select

Selection.SpecialCells(xlCellTypeVisible).Select

Selection.Copy

Sheets("Collaborateur").Select

Range("A1").Select

ActiveSheet.Paste

Columns("A:A").EntireColumn.AutoFit

Columns("B:B").EntireColumn.AutoFit

Columns("C:C").EntireColumn.AutoFit

Columns("D:D").EntireColumn.AutoFit

Columns("F:F").EntireColumn.AutoFit

Columns("E:E").EntireColumn.AutoFit

Columns("G:G").EntireColumn.AutoFit

Columns("E:E").Select

Selection.EntireColumn.Hidden = True

Range("P6").Select

Application.CutCopyMode = False

MsgBox ("Les donnnées sont triées, je vais maintenant les mettre en forme. Cliquez sur OK")

Bonjour,

Supprime les onglets saturés et recrée les "propre".

Ensuite, dans ta macro, ne recopie pas les colonnes entières

Columns("A:N").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy

mais uniquement les données utiles. Donc pas "A:N" d'un seul bloc mais "A1:N" & derLderL sera la dernière ligne renseignée. Ou mieux encore Range("A1").currentregion

Bonjour Steelson,

J'ai essayé mais il doit me manquer quelque chose encore.

J'ai crée une variable

Derligne = Range("G2").End(xlDown).Row

Ensuite j'ai écrit Columns("A1:N" & Derligne).Select

Peux-tu me dire quel est le bug dans mon texte avec Columns ?

Merci

J'ai trouvé au lieu d'écrire Columns, j'ai écrit Range et ca fonctionne.

Merci de l'aide. Je suis vraiment content de l'efficacité de ce forum

Parfait !

Rechercher des sujets similaires à "macro recopie qui sature onglet"