cloner hauteurs lignes et largeurs colonnes sur plusieurs feuilles

eucliwood

XLDnaute Nouveau
bonjour @tous,

me revoilà avec une nouvelle petite question (en attendant les plus grosses... plus tard :) )

j'ai enfin trouvé comment reproduire la mise en page d'une feuille sur d'autres feuilles, du moins c'est ce que je croyais car le code suivant fonctionne pour les lignes mais pas les colonnes! (c'est le comble puisque qu'en passant par la barre des menus, avec le collage spécial, c'est le contraire!)

alors voilà ce petit code qui me met 'incompatibilité de type' dans la 2ème boucle for/next :

Code:
Sub test1()
'clone hauteur de ligne et largeur de colonne de la feuille 1
'sur les feuilles 2 à 12

Dim R As Range, C As Range, i%

'au cas où, pr lignes, colonnes nombreuses:
Application.ScreenUpdating = False
Application.Calculation = xlManual

For i = 2 To 12

    For Each R In Worksheets(1).Range("A1:AD30").Rows
            Worksheets(i).Rows(R.Row).RowHeight = R.RowHeight
    Next R

    For Each C In Worksheets(1).Range("A1:AD30").Columns
            [color=yellow]Worksheets(i).Columns(C.Columns).ColumnWidth = C.ColumnWidth[/color]
    
    Next C

Next i

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub

si quelqu'un a une idée... je me dis que la variable C ne devrait pas être de type Range, mais quoi alors? j'ai juste recopié ce qui marchait pour les lignes.

merci
 

eucliwood

XLDnaute Nouveau
Re : cloner hauteurs lignes et largeurs colonnes sur plusieurs feuilles

alors si j'enlève ce 's', le message d'erreur devient : "propriété ou méthode non gérée par cet objet"

et si j'enlève le 's' de la ligne au dessus, dans le for, le message devient : "objet requis"

je sèche un peu là...


EDIT: autant pour moi, je me suis trompé de s, ah lala! le genre d'erreur qui rend fou.

un grand merci JCGL
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : cloner hauteurs lignes et largeurs colonnes sur plusieurs feuilles

Bonjour à tous,

Peux-tu essayer ( fonctionne chez moi...) :

VB:
Option Explicit


Sub MeF()
    Dim R As Range, C As Range, i%


    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
    End With


    For i = 2 To 12
        For Each R In Worksheets(1).Rows("1:30")
            Worksheets(i).Rows(R.Row).RowHeight = R.RowHeight
        Next R
        For Each C In Worksheets(1).Columns("A:AD")
            Worksheets(i).Columns(C.Column).ColumnWidth = C.ColumnWidth
        Next C
    Next i


    With Application
        .ScreenUpdating = True
        .Calculation = xlAutomatic
    End With
End Sub

A + à tous

Edition : Oups pas rafraîchi...
 

laurent950

XLDnaute Accro
Re : cloner hauteurs lignes et largeurs colonnes sur plusieurs feuilles

Bonsoir a tous,


VB:
Sub test1()
 ' clone hauteur de ligne et largeur de colonne de la feuille 1
 ' on peux copier la largeur des colonnes 
 ' Mais je ne sais pas copier la largeur des lignes
 ' sur les feuilles 2 à 12 ( J'ai definit une hauteur Manuellement "Ligne et Colonnes"

Dim c As Worksheet

'au cas où, pr lignes, colonnes nombreuses:
 Application.ScreenUpdating = False

    For Each c In Worksheets
    ' Condition sur le Nom de la Feuil
           c.Range("A1:AD30").RowHeight = 25 ' largeur de la igne 25 ( a definir)
           c.Range("A1:AD30").ColumnWidth = 13 ' Largeur des colonnes 13 (a définir)
    Next c
 
Application.ScreenUpdating = True
 End Sub


' Ps : La variable "C" est en faite instancier avec la classe Workseet et "C" In = parcour la collection des feuilles Worksheets du classeur

Laurent
 
Dernière édition:

chappyporfaro

XLDnaute Junior
Re : cloner hauteurs lignes et largeurs colonnes sur plusieurs feuilles

Bonjour à tous,

@JCGL : Si j'ai bien saisi, le code montré utilise la première feuille comme référence afin d'ajuster les 11 autres feuilles du classeur.
Dans mon cas, j'ai 33 feuilles (une feuille par mois plus d'autres feuilles masquées). Admettons que je modifie la disposition de la feuille du mois de mai et que je veuille appliquer ces ajustements aux 11 autres feuilles mensuelles mais sans toucher aux autres feuilles du tableau qui ne sont pas mensuelles, comment devrais-je m'y prendre?
Devrais-je copier les largeurs de colonne et les hauteurs de ligne de la feuille à cloner et sélectionner les feuilles "cibles" avant d'appliquer ces changements?

Merci
 

Discussions similaires

Réponses
7
Affichages
328

Statistiques des forums

Discussions
312 239
Messages
2 086 508
Membres
103 237
dernier inscrit
smbt-excel