Recuperer des donnees via des criteres

Bonjour tout le monde

J'ai un problème

le code ci-joint marche très bien ,je demande s'il y a possibilité de le modifier et de l'adapter avec la methode sur les filtres ou autre chose pour que ca se charge tres rapidement.Actuellement ya pas bcp de donnees mais si je mets un fichier de 6000lignes ca prend plusieurs minutes pour se charger

Je veux juste une autre methode pour charger rapidement les feuilles DIS_Laval et DIS_Quebec

Merci

Bonjour

Le souci vient de l'utilisation des boucles. Là il faudrait utiliser les tableaux VBA.

On peut faire mieux mais essaie en changeant déjà ceci :

Au début du code :

.Cells(1, 1) = "Intervention": .Cells(1, 2) = "Conclusion": .Cells(1, 3) = "Code": .Cells(1, 4) = "Genre_Intervention": .Cells(1, 5) = "Statut": .Cells(1, 6) = "Date_début": .Cells(1, 7) = "Date_fin": .Cells(1, 8) = "Code_Inspecteur": .Cells(1, 9) = "Anomalie": .Cells(1, 10) = "Numero_demande": .Cells(1, 11) = "Date_Creation_Demande": .Cells(1, 12) = "Nom_Inspecteur": .Cells(1, 13) = "Prenom_Inspecteur": .Cells(1, 14) = "Domaine_Intervention"

par :

Feuil1.Range("A1:N1").Copy .Range("A")

Plus bas une ligne identique à changer dans le même esprit :

.Cells(lig, 1) = Feuil1.Cells(i, 1): .Cells(lig, 2) = Feuil1.Cells(i, 2): .Cells(lig, 3) = Feuil1.Cells(i, 3): .Cells(lig, 4) = Feuil1.Cells(i, 4): .Cells(lig, 5) = Feuil1.Cells(i, 5): .Cells(lig, 6) = Feuil1.Cells(i, 6): .Cells(lig, 7) = Feuil1.Cells(i, 7): .Cells(lig, 8) = Feuil1.Cells(i, 8): .Cells(lig, 9) = Feuil1.Cells(i, 9): .Cells(lig, 10) = Feuil1.Cells(i, 10): .Cells(lig, 11) = Feuil1.Cells(i, 11): .Cells(lig, 12) = Feuil1.Cells(i, 12): .Cells(lig, 13) = Feuil1.Cells(i, 13): .Cells(lig, 14) = Feuil1.Cells(i, 14)

par :

Feuil1.Range("A" & i & ":N" & i).Copy .Range("A" & lig)

Dis moi si cela améliore et si tu travailles sous excel Windows ou Excel MAC

Cordialement

Merci Dan

je travaille avec excel windows .j'ai utilisé tes deux codes ça marche mais je veux utiliser les tableaux pour que ca soit beaucoup plus rapide

Merci encore

Salut Dan

J'ai utilisé un tableau et j'ai la solution ca marche

Merci

Private Sub Worksheet_Activate()
Dim MonTab1 As Variant, Compt11 As Long, Plg1 As Range, Plg2 As Range
Dim j As Long

With Feuil1
.Range("A1:N1").Copy Feuil4.Range("A1")
    Set Plg1 = .Range("A2:N" & .Range("A" & .Rows.Count).End(xlUp).Row)
     MonTab1 = Plg1.Value
     j = 2
         For Compt11 = LBound(MonTab1, 1) To UBound(MonTab1, 1)
        Z = .Cells(Compt11, 13) & Chr(32) & .Cells(Compt11, 12)
         'Z = MonTab1(Compt11, 13) & Chr(32) & MonTab1(Compt11, 12)
         Set trouve = Feuil2.Columns(4).Find(Z, lookat:=xlWhole)
         If Not trouve Is Nothing Then
             MonTab1 = Feuil1.Range("A" & Compt11 & ":N" & Compt11)
             With Feuil4
    Set Plg2 = .Range("A" & j & ":N" & j)
        'Set Plg2 = .Range("A1:N1")
    Plg2.Value = MonTab1

    End With
             j = j + 1
            End If
        Next Compt11
 End With

End Sub
Rechercher des sujets similaires à "recuperer donnees via criteres"