Microsoft 365 Masquer - Afficher et classer

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Bon we 🙂

Je cherche à :
1 - Masquer les lignes qui contiennent UNIQUEMENT le mot "Répondeur"
2 - Afficher les lignes qui contiennent UNIQUEMENT le mot "Répondeur" en les classant selon le nombre de mots "Répondeur" contenus

Je cherche comment faire recherche sur le net et tentatives et ... pour l'instant, je n'y arrive pas -tu m'étonnes lol 😛),

Auriez-vous le bon code ?
Je joins un petit fichier test et je continue à chercher 🙂

Merci pour l'avoir lu,
Amicalement,
lionel,
 

Pièces jointes

Solution
Bonjour Lionel, Marcel32,

C'est en effet un problème différent, il faut travailler sur x, la macro modifiée :
VB:
Sub Classer()
Dim tablo, i&, x$, s, j%, y$
With Sheets("Compter").[D1].CurrentRegion.EntireRow
    tablo = .Columns(4).Resize(, 2) 'mztrice, plus rapide
    For i = 2 To UBound(tablo)
        tablo(i, 2) = "" 'RAZ
        x = Replace(Replace(tablo(i, 1), " ", ""), vbCr, "")
        If x Like "*##-##-####:##:RendezVouspourle*" Then
            tablo(i, 2) = "RdV"
        Else
            s = Split(x, vbLf)
            For j = 0 To UBound(s)
                y = s(j)
                If y <> "" Then
                    If Not y Like "##-##-####:##:Répondeur-" Then
                        tablo(i, 2) = "n/c"...
Bonsoir Lionel, le fil,

je te souhaite aussi une très bonne année.

La macro est une macro qui exécute un tri, bien évidemment sur tout le tableau.

Vouloir l'appliquer à la "cellule active" n'a donc aucun sens.

PS : ton code ne correspond pas aux fichiers précédents.

A+
 
Bonsoir Gérard,

Oui, je l'avais adapté à mon fichier de travail.

En fait, le but est d'avoir le calcul au fur et à mesure de la saisie sans classement et sans avoir à compter toutes les lignes.

le code que tu m'avais fourni est le code du #post 21:
VB:
Sub Classer()
Dim tablo, i&, x$, s, j%, y$
With Sheets("Compter").[D1].CurrentRegion.EntireRow
    tablo = .Columns(4).Resize(, 2) 'mztrice, plus rapide
    For i = 2 To UBound(tablo)
        tablo(i, 2) = "" 'RAZ
        x = Replace(Replace(tablo(i, 1), " ", ""), vbCr, "")
        s = Split(x, vbLf)
        For j = 0 To UBound(s)
            y = s(j)
            If y <> "" Then If Not y Like "##-##-####:##:Répondeur-" Then tablo(i, 2) = "n/c": Exit For
        Next
        If tablo(i, 2) = "" Then If InStr(x, "Répondeur") Then tablo(i, 2) = (Len(x) - Len(Replace(x, "Répondeur", ""))) / 9
    Next
    '---restitution---
    .Columns(4).Resize(, 2) = tablo
    .Sort .Columns(5), xlDescending, Header:=xlYes 'tri décroissant sur la colonne E
    .Rows.AutoFit
End With
End Sub
 
Bonjour Gérard, le Forum,
Bonne journée à toutes et à tous 🙂

J'aurais besoin d'un classement supplémentaire au code donné par Gérard que je remercie encore.
J'ai besoin également que le code classe quand il rencontre "RendezVous pour le" dans les cellule de la colonne D.
Dans le code, il y a cette condition :
If y <> "" Then If Not y Like "##-##-####:##:Répondeur-" Then tablo(i, 2) = "n/c": Exit For

Pour me permettre de rappeler en priorité les Rdvs non honorés
Est-il possible d'y ajouter ? :
If y <> "" Then If Not y Like "##-##-####:##:RendezVous pour le" Then tablo(i, 2) = "RdV": Exit For

Je ne vois pas comment faire, pourriez-vous m'aider ?
Un grand merci par avance 🙂
Je joins le fichier test,
lionel 🙂
 

Pièces jointes

Dernière édition:
Bonjour Lionel,

La macro modifiée :
VB:
Sub Classer()
Dim tablo, i&, x$, s, j%, y$
With Sheets("Compter").[D1].CurrentRegion.EntireRow
    tablo = .Columns(4).Resize(, 2) 'mztrice, plus rapide
    For i = 2 To UBound(tablo)
        tablo(i, 2) = "" 'RAZ
        x = Replace(Replace(tablo(i, 1), " ", ""), vbCr, "")
        s = Split(x, vbLf)
        For j = 0 To UBound(s)
            y = s(j)
            If y <> "" Then
                If Not y Like "##-##-####:##:Répondeur-" Then
                    tablo(i, 2) = IIf(y Like "##-##-####:##:RendezVouspourle*", "RdV", "n/c")
                    Exit For
                End If
            End If
        Next
        If tablo(i, 2) = "" Then If InStr(x, "Répondeur") Then tablo(i, 2) = (Len(x) - Len(Replace(x, "Répondeur", ""))) / 9
    Next
    '---restitution---
    .Columns(4).Resize(, 2) = tablo
    .Sort .Columns(5), xlDescending, Header:=xlYes 'tri décroissant sur la colonne E
    .Rows.AutoFit
