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.
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 !!!
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
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 !!!
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
'
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" <ats....@wanadoo.fr> 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.
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
'
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
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.
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
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
On 1 août, 11:43, "Bruno RCSC" <ats....@wanadoo.fr> 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
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
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)))
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:=False, Transpose:=False
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)))
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
...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" <ats....@wanadoo.fr> 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.
...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
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)))
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" <nom...@nomail.net> 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:=False, Transpose:=False
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)))
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.
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 ?
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 ?