Conserver mise en forme copier coller VBA

leeo01

XLDnaute Nouveau
Bonjour à tous, je viens vers vous car j'ai un problème de macro, me voila coincé.


J'ai une fonction qui permet de copier différents tableaux de différentes feuilles, pour tous les copiés dans une seule feuille. Attention certain de ces tableaux sont variables en terme de taille c’est donc pourquoi la conservation de la mise en forme bloque… En effet dans l’onglet “onduleur”, je peux rentrer un nombre qui pourra faire varier le nombre de ligne de cet onglet, ainsi que celle de l’onglet “tensions de chaînes”. J'aimerai donc modifier la macro pour copier tous ces tableaux en conservant cette mise en forme.

Je vous laisse mon fichier en PJ avec la macro dans le Module 4.

Si vous avez des questions ou si je n'ai pas été assez précis n'hésitez pas à m'envoyer un message.

Léo.
 

Pièces jointes

  • test 2.xlsm
    94 KB · Affichages: 39

leeo01

XLDnaute Nouveau
Salut ! Non, car quand je modifie la valeur de la cellule P1 dans la feuille "onduleurs" la taille du tableau est modfié ( ex: P1= 10 alors mon tableaux aura 10 lignes.. etc). Une fois copié, les cellules ne font plus la même taille..
 

vgendron

XLDnaute Barbatruc
et en faisant un autofit à la fin ?

voir code (que je me suis permis de "simplifier")

VB:
Sub CreationDeLaListe()
Sheets("Feuil1").Cells.Clear 'on commence par effacer la feuille 1

With Sheets("Feuil1")
    Range("ma_liste1").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)

    dlig = Sheets("Onduleurs").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Onduleurs").Range("A1:L" & dlig).SpecialCells(xlCellTypeVisible).Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)

    ligf1 = Sheets("Onduleurs").Range("B" & Rows.Count).End(xlUp).Row - 1
    Sheets("Onduleurs").Range("B" & ligf1).Resize(2).Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
  
    Range("ma_liste3").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
    Range("ma_liste4").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
    Range("ma_liste5").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
  
    dlig = Sheets("Tensions chaînes").Range("B" & Rows.Count).End(xlUp).Row
    Sheets("Tensions chaînes").Range("A1:L" & dlig).SpecialCells(xlCellTypeVisible).Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)

    Range("liste2").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
    Range("liste3").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
    Range("liste4").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
    Range("liste5").Copy Destination:=.Range("A" & .Rows.Count).End(xlUp).Offset(2, 0)
    .Cells.EntireColumn.AutoFit 'autofit de toutes les colonnes
    .Columns(1).ColumnWidth = 20 'on force une taille 20 pour la colonne A
End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 709
Messages
2 081 779
Membres
101 816
dernier inscrit
Jfrcs