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.
Je n'ai pas vérifié de la version 1997 à 2007 d'excel, (de mémoire, il y a au moins problème avec la version 2000) mais la constante "texte", l'usage de "xlPasteColumnWidths" retourne une erreur et pour contourner ceci, il s'agit d'utiliiser sa constante numérique "8" et tout devrait être OK pour toutes les versions d'excel !
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)))
Je n'ai pas vérifié de la version 1997 à 2007 d'excel,
(de mémoire, il y a au moins problème avec la version 2000)
mais la constante "texte", l'usage de "xlPasteColumnWidths"
retourne une erreur et pour contourner ceci, il s'agit d'utiliiser sa
constante numérique "8" et tout devrait être OK pour toutes les
versions d'excel !
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
OLuqLF88IHA.3648@TK2MSFTNGP03.phx.gbl...
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
Je n'ai pas vérifié de la version 1997 à 2007 d'excel, (de mémoire, il y a au moins problème avec la version 2000) mais la constante "texte", l'usage de "xlPasteColumnWidths" retourne une erreur et pour contourner ceci, il s'agit d'utiliiser sa constante numérique "8" et tout devrait être OK pour toutes les versions d'excel !
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
Regarde ma troisième proposition au lieu de la seconde mais on devrait pouvoir utiliser ce que suggéré par Modeste et MichDenis
J'y reviens..
@+ -- lSteph
On 1 août, 13:08, "Bruno RCSC" wrote:
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.XL S soient les mêmes dans TOTO2.XLS ?
Merci pour votre aide.
BH.
Regarde ma troisième proposition au lieu de la seconde
mais on devrait pouvoir utiliser ce que suggéré par Modeste et
MichDenis
J'y reviens..
@+
--
lSteph
On 1 août, 13:08, "Bruno RCSC" <ats....@wanadoo.fr> wrote:
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.XL S
soient les mêmes dans TOTO2.XLS ?
Regarde ma troisième proposition au lieu de la seconde mais on devrait pouvoir utiliser ce que suggéré par Modeste et MichDenis
J'y reviens..
@+ -- lSteph
On 1 août, 13:08, "Bruno RCSC" wrote:
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.XL S soient les mêmes dans TOTO2.XLS ?
Merci pour votre aide.
BH.
Bruno RCSC
Génial, bravo et merci. Le code donne le résultat demandé MAIS Pourquoi dans l'un des fichiers, pour une colonne donnée j'ai largeur =9.50 (62 pixels) et dans l'autre fichier j'ai largeur =9.50 (81 pixels) ? A quoi correspond cette différence sachant que dans un cas j'ai des ## ?
BH
"lSteph" a écrit dans le message de news:
...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'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
Génial, bravo et merci.
Le code donne le résultat demandé
MAIS
Pourquoi dans l'un des fichiers, pour une colonne donnée j'ai largeur =9.50
(62 pixels) et dans l'autre fichier j'ai largeur =9.50 (81 pixels) ?
A quoi correspond cette différence sachant que dans un cas j'ai des ## ?
BH
"lSteph" <gmLSteph@gmail.com> a écrit dans le message de news:
cc6b8f0f-b536-469d-a171-a3807932cdc1@34g2000hsh.googlegroups.com...
...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'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.
Génial, bravo et merci. Le code donne le résultat demandé MAIS Pourquoi dans l'un des fichiers, pour une colonne donnée j'ai largeur =9.50 (62 pixels) et dans l'autre fichier j'ai largeur =9.50 (81 pixels) ? A quoi correspond cette différence sachant que dans un cas j'ai des ## ?
BH
"lSteph" a écrit dans le message de news:
...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'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, 13:08, "Bruno RCSC" wrote:
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
Essaie donc ainsi:
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 wb1 For j = 1 To .Worksheets.Count With .Worksheets(j) .Columns.Copy wb2.Worksheets(j).Columns.PasteSpecial _ Paste:=xlPasteColumnWidths
End With Next j End With End Sub
'lSteph
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.XL S soient les mêmes dans TOTO2.XLS ?
Merci pour votre aide.
BH.
On 1 août, 13:08, "Bruno RCSC" <ats....@wanadoo.fr> wrote:
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
Essaie donc ainsi:
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 wb1
For j = 1 To .Worksheets.Count
With .Worksheets(j)
.Columns.Copy
wb2.Worksheets(j).Columns.PasteSpecial _
Paste:=xlPasteColumnWidths
End With
Next j
End With
End Sub
'lSteph
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.XL S
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
Essaie donc ainsi:
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 wb1 For j = 1 To .Worksheets.Count With .Worksheets(j) .Columns.Copy wb2.Worksheets(j).Columns.PasteSpecial _ Paste:=xlPasteColumnWidths
End With Next j End With End Sub
'lSteph
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.XL S soient les mêmes dans TOTO2.XLS ?
Merci pour votre aide.
BH.
Modeste
Bonsour® Bruno RCSC avec ferveur ;o))) vous nous disiez :
Génial, bravo et merci. Le code donne le résultat demandé MAIS Pourquoi dans l'un des fichiers, pour une colonne donnée j'ai largeur =9.50 (62 pixels) et dans l'autre fichier j'ai largeur =9.50 (81 pixels) ? A quoi correspond cette différence sachant que dans un cas j'ai des ## ?
la police standard du style normal n'est pas la même Menu Outils > options > onglet General Police standard : taille :
voir aussi :Menu Format > Styles... Nom du style : Normal -- @+ ;o)))
Bonsour® Bruno RCSC avec ferveur ;o))) vous nous disiez :
Génial, bravo et merci.
Le code donne le résultat demandé
MAIS
Pourquoi dans l'un des fichiers, pour une colonne donnée j'ai largeur
=9.50 (62 pixels) et dans l'autre fichier j'ai largeur =9.50 (81
pixels) ?
A quoi correspond cette différence sachant que dans un cas j'ai des
## ?
la police standard du style normal n'est pas la même
Menu Outils > options > onglet General
Police standard :
taille :
voir aussi :Menu Format > Styles...
Nom du style : Normal
--
@+
;o)))
Bonsour® Bruno RCSC avec ferveur ;o))) vous nous disiez :
Génial, bravo et merci. Le code donne le résultat demandé MAIS Pourquoi dans l'un des fichiers, pour une colonne donnée j'ai largeur =9.50 (62 pixels) et dans l'autre fichier j'ai largeur =9.50 (81 pixels) ? A quoi correspond cette différence sachant que dans un cas j'ai des ## ?
la police standard du style normal n'est pas la même Menu Outils > options > onglet General Police standard : taille :
voir aussi :Menu Format > Styles... Nom du style : Normal -- @+ ;o)))
Bruno RCSC
Steph, ton dernier post est Top. Sincèrement,merci.
En résumé, pour les amateurs, voici le code qu'il faut utiliser (sous excel 2002) :
Sub steph() Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur_initial.xls") Set wb2 = Workbooks("classeur_final.xls") Application.ScreenUpdating = False With wb1 For j = 1 To .Worksheets.Count With .Worksheets(j) .Columns.Copy wb2.Worksheets(j).Columns.PasteSpecial _ Paste:=xlPasteColumnWidths
End With Next j End With
End Sub
Merci à tous. BH.
Steph, ton dernier post est Top.
Sincèrement,merci.
En résumé, pour les amateurs, voici le code qu'il faut utiliser (sous excel
2002) :
Sub steph()
Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur_initial.xls")
Set wb2 = Workbooks("classeur_final.xls")
Application.ScreenUpdating = False
With wb1
For j = 1 To .Worksheets.Count
With .Worksheets(j)
.Columns.Copy
wb2.Worksheets(j).Columns.PasteSpecial _
Paste:=xlPasteColumnWidths
Steph, ton dernier post est Top. Sincèrement,merci.
En résumé, pour les amateurs, voici le code qu'il faut utiliser (sous excel 2002) :
Sub steph() Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur_initial.xls") Set wb2 = Workbooks("classeur_final.xls") Application.ScreenUpdating = False With wb1 For j = 1 To .Worksheets.Count With .Worksheets(j) .Columns.Copy wb2.Worksheets(j).Columns.PasteSpecial _ Paste:=xlPasteColumnWidths
End With Next j End With
End Sub
Merci à tous. BH.
FFO
Rebonjours Bruno Je me permet d'insister fort de tes dernières explications Avec ma proposition corrigée ainsi :
Copie = Workbooks.Add.Name For i = 1 To Workbooks("toto.xls").Sheets.Count Workbooks("toto.xls").Sheets(i).Copy Workbooks(Copie).ActiveSheet Workbooks(Copie).ActiveSheet.Name = Workbooks("toto.xls").Sheets(i).Name Workbooks(Copie).ActiveSheet.Cells.Clear Next
Il suffit avec ce code d'ouvrir le classeur toto.xls et de l'éxécuter Un nouveau classeur sera automatiquement créé avec les 46 Onglets à l'identique de ceux du classeur toto.xls en ce qui concerne le format des colonnes et le nom des Onglets et sans aucune valeur
Il ne resetera plus qu'à l'enregistrer
Celà devrait convenir Dis moi !!!
Rebonjours Bruno
Je me permet d'insister fort de tes dernières explications
Avec ma proposition corrigée ainsi :
Copie = Workbooks.Add.Name
For i = 1 To Workbooks("toto.xls").Sheets.Count
Workbooks("toto.xls").Sheets(i).Copy Workbooks(Copie).ActiveSheet
Workbooks(Copie).ActiveSheet.Name = Workbooks("toto.xls").Sheets(i).Name
Workbooks(Copie).ActiveSheet.Cells.Clear
Next
Il suffit avec ce code d'ouvrir le classeur toto.xls et de l'éxécuter
Un nouveau classeur sera automatiquement créé avec les 46 Onglets à
l'identique de ceux du classeur toto.xls en ce qui concerne le format des
colonnes et le nom des Onglets et sans aucune valeur
Rebonjours Bruno Je me permet d'insister fort de tes dernières explications Avec ma proposition corrigée ainsi :
Copie = Workbooks.Add.Name For i = 1 To Workbooks("toto.xls").Sheets.Count Workbooks("toto.xls").Sheets(i).Copy Workbooks(Copie).ActiveSheet Workbooks(Copie).ActiveSheet.Name = Workbooks("toto.xls").Sheets(i).Name Workbooks(Copie).ActiveSheet.Cells.Clear Next
Il suffit avec ce code d'ouvrir le classeur toto.xls et de l'éxécuter Un nouveau classeur sera automatiquement créé avec les 46 Onglets à l'identique de ceux du classeur toto.xls en ce qui concerne le format des colonnes et le nom des Onglets et sans aucune valeur
Il ne resetera plus qu'à l'enregistrer
Celà devrait convenir Dis moi !!!
lSteph
Bonjour FFO,
Tu te demandes sans doute pourquoi est-on allé chercher un truc plus compliqué. Dans une solution comme celle que tu propose, on embarque les formats et selon ce que nous avons compris c'est ce qui pose souci à Bruno qui ne veut que les largeurs de colonnes. Sinon il suffirait effectivement de supprimer les valeurs et de faire Enregistrer sous un nouveau classeur.
Cordialement.
-- lSteph
On 1 août, 14:34, FFO wrote:
Rebonjours Bruno Je me permet d'insister fort de tes dernières explications Avec ma proposition corrigée ainsi :
Copie = Workbooks.Add.Name For i = 1 To Workbooks("toto.xls").Sheets.Count Workbooks("toto.xls").Sheets(i).Copy Workbooks(Copie).ActiveSheet Workbooks(Copie).ActiveSheet.Name = Workbooks("toto.xls").Sheets(i).Nam e Workbooks(Copie).ActiveSheet.Cells.Clear Next
Il suffit avec ce code d'ouvrir le classeur toto.xls et de l'éxécuter Un nouveau classeur sera automatiquement créé avec les 46 Onglets à l'identique de ceux du classeur toto.xls en ce qui concerne le format des colonnes et le nom des Onglets et sans aucune valeur
Il ne resetera plus qu'à l'enregistrer
Celà devrait convenir Dis moi !!!
Bonjour FFO,
Tu te demandes sans doute pourquoi est-on allé chercher un truc plus
compliqué.
Dans une solution comme celle que tu propose, on embarque les formats
et selon
ce que nous avons compris c'est ce qui pose souci à Bruno qui ne veut
que les largeurs de colonnes.
Sinon il suffirait effectivement de supprimer les valeurs et de faire
Enregistrer sous un nouveau classeur.
Cordialement.
--
lSteph
On 1 août, 14:34, FFO <F...@discussions.microsoft.com> wrote:
Rebonjours Bruno
Je me permet d'insister fort de tes dernières explications
Avec ma proposition corrigée ainsi :
Copie = Workbooks.Add.Name
For i = 1 To Workbooks("toto.xls").Sheets.Count
Workbooks("toto.xls").Sheets(i).Copy Workbooks(Copie).ActiveSheet
Workbooks(Copie).ActiveSheet.Name = Workbooks("toto.xls").Sheets(i).Nam e
Workbooks(Copie).ActiveSheet.Cells.Clear
Next
Il suffit avec ce code d'ouvrir le classeur toto.xls et de l'éxécuter
Un nouveau classeur sera automatiquement créé avec les 46 Onglets à
l'identique de ceux du classeur toto.xls en ce qui concerne le format des
colonnes et le nom des Onglets et sans aucune valeur
Tu te demandes sans doute pourquoi est-on allé chercher un truc plus compliqué. Dans une solution comme celle que tu propose, on embarque les formats et selon ce que nous avons compris c'est ce qui pose souci à Bruno qui ne veut que les largeurs de colonnes. Sinon il suffirait effectivement de supprimer les valeurs et de faire Enregistrer sous un nouveau classeur.
Cordialement.
-- lSteph
On 1 août, 14:34, FFO wrote:
Rebonjours Bruno Je me permet d'insister fort de tes dernières explications Avec ma proposition corrigée ainsi :
Copie = Workbooks.Add.Name For i = 1 To Workbooks("toto.xls").Sheets.Count Workbooks("toto.xls").Sheets(i).Copy Workbooks(Copie).ActiveSheet Workbooks(Copie).ActiveSheet.Name = Workbooks("toto.xls").Sheets(i).Nam e Workbooks(Copie).ActiveSheet.Cells.Clear Next
Il suffit avec ce code d'ouvrir le classeur toto.xls et de l'éxécuter Un nouveau classeur sera automatiquement créé avec les 46 Onglets à l'identique de ceux du classeur toto.xls en ce qui concerne le format des colonnes et le nom des Onglets et sans aucune valeur
Il ne resetera plus qu'à l'enregistrer
Celà devrait convenir Dis moi !!!
FFO
Salut lSteph
Je te rassure aucune proposition de qui que soit me parait compliqué Je les trouve toujours trés interressante et ne manque pas une occasion de les capitaliser au moins pour ma formation personnelle
Vous avez tous d'excellentes solutions que je garderais bien de critiquer Et c'est trés souvent par la petite porte que je glisse les miennes parmis les votres espérant ne pas faire triste mine Je suis convaincu et serai un ardent défenseur du respect de toute proposition dans la mesure où elle fonctionne et répond à l'attente du demandeur
C'est ce qui fait la richesse et la diversité
A l'utilisateur de faire son choix ne crois tu pas ????
Salut lSteph
Je te rassure aucune proposition de qui que soit me parait compliqué
Je les trouve toujours trés interressante et ne manque pas une occasion de
les capitaliser au moins pour ma formation personnelle
Vous avez tous d'excellentes solutions que je garderais bien de critiquer
Et c'est trés souvent par la petite porte que je glisse les miennes parmis
les votres espérant ne pas faire triste mine
Je suis convaincu et serai un ardent défenseur du respect de toute
proposition dans la mesure où elle fonctionne et répond à l'attente du
demandeur
C'est ce qui fait la richesse et la diversité
A l'utilisateur de faire son choix ne crois tu pas ????
Je te rassure aucune proposition de qui que soit me parait compliqué Je les trouve toujours trés interressante et ne manque pas une occasion de les capitaliser au moins pour ma formation personnelle
Vous avez tous d'excellentes solutions que je garderais bien de critiquer Et c'est trés souvent par la petite porte que je glisse les miennes parmis les votres espérant ne pas faire triste mine Je suis convaincu et serai un ardent défenseur du respect de toute proposition dans la mesure où elle fonctionne et répond à l'attente du demandeur
C'est ce qui fait la richesse et la diversité
A l'utilisateur de faire son choix ne crois tu pas ????
lSteph
c'est gentil mais dans ce coup là il faut remercier Modeste d'avoir songé à
xlPasteColumnWidths
On peut aussi le remplacer par 8 selon la suggestion de MichDenis D'ailleurs c'est ce qui est plaisant dans le forum c'est quand on se met à plusieurs pour avancer.
@+
-- lSteph
On 1 août, 14:33, "Bruno RCSC" wrote:
Steph, ton dernier post est Top. Sincèrement,merci.
En résumé, pour les amateurs, voici le code qu'il faut utiliser (sous excel 2002) :
Sub steph() Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur_initial.xls") Set wb2 = Workbooks("classeur_final.xls") Application.ScreenUpdating = False With wb1 For j = 1 To .Worksheets.Count With .Worksheets(j) .Columns.Copy wb2.Worksheets(j).Columns.PasteSpecial _ Paste:=xlPasteColumnWidths
End With Next j End With
End Sub
Merci à tous. BH.
c'est gentil mais dans ce coup là il faut remercier Modeste d'avoir
songé à
xlPasteColumnWidths
On peut aussi le remplacer par 8 selon la suggestion de MichDenis
D'ailleurs c'est ce qui est plaisant dans le forum c'est quand on se
met à plusieurs pour avancer.
@+
--
lSteph
On 1 août, 14:33, "Bruno RCSC" <ats....@wanadoo.fr> wrote:
Steph, ton dernier post est Top.
Sincèrement,merci.
En résumé, pour les amateurs, voici le code qu'il faut utiliser (sous excel
2002) :
Sub steph()
Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur_initial.xls")
Set wb2 = Workbooks("classeur_final.xls")
Application.ScreenUpdating = False
With wb1
For j = 1 To .Worksheets.Count
With .Worksheets(j)
.Columns.Copy
wb2.Worksheets(j).Columns.PasteSpecial _
Paste:=xlPasteColumnWidths
c'est gentil mais dans ce coup là il faut remercier Modeste d'avoir songé à
xlPasteColumnWidths
On peut aussi le remplacer par 8 selon la suggestion de MichDenis D'ailleurs c'est ce qui est plaisant dans le forum c'est quand on se met à plusieurs pour avancer.
@+
-- lSteph
On 1 août, 14:33, "Bruno RCSC" wrote:
Steph, ton dernier post est Top. Sincèrement,merci.
En résumé, pour les amateurs, voici le code qu'il faut utiliser (sous excel 2002) :
Sub steph() Dim i As Integer, j As Integer, wb1 As Workbook, wb2 As Workbook
Set wb1 = Workbooks("classeur_initial.xls") Set wb2 = Workbooks("classeur_final.xls") Application.ScreenUpdating = False With wb1 For j = 1 To .Worksheets.Count With .Worksheets(j) .Columns.Copy wb2.Worksheets(j).Columns.PasteSpecial _ Paste:=xlPasteColumnWidths