Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Reproduire la largeur de colonne

23 réponses
Avatar
Bruno RCSC
Bonjour,

Obligé de recréer un fichier composé de 46 onglets différents, je voudrais
savoir s'il est possible par macro à partir du fichier initial d'obtenir les
mêmes largeurs de colonne pour le nouveau fichier et ce pour tous les
onglets ? Dois je utiliser l'enregistreur de macro ?
Le fichier initial contient tellement de styles différents qu'Excel plante,
j'ai supprimé tous les styles sauf le "normal" et le "monétaire" mais la
largeur des colonnes a variée.

Sous Excel 2002.

Merci pour votre aide.

BH

10 réponses

1 2 3
Avatar
FFO
Salut Bruno
Soit le Classeur1.xls le classeur source (46 onglets) le Classeur2.xls celui
de destination

Je te propose ce code :

For i = 1 To Workbooks("Classeur1.xls").Sheets.Count
Workbooks("Classeur1.xls").Sheets(i).Copy
Workbooks("Classeur2.xls").ActiveSheet
Workbooks("Classeur2.xls").ActiveSheet.Name =
Workbooks("Classeur1.xls").Sheets(i).Name
Next

Celà devrait convenir
Dis moi !!!
Avatar
lSteph
Bonjour,

Si on disait dans la feuille qui a les bonnes largeurs Copier les
colonnes dans l'autre Collage Spécial Formats
Mais c'est sans doute là le pb que cela embarque le reste des mises en
forme!
Voici à adapter aux noms de tes Workbooks et Worksheets :

Sub colarg()
Dim i As Integer, Sh1 As Worksheet, Sh2 As Worksheet
Set Sh2 = Workbooks("Classeur2").Worksheets("nouvelle")
Set Sh1 = Workbooks("Classeur3").Worksheets("Feuil1")
Application.ScreenUpdating = False
For i = 1 To Sh2.Columns.Count
Sh2.Columns(i).ColumnWidth = Sh1.Columns(i).ColumnWidth
Next
End Sub


--
lSteph

On 1 août, 11:43, "Bruno RCSC" wrote:
Bonjour,

Obligé de recréer un fichier composé de 46 onglets différents, je voudrais
savoir s'il est possible par macro à partir du fichier initial d'obteni r les
mêmes largeurs de colonne pour le nouveau fichier et ce pour tous les
onglets ? Dois je utiliser l'enregistreur de macro ?
Le fichier initial contient tellement de styles différents qu'Excel pla nte,
j'ai supprimé tous les styles sauf le "normal" et le "monétaire" mais la
largeur des colonnes a variée.

Sous Excel 2002.

Merci pour votre aide.

BH



'
Avatar
denis le breton
essaie cela
Sub test_largeur()
lalargeur = Columns("c:c").Width
lalargeur = lalargeur / 5.33832826036057 ' conversion de pixel en cm ou qq
comme ça
'ColumnsWidth("c:c") = lalargeur
Columns("A:B").Select
Selection.ColumnWidth = lalargeur
End Sub
Cordialement
Denis

"Bruno RCSC" a écrit :

Bonjour,

Obligé de recréer un fichier composé de 46 onglets différents, je voudrais
savoir s'il est possible par macro à partir du fichier initial d'obtenir les
mêmes largeurs de colonne pour le nouveau fichier et ce pour tous les
onglets ? Dois je utiliser l'enregistreur de macro ?
Le fichier initial contient tellement de styles différents qu'Excel plante,
j'ai supprimé tous les styles sauf le "normal" et le "monétaire" mais la
largeur des colonnes a variée.

Sous Excel 2002.

Merci pour votre aide.

BH





Avatar
lSteph
On 1 août, 11:43, "Bruno RCSC" wrote:
Bonjour,

Obligé de recréer un fichier composé de 46 onglets différents, je voudrais


Oupss...
pour chaque onglet:

Sub clarg()
Dim i As Integer, Sh1 As Worksheet, Sh As Worksheet

Set Sh1 = Workbooks("Classeur3").Worksheets("Feuil1")
Application.ScreenUpdating = False
For Each Sh In Workbooks("Classeur2").Worksheets
For i = 1 To Sh.Columns.Count
Sh.Columns(i).ColumnWidth = Sh1.Columns(i).ColumnWidth
Next i
Next Sh
End Sub



'lSteph
Avatar
Modeste
Bonsour® lSteph avec ferveur ;o))) vous nous disiez :

