Microsoft 365 Masquer - Afficher et classer

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 :p),

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

  • Repondeurs_test.xlsm
    19.6 KB · Affichages: 11
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"...

job75

XLDnaute Barbatruc
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+
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

  • Repondeurs_classer_compter_GerardP21.xlsm
    48.8 KB · Affichages: 1
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Repondeurs_classer_compter_GerardP21.xlsm
    49 KB · Affichages: 6

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

  • Repondeurs_classer_compter_GerardP21.xlsm
    43.6 KB · Affichages: 2
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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
:)
 

job75

XLDnaute Barbatruc
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

  • Repondeurs_classer_compter_GerardP21.xlsm
    45.9 KB · Affichages: 4

Discussions similaires

Réponses
2
Affichages
214

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley