Recherche les cellules remplies & lignes liées

KEYVIN67

XLDnaute Nouveau
Bonjour,

Mon sujet se trouve dans le fichier ci-joint.

Merci d'avance pour vos réponses.

Cordialement,

Kévin
 

Pièces jointes

  • Modèle recherche récidives.xlsx
    9.9 KB · Affichages: 20

job75

XLDnaute Barbatruc
Bonjour KEYVIN67, vgendron,

Ce problème se règle parfaitement par formule, voyez le fichier joint.

Edit : pour tester j'ai recopié le tableau source jusqu'à la ligne 1000.

Avec les formules tirées jusqu'à la ligne 404 le recalcul se fait chez moi en 8,2 secondes, c'est long.

A+
 

Pièces jointes

  • Modèle recherche récidives(1).xlsx
    17.9 KB · Affichages: 12
Dernière édition:

job75

XLDnaute Barbatruc
Re,

Avec cette macro dans le code de la feuille c'est nettement plus rapide :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dest As Range, d As Object, t, i&, n&, resu(), j%
Set dest = [G5] '1ère cellule de destination, à adapter
t = [A4].CurrentRegion.Resize(, 5) 'matrice, plus rapide
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
For i = 2 To UBound(t)
    If t(i, 5) <> "" Then d(t(i, 2)) = "" 'liste des clients des récidives
Next
Application.EnableEvents = False 'désactive les évènemnts
If d.Count Then
    For i = 2 To UBound(t)
        If d.exists(t(i, 2)) Then
            n = n + 1
            ReDim Preserve resu(1 To 5, 1 To n)
            For j = 1 To 5
                resu(j, n) = t(i, j)
            Next j
        End If
    Next i
    '---transposition---
    For i = 1 To n
        For j = 1 To 5
            t(i, j) = resu(j, i)
    Next j, i
    '---restitution---
    If FilterMode Then ShowAllData 'si la feuille est filtrée
    dest.Resize(n, 5) = t
End If
dest(n + 1).Resize(Rows.Count - n - dest.Row + 1, 5).ClearContents 'RAZ sous le tableau
Application.EnableEvents = True 'réactive les évènemnts
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Fichier joint, avec un tableau source recopié sur 1000 lignes la macro s'exécute en 0,02 seconde.

A+
 

Pièces jointes

  • Modèle recherche récidives VBA(1).xlsm
    25.7 KB · Affichages: 11

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley