Bonjour à tous,
Grace au nombreux posts sur le forum et sur la toile, je viens de réaliser un premier projet. 😎
Malheureusement, j'ai encore 2 petits soucis que je n'arrive pas à solutionner
Tout d'abord, au niveau de la mise en page, je n'arrive pas à aligner les valeurs de l'onglet2 de mon fichier recap, et ceux malgré ce code qui à l'aire de fonctionner sur d'autres onglets...
Sinon, un problème qui n'en est pas vraiment un, la maccro est lente. Je sais que le nombre d'actions est important, mais n'y a t'il pas un moyen d'alléger ce code?
Merci d'avance
Amicalement.
Okedekpe.
Edit: j'ai finalement trouvé que je titre n'etait pas très approprié...
Grace au nombreux posts sur le forum et sur la toile, je viens de réaliser un premier projet. 😎
Malheureusement, j'ai encore 2 petits soucis que je n'arrive pas à solutionner
Tout d'abord, au niveau de la mise en page, je n'arrive pas à aligner les valeurs de l'onglet2 de mon fichier recap, et ceux malgré ce code qui à l'aire de fonctionner sur d'autres onglets...
Code:
Columns("B:B").Select
With Selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.NumberFormat = "0.00"
.HorizontalAlignment = xlRight
Sinon, un problème qui n'en est pas vraiment un, la maccro est lente. Je sais que le nombre d'actions est important, mais n'y a t'il pas un moyen d'alléger ce code?
Code:
Sub C_est_parti()
Dim Chemin As String
Dim Fichier As String
Dim i As Long
Dim j As Byte
Dim debut
Dim Recap As Workbook
Dim Instrument As Workbook
Set Recap = ThisWorkbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Chemin = "Z:\General\A.....\Documents\Dossier P&L\"
Fichier = Dir(Chemin & "*.xlsx*")
Dim W As Worksheet
For Each W In ActiveWorkbook.Worksheets
If W.Name = "Recap" Then
Else: W.Delete
End If
Next W
Do While Fichier <> ""
For j = 2 To 23 ' Sheets.Count
Workbooks.Open Filename:=Chemin & Fichier
Set Instrument = ActiveWorkbook
Recap.Activate
Recap.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Instrument.Sheets(1).Name
Instrument.Activate
Dim d As Date
Columns("B:B").Select
With Selection
.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.NumberFormat = "0.00"
.HorizontalAlignment = xlRight
d = #12/14/2007#
Set debut = [A:A].Find(What:=d, LookIn:=xlValues)
If Not debut Is Nothing Then Range(debut, debut.End(xlDown).Offset(, 1)).Copy
Recap.Activate
Sheets(j).Range("A1").Select
ActiveSheet.Paste
Application.Calculation = xlCalculationManual
[A1].Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess
i = 1
Do While Cells(i, 1) <> ""
If Cells(i, 1) = Cells(i + 1, 1) Then Rows(i).Delete Else i = i + 1
Loop
Application.Calculation = xlCalculationAutomatic
Instrument.Close SaveChanges:=False
Fichier = Dir
Next j
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Merci d'avance
Amicalement.
Okedekpe.
Edit: j'ai finalement trouvé que je titre n'etait pas très approprié...
Pièces jointes
Dernière édition: