Bonsoir à tous,
Je suis en train de faire une petite macro qui est incorporée a sein d'un fichier excel nommé Forum.xls
Ce fichier Forum.xls est placé dans un dossier où se trouve x autres fichiers données.xls ayant la même structure (sauf le nombre d'onglets diffèrent).
Ce que je souhaite c'est faire un résumé des informations contenues dans chaque onglet de chaque fichier données.xls (une ligne de résumé par onglet).
Pour se faire, j'ai déjà récupéré tout un tas de bout de codes qui me permettent de :
- aller ouvrir un premier fichier données.xls du même dossier;
- me mettre sur l'onglet de gauche;
- copier certaines infos et les coller sur la même ligne de mon fichier forum.xls;
- aller à la ligne sur ce fichier forum, puis aller sur le deuxième onglet de ce fichier "donnée"
Par contre, j'ai un message d'erreur au moment où il veut encore se mettre sur l'onglet situé à droite alors que je suis déjà sur ce dernier onglet.
Il me faudrait donc mettre dans un code un bout de code en plus, qui dirait que si je suis sur le dernier onglet du fichier donnée.xls, alors il faut fermer ce fichier, et ouvrir un suivant.
PS: le code est en cours, et normalement je devrai réussir à le terminer (il manque des bouts dedans que je mettrai par la suite). si je trouve une réponse à mon problème ci-dessus.
J'ai déjà effectué un travail comparable, mais là je n'allais cherché les données que sur un unique onglet de chacun de ces fichiers données.xls
Pour info, voici le code en cours :
Sub forum()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Temp As String
Dim Ligne As Long
Temp = Dir(ActiveWorkbook.Path & "\*.xls")
Do While Temp <> ""
If Temp <> "Forum.xls" Then
Workbooks.Open ActiveWorkbook.Path & "\" & Temp
'aller sur l'onglet tout à gauche
Sheets(1).Select
Dim i As Integer
Dim NomOnglet As Variant
For i = 1 To Worksheets.Count
'copie 1
Range("D2").Select
Selection.Copy
Windows("Forum.xls").Activate
Range("A1000").End(xlUp).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 2
Range("A9").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 3
Range("B9").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 4
Range("A10").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 5
Range("B10").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 6
Range("A19").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 7
Selection.End(xlDown).Select
Application.CutCopyMode = False
Selection.Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 8
Range("D6").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 9
Range("D15").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
'on se remet en colonne A à la ligne en dessous
Range("A1000").End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveWindow.ActivateNext
ActiveSheet.Next.Select
Next i
End If
Temp = Dir
Loop
End Sub
Merci par avance à tout ceux et celles qui me viendront en aide.
Cordialement
Je suis en train de faire une petite macro qui est incorporée a sein d'un fichier excel nommé Forum.xls
Ce fichier Forum.xls est placé dans un dossier où se trouve x autres fichiers données.xls ayant la même structure (sauf le nombre d'onglets diffèrent).
Ce que je souhaite c'est faire un résumé des informations contenues dans chaque onglet de chaque fichier données.xls (une ligne de résumé par onglet).
Pour se faire, j'ai déjà récupéré tout un tas de bout de codes qui me permettent de :
- aller ouvrir un premier fichier données.xls du même dossier;
- me mettre sur l'onglet de gauche;
- copier certaines infos et les coller sur la même ligne de mon fichier forum.xls;
- aller à la ligne sur ce fichier forum, puis aller sur le deuxième onglet de ce fichier "donnée"
Par contre, j'ai un message d'erreur au moment où il veut encore se mettre sur l'onglet situé à droite alors que je suis déjà sur ce dernier onglet.
Il me faudrait donc mettre dans un code un bout de code en plus, qui dirait que si je suis sur le dernier onglet du fichier donnée.xls, alors il faut fermer ce fichier, et ouvrir un suivant.
PS: le code est en cours, et normalement je devrai réussir à le terminer (il manque des bouts dedans que je mettrai par la suite). si je trouve une réponse à mon problème ci-dessus.
J'ai déjà effectué un travail comparable, mais là je n'allais cherché les données que sur un unique onglet de chacun de ces fichiers données.xls
Pour info, voici le code en cours :
Sub forum()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Temp As String
Dim Ligne As Long
Temp = Dir(ActiveWorkbook.Path & "\*.xls")
Do While Temp <> ""
If Temp <> "Forum.xls" Then
Workbooks.Open ActiveWorkbook.Path & "\" & Temp
'aller sur l'onglet tout à gauche
Sheets(1).Select
Dim i As Integer
Dim NomOnglet As Variant
For i = 1 To Worksheets.Count
'copie 1
Range("D2").Select
Selection.Copy
Windows("Forum.xls").Activate
Range("A1000").End(xlUp).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 2
Range("A9").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 3
Range("B9").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 4
Range("A10").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 5
Range("B10").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 6
Range("A19").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 7
Selection.End(xlDown).Select
Application.CutCopyMode = False
Selection.Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 8
Range("D6").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
ActiveWindow.ActivateNext
'copie 9
Range("D15").Copy
Windows("Forum.xls").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(0, 1).Select
'on se remet en colonne A à la ligne en dessous
Range("A1000").End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveWindow.ActivateNext
ActiveSheet.Next.Select
Next i
End If
Temp = Dir
Loop
End Sub
Merci par avance à tout ceux et celles qui me viendront en aide.
Cordialement