mise en forme et copie feuille en vba

yoyosse

XLDnaute Nouveau
Bonjour le forum ;)

J'ai une macro qui copie un certain nombre de feuilles avec un modèle (se nommant TDB).
La formule de copie utilisée est :

Sheets("TDB").Range("A1:AZ100").Copy Destination:=ActiveSheet.Range("A1")

Mon problème est que lors de la copie de ce modèle, il ne conserve pas les mises en formes. Par exemple, les colonnes n'ont pas les mêmes longueurs (en fait j'ai l'impression qu'il créé en premier une nouvelle feuille, puis il insère les éléments figurant dans ma feuille modèle)

Quelqu'un aurait une petite astuce pour y remédier ?

En vous remerkiant bien sincèrement
 

porcinet82

XLDnaute Barbatruc
Re : mise en forme et copie feuille en vba

Salut,

Ton code ne copie pas une feuille, mais une plage de cellule a l'intérieur d'une feuille, qu'il copie sur une autre feuille.
Ton code garde les mises en forme de la plage, couleur..., mais pas celles des colonnes. Il te faut rajouter un morceau de code pour redimensionner les colonnes, ou copier directement les colonnes entièrement, ou encore copier carrement la feuille.
Dis nous ce qui te convient le plus.

@+
 

porcinet82

XLDnaute Barbatruc
Re : mise en forme et copie feuille en vba

re,

Bon je n'arrivais pas a faire ce que je souhaitais, du coup j'ai opté pour la solution de facilité :
Code:
Sub Macro1()
Dim j As Integer
Application.ScreenUpdating = False
With Sheets("TDB")
    .Range("A1:AZ100").Copy Destination:=ActiveSheet.Range("A1")
    For j = 1 To 256
        Columns(j).ColumnWidth = .Columns(j).ColumnWidth
    Next j
End With
Application.ScreenUpdating = True
End Sub

@+
 

yoyosse

XLDnaute Nouveau
Re : mise en forme et copie feuille en vba

Merci ça marche vraiment impec, pour les colonnes.

Je vais faire mon boulet, mais je veux la même chose pour les lignes :).
J'ai essayé de créer une nouvelle boucle dans la boucle j, mais impossible de faire tourner la macro (c'est bien row pour les lignes ?)

Encore une fois merci pour votre disponibilité.

Cordialement
 

porcinet82

XLDnaute Barbatruc
Re : mise en forme et copie feuille en vba

re,

Voici le code modifié :
Code:
Sub Macro1()
Dim j As Long
Application.ScreenUpdating = False
With Sheets("TDB")
    .Range("A1:AZ100").Copy Destination:=ActiveSheet.Range("A1")
    For j = 1 To 256
        Columns(j).ColumnWidth = .Columns(j).ColumnWidth
    Next j
    For j = 1 To 100
        Rows(j).RowHeight = .Rows(j).RowHeight
    Next j
End With
Application.ScreenUpdating = True
End Sub

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 697
Messages
2 091 074
Membres
104 751
dernier inscrit
yanmath