Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

mise en forme et copie feuille en vba

  • Initiateur de la discussion Initiateur de la discussion yoyosse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

yoyosse

Guest
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
 
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.

@+
 
Re : mise en forme et copie feuille en vba

Bonjour Porcinet,

pour moi, l'idéal serait qu'il copie la plage de cellule, et si possible, qu'il conserve les dimensions des colonnes.

Merci pour ton aide
 
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

@+
 
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
 
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

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
638
Z
Réponses
1
Affichages
602
M
Réponses
5
Affichages
1 K
marcenana
M
M
Réponses
4
Affichages
975
mimich_88
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…