Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" a écrit dans le message de news:
%Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" a écrit dans le message de news:bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41 à
F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
%23TIHkZmqKHA.4220@TK2MSFTNGP05.phx.gbl...
Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" <i@v> a écrit dans le message de news:
u7EQyFmqKHA.3800@TK2MSFTNGP06.phx.gbl...
bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :
Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41 à
F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" a écrit dans le message de news:
%Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" a écrit dans le message de news:bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41 à
F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
En faite, jacky, ton code fonctionne aussi nickel
En faite, jacky, ton code fonctionne aussi nickel que celui d'hervé, mais il me manque deux choses :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en faites le code ne devrait copier que
les plages des feuils commencant par sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci
"Jacky" a écrit dans le message de news:Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" a écrit dans le message de news:
%Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" a écrit dans le message de news:bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41 à F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
En faite, jacky, ton code fonctionne aussi nickel
En faite, jacky, ton code fonctionne aussi nickel que celui d'hervé, mais il me manque deux choses :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en faites le code ne devrait copier que
les plages des feuils commencant par sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci
"Jacky" <Dupond@marcel.fr> a écrit dans le message de news: OoQ6StmqKHA.4604@TK2MSFTNGP05.phx.gbl...
Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
%23TIHkZmqKHA.4220@TK2MSFTNGP05.phx.gbl...
Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" <i@v> a écrit dans le message de news: u7EQyFmqKHA.3800@TK2MSFTNGP06.phx.gbl...
bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :
Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41 à F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
En faite, jacky, ton code fonctionne aussi nickel
En faite, jacky, ton code fonctionne aussi nickel que celui d'hervé, mais il me manque deux choses :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en faites le code ne devrait copier que
les plages des feuils commencant par sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci
"Jacky" a écrit dans le message de news:Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" a écrit dans le message de news:
%Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" a écrit dans le message de news:bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41 à F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" a écrit dans le message de news:Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" <silve-herve@orange.fr> a écrit dans le message de news:
0EFD36D1-7F1E-4222-A71A-3E2808C6D71D@microsoft.com...
Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de
news:OrSpcelqKHA.4636@TK2MSFTNGP06.phx.gbl...
Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" a écrit dans le message de news:Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Re...En faite, jacky, ton code fonctionne aussi nickel
C'est celui d'isablelle
'-------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" And UCase(Left(f.Name, 5)) = "SHEET" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
Application.DisplayAlerts = False
f.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
'-------------
--
Salutations
JJ
"Manu" a écrit dans le message de news:
O0MQ$En faite, jacky, ton code fonctionne aussi nickel que celui d'hervé, mais
il me manque deux choses :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci
"Jacky" a écrit dans le message de news:Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" a écrit dans le message de news:
%Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" a écrit dans le message de news:bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des
feuil sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41
à F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le
faire en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller
de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
Re...
En faite, jacky, ton code fonctionne aussi nickel
C'est celui d'isablelle
'-------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" And UCase(Left(f.Name, 5)) = "SHEET" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
Application.DisplayAlerts = False
f.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
'-------------
--
Salutations
JJ
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
O0MQ$zmqKHA.4492@TK2MSFTNGP05.phx.gbl...
En faite, jacky, ton code fonctionne aussi nickel que celui d'hervé, mais
il me manque deux choses :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci
"Jacky" <Dupond@marcel.fr> a écrit dans le message de news:
OoQ6StmqKHA.4604@TK2MSFTNGP05.phx.gbl...
Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
%23TIHkZmqKHA.4220@TK2MSFTNGP05.phx.gbl...
Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" <i@v> a écrit dans le message de news:
u7EQyFmqKHA.3800@TK2MSFTNGP06.phx.gbl...
bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :
Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des
feuil sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41
à F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le
faire en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller
de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
Re...En faite, jacky, ton code fonctionne aussi nickel
C'est celui d'isablelle
'-------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" And UCase(Left(f.Name, 5)) = "SHEET" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
Application.DisplayAlerts = False
f.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
'-------------
--
Salutations
JJ
"Manu" a écrit dans le message de news:
O0MQ$En faite, jacky, ton code fonctionne aussi nickel que celui d'hervé, mais
il me manque deux choses :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci
"Jacky" a écrit dans le message de news:Bonjour,
Elle est partie à la cafette...;o))))
Corrige comme ceci
'------------
Sub Macro1()
Sheets("synthese").Cells.Clear
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("F65536").End(xlUp).Row
y = Sheets("synthese").Range("A65536").End(xlUp).Row + 1
f.Range("A1:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
'------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijcHbFxMN.xls
Pense aussi à déclarer les variables
--
Salutations
JJ
"Manu" a écrit dans le message de news:
%Bonjour Isabelle,
Il me lance le debongueur sur cette ligne :
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
Manu
"isabelle" a écrit dans le message de news:bonjour Manu,
Sub Macro1()
For Each f In Sheets
If f.Name <> "synthese" Then
x = f.Range("A65536").End(xlUp).Row
y = Sheets("a").Range("A65536").End(xlUp).Row + 1
f.Range("A2:F" & x).Copy Sheets("synthese").Range("A" & y)
End If
Next
End Sub
isabelle
Le 2010-02-10 08:47, Manu a écrit :Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des
feuil sont
nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil
Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant
bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2 de A41
à F60
puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le
faire en
utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller
de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais
supprimer toutes les feuil sheet
Merci
Manu
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" a écrit dans le message de news:Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" <silve-herve@orange.fr> a écrit dans le message de news:
0EFD36D1-7F1E-4222-A71A-3E2808C6D71D@microsoft.com...
Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de
news:OrSpcelqKHA.4636@TK2MSFTNGP06.phx.gbl...
Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" a écrit dans le message de news:Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long mais
surtout le nombre de feuil Sheet n'est jamais le meme, ca peut aller de
Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Bonsoir Manu,
Alors voici le code retouché avec contrôle du nom des feuille (SheetX) et
supression après récupération des valeurs :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
'évite la boite de message
Application.DisplayAlerts = False
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name And _
Left(Fe.Name, 5) = "Sheet" Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
'copy de la plage
Plage.Copy Cel
'suppression de la feuille
Fe.Delete
End If
Next
'réactive les alertes
Application.DisplayAlerts = True
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" a écrit dans le message de news:Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long
mais surtout le nombre de feuil Sheet n'est jamais le meme, ca peut
aller de Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Bonsoir Manu,
Alors voici le code retouché avec contrôle du nom des feuille (SheetX) et
supression après récupération des valeurs :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
'évite la boite de message
Application.DisplayAlerts = False
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name And _
Left(Fe.Name, 5) = "Sheet" Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
'copy de la plage
Plage.Copy Cel
'suppression de la feuille
Fe.Delete
End If
Next
'réactive les alertes
Application.DisplayAlerts = True
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de
news:ecPRixmqKHA.4604@TK2MSFTNGP05.phx.gbl...
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" <silve-herve@orange.fr> a écrit dans le message de news:
0EFD36D1-7F1E-4222-A71A-3E2808C6D71D@microsoft.com...
Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de
news:OrSpcelqKHA.4636@TK2MSFTNGP06.phx.gbl...
Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long
mais surtout le nombre de feuil Sheet n'est jamais le meme, ca peut
aller de Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu
Bonsoir Manu,
Alors voici le code retouché avec contrôle du nom des feuille (SheetX) et
supression après récupération des valeurs :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
'évite la boite de message
Application.DisplayAlerts = False
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name And _
Left(Fe.Name, 5) = "Sheet" Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
'copy de la plage
Plage.Copy Cel
'suppression de la feuille
Fe.Delete
End If
Next
'réactive les alertes
Application.DisplayAlerts = True
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:
Ouah, ca fonctionne super bien Hervé, et en plus ultra rapide, mais tout
de meme, deux petits soucis :
1- Il copie egalement des feuils qui ne commencent pas par sheet, en
faites le code ne devrait copier que les plages des feuils commencant par
sheet
2- Je souhaite ensuite supprimer toutes les feuil commencant par sheet
Merci de votre aide
Mais comment je fais
"Hervé" a écrit dans le message de news:Bonjour Manu,
Teste ceci. Les plages à récupérer se trouvent en colonnes A à F :
Sub Recup()
Dim FeSynthese As Worksheet
Dim Fe As Worksheet
Dim Plage As Range
Dim Cel As Range
Set FeSynthese = Worksheets("synthese")
For Each Fe In Worksheets
If Fe.Name <> FeSynthese.Name Then
'plage à copier
With Fe
Set Plage = .Range(.[A1], .[F65536].End(xlUp))
End With
'recup de la dernière cellule utilisée
Set Cel = FeSynthese.[A65536].End(xlUp)
'si la feuille "synthese" est vide commence
'en A1, sinon, sous la plage
'précédemment collée
If Cel.Row <> 1 Then
Set Cel = Cel.Offset(1, 0)
End If
Plage.Copy Cel
End If
Next
Set Cel = Nothing
Set Plage = Nothing
Set FeSynthese = Nothing
Set Fe = Nothing
End Sub
Hervé.
"Manu" a écrit dans le message de
news:Bonjour,
J'ai un classeur qui peut comporter entre 20 et 80 feuil. 80% des feuil
sont nommées Sheet1 ; Sheet2 ; Sheet3 ....etc
Chaque Feuil Sheet est remplis en colonne de A à F et en ligne c'est
variable
Jai une feuil qui se nomme synthese et je souhaiterais que toutes les
feuil Sheet se collent dans cette feuil synthese et dans l'ordre.
Exemple :
Si Sheet1 est remplie de A1 à F40
Si Sheet2 est remplie de A1 à F20
Si Sheet3 est remplie de A1 à F30
.......
Alors je souhaiterais que ma feuil synthese soit remplie A1 à F90 en
mettant bien dans l'ordre le contenu de Sheet1 de A1 à F40 puis Sheet2
de A41 à F60 puis Sheet3 de A61 à F90 ....
J'espere avoir été clair,
Ne connaissant pas le VBA, je pourrais me faire enregistrer et le faire
en utilisant les raccourcis clavier mais non seulement ce sera long
mais surtout le nombre de feuil Sheet n'est jamais le meme, ca peut
aller de Sheet1 à Sheet 21 comme de Sheet1 à Sheet 70. Et là, je bloque
completement
Et une fois que tout sera rappatrié dans ma feuil synthese, je
souhaiterais supprimer toutes les feuil sheet
Merci
Manu