Bonjour ,
Je dois traiter des fichiers Excel contenant chacuns de nombreuses feuilles. Le nombre de feuilles par fichier est variable mais chaque feuille se presente toujours sous le meme format ( meme nombre de colonnes (5), meme entete, meme position dans la feuille. Le nombre de lignes est toutefois lui aussi variable).
Afin de traiter les donnees de chaque fichier, je souhaite ecrire une macro pour automatiser les taches suivantes:
1/ Compiler toutes les feuilles d'un meme classeur sur une seule feuille
2/ Dans la feuille compilee, effacer les lignes pour lesquelles la valeur dans la collonne 1 est nulle
3/ Dans la feuille compilee, effacer les colonnes 2 et 3.
J'ai commence la macro avec un bout de code trouve sur internet mais il ne semble pas fonctionne car il ne copie que la derniere feuille. Quelqu'un voit -il d'ou vient le pb ? Y-a-il une erreur dans le code ?
Par ailleurs, je ne vois pas comment le completer pour realiser 2/ et 3/ . Quelqu'un peut-il m'aider ? ( je suis debutant en macro....)
Merci pour votre aide
Sub Combine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add ' add a sheet in first place
Sheets(1).Name = "Combined"
' copy headings
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
' work through sheets
For J = 2 To Sheets.Count ' from sheet 2 to last sheet
Sheets(J).Activate ' make the sheet active
Range("A1").Select
Selection.CurrentRegion.Select ' select all cells in this sheets
' select all lines except title
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
' copy cells selected in the new sheet on last line
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
Je dois traiter des fichiers Excel contenant chacuns de nombreuses feuilles. Le nombre de feuilles par fichier est variable mais chaque feuille se presente toujours sous le meme format ( meme nombre de colonnes (5), meme entete, meme position dans la feuille. Le nombre de lignes est toutefois lui aussi variable).
Afin de traiter les donnees de chaque fichier, je souhaite ecrire une macro pour automatiser les taches suivantes:
1/ Compiler toutes les feuilles d'un meme classeur sur une seule feuille
2/ Dans la feuille compilee, effacer les lignes pour lesquelles la valeur dans la collonne 1 est nulle
3/ Dans la feuille compilee, effacer les colonnes 2 et 3.
J'ai commence la macro avec un bout de code trouve sur internet mais il ne semble pas fonctionne car il ne copie que la derniere feuille. Quelqu'un voit -il d'ou vient le pb ? Y-a-il une erreur dans le code ?
Par ailleurs, je ne vois pas comment le completer pour realiser 2/ et 3/ . Quelqu'un peut-il m'aider ? ( je suis debutant en macro....)
Merci pour votre aide
Sub Combine()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add ' add a sheet in first place
Sheets(1).Name = "Combined"
' copy headings
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
' work through sheets
For J = 2 To Sheets.Count ' from sheet 2 to last sheet
Sheets(J).Activate ' make the sheet active
Range("A1").Select
Selection.CurrentRegion.Select ' select all cells in this sheets
' select all lines except title
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
' copy cells selected in the new sheet on last line
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub