Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherche les cellules remplies & lignes liées

  • Initiateur de la discussion Initiateur de la discussion KEYVIN67
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
255
Réponses
5
Affichages
248
Réponses
3
Affichages
286
Réponses
19
Affichages
674
Réponses
2
Affichages
229
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…