End With
End Sub
A+
 

Pièces jointes

Bonjour Gérard, le forum 🙂

Je pensais en avoir terminé avec ce fil mais encore un souci que je ne sais pas résoudre.
Je suis désolé d'y revenir.

Voici le souci :
en cellule "D2", j'ai :
"04-01-22 17:44 : Répondeur -
24-12-21 11:07 : Répondeur -
15-12-21 15:24 : RendezVous pour le : 16 12 2021 12:00 - RAS : OK pour réfléchir au changt de réseau selon proposition
10-11-21 15:31 : RendezVous pour le : 16 11 2021 10:00 - "
Et j'ai bien "RDV" en "E2"

en cellule "D29", j'ai :
"14-12-21 14:25 : Pas dispo demande rappel - RdV possible -
26-10-21 10:06 : RendezVous pour le : 28 10 2021 10:00 - "
Et j'ai "n/c" en "E29"
J'ai besoin que la aussi il mette "RDV"
Je pense que la cause est que j'ai également dans la cellule un texte autre que "Répondeur"
Mais je n'arrive pas à modifier le code pour que la priorité soit donnée à "
RDV"

Encore une p'tit coup d'aide ?
Je joins le fichier test et je continue à chercher,
Un grand Merci encore une fois,
lionel 🙂
 

Pièces jointes

Dernière édition:
Bonjour Marcel 🙂

Désolé : erreur de frappe :
en cellule "D29", j'ai :
"14-12-21 14:25 : Pas dispo demande rappel - RdV possible -
26-10-21 10:06 : RendezVous pour le : 28 10 2021 10:00 - "
Et j'ai "n/c" en "E29"
J'ai besoin que la aussi il mette "RDV"
🙂
 
Re-Bonjour,

Je suis en train de tester ce code :
VB:
Sub Classer()
Dim tablo, i&, x$, s, j%, y$
With Sheets("Compter").[D1].CurrentRegion.EntireRow
    tablo = .Columns(4).Resize(, 2) 'mztrice, plus rapide
    For i = 2 To UBound(tablo)
        tablo(i, 2) = "" 'RAZ
        x = Replace(Replace(tablo(i, 1), " ", ""), vbCr, "")
        s = Split(x, vbLf)
        For j = 0 To UBound(s)
            y = s(j)
            If y <> "" Then
                If Not y Like "##-##-####:##:Répondeur-" Then
                    If y Like "##-##-####:##:RendezVouspourle*" Then
                    tablo(i, 2) = IIf(y Like "##-##-####:##:RendezVouspourle*", "RdV", "n/c")
                    Exit For
                    End If
                End If
            End If
        Next
        If tablo(i, 2) = "" Then If InStr(x, "Répondeur") Then tablo(i, 2) = (Len(x) - Len(Replace(x, "Répondeur", ""))) / 9
    Next
    '---restitution---
    .Columns(4).Resize(, 2) = tablo
    .Sort .Columns(5), xlDescending, Header:=xlYes 'tri décroissant sur la colonne E
    '.Rows.AutoFit
End With
End Sub
🙂
 
Bonjour Lionel, Marcel32,

C'est en effet un problème différent, il faut travailler sur x, la macro modifiée :
VB:
Sub Classer()
Dim tablo, i&, x$, s, j%, y$
With Sheets("Compter").[D1].CurrentRegion.EntireRow
    tablo = .Columns(4).Resize(, 2) 'mztrice, plus rapide
    For i = 2 To UBound(tablo)
        tablo(i, 2) = "" 'RAZ
        x = Replace(Replace(tablo(i, 1), " ", ""), vbCr, "")
        If x Like "*##-##-####:##:RendezVouspourle*" Then
            tablo(i, 2) = "RdV"
        Else
            s = Split(x, vbLf)
            For j = 0 To UBound(s)
                y = s(j)
                If y <> "" Then
                    If Not y Like "##-##-####:##:Répondeur-" Then
                        tablo(i, 2) = "n/c"
                        Exit For
                    End If
                End If
            Next
            If tablo(i, 2) = "" Then If InStr(x, "Répondeur") Then tablo(i, 2) = (Len(x) - Len(Replace(x, "Répondeur", ""))) / 9
        End If
    Next
    '---restitution---
    .Columns(4).Resize(, 2) = tablo
    .Sort .Columns(5), xlDescending, Header:=xlYes 'tri décroissant sur la colonne E
    '.Rows.AutoFit
End With
End Sub
A+
 

Pièces jointes

Bonjour Gérard,

j'étais en train de me perdre dans des tests "tatons" et "n'importe koi" lol
Et voilà, je reçois la délivrance !

Merci Gérard d'être là et toujours bienveillant et ... patient 🙂
Evidemment, ça marche YYYoupy.

Faudra bien que j'invente un truc pour dire MERCI,
lionel 🙂
 
- 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

Discussions similaires

Réponses
1
Affichages
584
Réponses
11
Affichages
547
Retour