For i = 1 To Sh.Columns.Count
Sh.Columns(i).ColumnWidth = Sh1.Columns(i).ColumnWidth
Next i







heu ... cela ne sera pas plus simple ????
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse


--
--
@+
;o)))
Avatar
lSteph
...enfin pour chaque onglet avec à l'origine des largeurs différentes
dans chaque onglet aussi!

Sub clarg()
Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook

Set wb1 = Workbooks("Classeur3")
Set wb2 = Workbooks("Classeur2")
Application.ScreenUpdating = False
With wb2
For j = 1 To .Worksheets.Count
With .Worksheets(j)
For i = 1 To .Columns.Count
.Columns(i).ColumnWidth = _
wb1.Worksheets(j).Columns(i).ColumnWidth
Next i
End With
Next j
End With
End Sub


'lSteph

On 1 août, 11:43, "Bruno RCSC" wrote:
Bonjour,

Obligé de recréer un fichier composé de 46 onglets différents, je voudrais
savoir s'il est possible par macro à partir du fichier initial d'obteni r les
mêmes largeurs de colonne pour le nouveau fichier et ce pour tous les
onglets ? Dois je utiliser l'enregistreur de macro ?
Le fichier initial contient tellement de styles différents qu'Excel pla nte,
j'ai supprimé tous les styles sauf le "normal" et le "monétaire" mais la
largeur des colonnes a variée.

Sous Excel 2002.

Merci pour votre aide.

BH


Avatar
lSteph
Oui certes, mais je ne suis pas certain que le pastis de largeur soit
disponible dans toutes versions!

;o))

On 1 août, 12:27, "Modeste" wrote:
Bonsour® lSteph avec ferveur ;o))) vous nous disiez :

>>> For i = 1 To Sh.Columns.Count
>>> Sh.Columns(i).ColumnWidth = Sh1.Columns(i).ColumnWidth
>>> Next i

heu ... cela ne sera pas plus simple ????
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone , _
SkipBlanks:úlse, Transpose:úlse

--
--
@+
;o)))


Avatar
Modeste
Bonsour® lSteph avec ferveur ;o))) vous nous disiez :

Oui certes, mais je ne suis pas certain que le pastis de largeur soit
disponible dans toutes versions!



Tabernak !!!
Bruno RCSC avait bien précisé :
Sous Excel 2002







J'ai !!!
;o)))

--
@+
;o)))
Avatar
lSteph
Oui j'ai justement bien lu (Ost..!!!)
mais pô moi (jai pas 2002 sous la main ) donc dans le doute...!

(Faudrait l'intégrer à ma troisième suggestion)
je te laisse c'est justement l'heur' du Past...

;o)) Amitiés

--
lSteph


On 1 août, 12:56, "Modeste" wrote:
Bonsour® lSteph avec ferveur ;o))) vous nous disiez :

> Oui certes, mais je ne suis pas certain que le pastis de largeur soit
> disponible dans toutes versions!

Tabernak !!!
Bruno RCSC avait bien précisé :

>>> Sous Excel 2002

J'ai !!!
;o)))

--
@+
;o)))


Avatar
Bruno RCSC
Merci à tous les 3 pour vos réponses.

Pour Denis, je n'ai pas compris ta proposition.

Pour FFO, cela ne convient pas, je ne veux pas copier l'ensemble des
onglets, je souhaite ne copier que la valeur de largeur des colonnes.

Pour Steph, cela fonctionne mais que pour le 1er onglet. Il copie
parfaitement les valeurs de l'onglet1 du classeur1 mais vers tous les
onglets du classeur2 or je voudrais que les valeurs de l'onglet1 du
classeur1 se duplique sur l'onglet1 du classeur2, puis l'onglet2 de
classeur1 vers l'onglet2 du classeur2 et ainsi de suite, sachant que les
onglets ont excactement le même nom en classeur1 et classeur2.

J'essaie de fournir une explication complémentaire :
J'ouvre le fichier initial (toto.xls) et ses 46 onglets.
Je supprime tous les styles exitants ne conservant que "normal".
A ce stade, la plus part des colonnes changent de largeur.
J'enregistre sous un nouveau nom le résultat obtenu (toto2.xls).
Comment faire pour que les largeurs de colonnes des 46 onglets de TOTO.XLS
soient les mêmes dans TOTO2.XLS ?

Merci pour votre aide.

BH.
1 2 3