Bonsoir,
SVP
J'ai un fichier BDD "Partagé" et trop grand contiens des +2000 lignes en mini dans chacune de ces feuilles (+10 et chaque MAJ du fichier avec l'ajoute des nouvelle feuilles) (avec même format) , j'ai effectue des recherche et j'ai adapter la macro pour qu'elle marche bien , j'ai bien atteindre mon objectif mais ceci et très lente .
Code de la macro de megration et création de la BDD personnel.
 
	
	
	
	
	
		
aprés l’exécution de la macro du megration je fait une execution d'une autre macro (filtre avancé) que j'ai déjà eu dans le post suivant :
https://www.excel-downloads.com/threads/filtre-copier-les-donnees-aide-sur-macro.206309/
	
	
	
	
	
		
Merci de m'aider a minimisé le temps et la vitesse d'assemblage (car par fois ceci me bloque l'excel 😡 )
au bien si vous avez une solution plus pratique .
merci pour votre support
slt haytoch
	
		
			
		
		
	
				
			SVP
J'ai un fichier BDD "Partagé" et trop grand contiens des +2000 lignes en mini dans chacune de ces feuilles (+10 et chaque MAJ du fichier avec l'ajoute des nouvelle feuilles) (avec même format) , j'ai effectue des recherche et j'ai adapter la macro pour qu'elle marche bien , j'ai bien atteindre mon objectif mais ceci et très lente .
Code de la macro de megration et création de la BDD personnel.
		Code:
	
	
	Sub MergeSheets()
    Dim diswb As Worksheet, infwb As Workbook, swb As Worksheet
    Dim N As Long
    Dim file
Set shAct = Worksheets("BDD")
file= Application.GetOpenFilename("Excel (*.xlsx), *.xlsx", , "File Selection", , False)
  If file= False Then Exit Sub
Application.ScreenUpdating = False
        shAct.UsedRange.Offset(1).Clear
With Workbooks.Open(file)
    wb = .Name
    TWay = Environ("temp")
    WbDest = "cg-temp.xlxs"
    TDest = TWay & WbDest
    Application.DisplayAlerts = False
    Workbooks(wb).SaveCopyAs TDest
    .Close savechanges:=False
 End With
With Workbooks.Open(TDest)
  '      .ExclusiveAccess
For N = 1 To .Worksheets.Count
            With Worksheets(N)
                .UsedRange.Offset(1).Copy
            End With
                        With shAct.Range("A65536").End(xlUp).Offset(1, 0)
                            .PasteSpecial Paste:=xlValues
                            '.PasteSpecial Paste:=xlFormats
                        End With
Next N
            .Close savechanges:=False
        End With
With shAct
    .Range("H:I,K:N").Delete
    .Range("H1").Value = "Index"
    .Range("A1").Copy
    .Range("H1").PasteSpecial Paste:=xlPasteFormats
    .Range("A1:B1,G1:H1").Copy
    .Range("J1").PasteSpecial Paste:=xlPasteValues
    .Range("J1").PasteSpecial Paste:=xlPasteFormats
    .Range("J1:M1").Copy
    .Range("J14").PasteSpecial Paste:=xlPasteValues
    .Range("J14").PasteSpecial Paste:=xlPasteFormats
End With
End Sub
	aprés l’exécution de la macro du megration je fait une execution d'une autre macro (filtre avancé) que j'ai déjà eu dans le post suivant :
https://www.excel-downloads.com/threads/filtre-copier-les-donnees-aide-sur-macro.206309/
		Code:
	
	
	Sub Get_index_Morpho()
    Dim tr As Integer
    Dim i As Long, J As Long, DerL As Long
    Dim Bwsh As Worksheet
    Dim solsh As Worksheet
    Dim CriteriaPl As Range, DesPl As Range
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Set Bwsh = Worksheets("Analyse")
    Set solsh = Worksheets("Conf-BDD")
    For J = 2 To Bwsh.Range("A" & Rows.Count).End(xlUp).Row
        'Set solsh = Worksheets("SOL" & Bwsh.Cells(J, 8))
        With solsh
            DerL = .Range("A" & .Rows.Count).End(xlUp).Row
            .Range("A1:E" & DerL).Name = "Base" 'critères
            .Range("J2") = Bwsh.Range("A" & J)    'produit
            .Range("K2") = Bwsh.Range("D" & J)    ' traitement
        End With
        
    Set CriteriaPl = solsh.Range("J1:L2")
    Set DesPl = solsh.Range("J9:L9")
        
        solsh.Range("J10") = ""
        solsh.Range("K10") = ""
        solsh.Range("K10") = ""
        Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=CriteriaPl, CopyToRange:=DesPl
        If solsh.Range("J10") <> "" Then
            Bwsh.Range("E" & J) = solsh.Range("L10")
            Bwsh.Range("F" & J) = solsh.Range("K10")
        Else
            tr = solsh.Range("K2")
            For i = 1 To tr
                solsh.Range("K2") = tr - i
                Range("Base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=CriteriaPl, CopyToRange:=DesPl
                If Range("BDD!J10") <> "" Then
                    Bwsh.Range("E" & J) = solsh.Range("L10")
                    Bwsh.Range("F" & J) = solsh.Range("K10")
                    Exit For
                End If
            Next i
            If solsh.Range("J10") = "" Then
                With Bwsh
                    .Range("E" & J) = "None!"
                    .Range("F" & J) = "None !"
                    .Range("G" & J) = "Solution jamais livrée"
                End With
             End If
         End If
    Next J
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
	Merci de m'aider a minimisé le temps et la vitesse d'assemblage (car par fois ceci me bloque l'excel 😡 )
au bien si vous avez une solution plus pratique .
merci pour votre support
slt haytoch