Bonjour,
J'ai bricolé un petite macro excel vba avec mes connaissances basiques en vba et qq bouts de codes trouvés sur le net.
Pourriez-vous me dire ce qui pourrait être optimisé dans ce code ?
Merci beaucoup,
Gregory
	
	
	
	
	
		
	
		
			
		
		
	
				
			J'ai bricolé un petite macro excel vba avec mes connaissances basiques en vba et qq bouts de codes trouvés sur le net.
Pourriez-vous me dire ce qui pourrait être optimisé dans ce code ?
Merci beaucoup,
Gregory
		Code:
	
	
	Sub ClientX()
 
varMonth = Range("J13").Value
varClientSheet = "Client X"
Set wbCodeBook = ThisWorkbook
varMacro = ActiveWorkbook.Name
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.EnableEvents = False
     
    On Error Resume Next
     
    With Application.FileSearch
        .NewSearch
        .LookIn = "T:\Operations\Files\Client X\" & varMonth & "\"
        .FileType = msoFileTypeExcelWorkbooks
        .Filename = "*Email 1.xls"
        .SearchSubFolders = True
         
        If .Execute > 0 Then 'Workbooks in folder
            For lCount = 1 To .FoundFiles.Count ' Loop through all.
                 'Open Workbook  and Set a Workbook  variable to it
                Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0)
        
 
varFilePath = ActiveWorkbook.path
 
   Range("A5:Y30").Copy
  
    Windows(varMacro).Activate
    Sheets(varClientSheet).Select
        Range("F2").Select
        Do Until ActiveCell.Value = ""
        ActiveCell.Offset(1, 0).Activate
        Loop
        ActiveCell.Offset(0, -2).Activate
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        
                        wbResults.Close SaveChanges:=False
                 
            Next lCount
        End If
    End With
     
    On Error GoTo 0
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    
         
    Cellules = ActiveSheet.Range("D:D")
    Range("A1").Value = Application.WorksheetFunction.Max(Cellules)
    
    Range("F2").Select
    Selection.CurrentRegion.Select
    Selection.Sort Key1:=Range("F2"), Order1:=xlAscending, Key2:=Range("D2") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
         
 
 
Sheets("Menu").Select
Range("A1").Select
 
Cells.Find(What:="Client X", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
        
ActiveCell.Offset(2, 3).Value = varFilePath
ActiveCell.Offset(0, 3).Select
ActiveCell.Offset(1, 0).Value = Now()
 
MsgBox "Done!"