Microsoft 365 MFC : si + de 3 cellules non vides sur la ligne

MarionP85

XLDnaute Nouveau
Bonjour,

Je ne trouve pas comment faire ma MFC sur les lignes qui comportent + de 3 cellules non vides sur cette ligne (je ne sais pas si ca change quelque chose mais c'est sur un tdc ; si jamais ca existe sinon une formule/macro ou quelque chose qui pourrait supprimer les lignes de mon tableau ou il y a - de 4 cellules non vides)

Merci à vous
Bonne journée
Marion
 
Solution
Bonjour

Voila le code modifié, tu peux ajouter maintenant les colonnes ou les lignes d'analyse que tu veux, avant ou après ton TCD, tant que tu ne modifies pas la structure même du TCD (en ajoutant des sous totaux par exemple), cela fonctionnera.

Cordialement
VB:
Sub Traitement_TCD()
    Dim Compteur As Integer, Seuil_NV As Byte, Nb_Col As Byte 'déclaration des variables
    With Application
        .ScreenUpdating = False 'désactivation de l'affichage pour le temps de traitement
        .Calculation = xlCalculationManual 'désactivation du calcul automatique pour le temps de traitement
    End With
    On Error GoTo Gere_Erreurs 'routine de gestion des erreurs pour réactiver le calcul automatique si erreur
    Seuil_NV =...

MarionP85

XLDnaute Nouveau
Merci beaucoup pour ta réponse .
Ci joint un fichier test avec quelques données. Le but étant de sélectionner dans mon segment de tcd les numéros dans la colonne A qui ont 3ou+ valeurs afin de pouvoir faire des graphiques en fonction du numéro et de ma période choisi. Mais idéalement pouvoir supprimer les lignes de ceux inférieurs à 3 avec une macro serait top. --> Je me suis mal exprimée supprimer les lignes où il y a - de 5 (je n'avais pas pensé au nom de mon étiquette et au total général) cellules non vides
 
Dernière édition:

Laurent78

XLDnaute Occasionnel
Bonjour,
Je ne comprends pas très bien :
1 - L'intitulé de l'onglet est "resultats par tournée", pourtant je ne vois pas le champ "tournée" dans le TCD.
2 - L'objectif est de masquer ou d'afficher dans une autre couleur ?
3 - Quelque soit le nombre de mois, c'est toujours si il y en a au moins 3 de vides ?

Serait-il possible, puisque le fichier n'a malheureusement pas été anonymisé :oops:, de nous dire précisément le but recherché.

Pour info, je me demande s'il ne faut pas plutôt faire un TCD basé sur du Powerquery ...

@+
 

MarionP85

XLDnaute Nouveau
Bonjour,
Je ne comprends pas très bien :
1 - L'intitulé de l'onglet est "resultats par tournée", pourtant je ne vois pas le champ "tournée" dans le TCD.
2 - L'objectif est de masquer ou d'afficher dans une autre couleur ?
3 - Quelque soit le nombre de mois, c'est toujours si il y en a au moins 3 de vides ?

Serait-il possible, puisque le fichier n'a malheureusement pas été anonymisé :oops:, de nous dire précisément le but recherché.

Pour info, je me demande s'il ne faut pas plutôt faire un TCD basé sur du Powerquery ...

@+
Bonjour Laurent78, désolé de ne pas être très claire sur mes intentions :
1 - Oui je n'ai pas changé le nom de mon onglet car c'est une copie d'un autre fichier mais je n'ai pas besoin de ce champs
2 - En faites à la base je voulais mettre d'une autre couleur ces lignes là (au moins 3 cellules non-vides) mais Yeahou m'a dit qu'il était possible de supprimer les autres lignes (< à 3 cellules non vides)
3 - Oui ca ne changera pas cela

Du coup j'aimerai suivre les numéros (ce sont des personnes) qui ont fréquemment (donc là <2 fois) des "DYX" pour voir ensuite sur quel trimestre ca s'est produit etc pour mener à des plans d'actions mais boulette comme je suis je n'ai pas envoyé le bon fichier !!!
 

Pièces jointes

  • Test-TCD.xlsx
    139.7 KB · Affichages: 13

MarionP85

XLDnaute Nouveau
Bonjour,
Je ne comprends pas très bien :
1 - L'intitulé de l'onglet est "resultats par tournée", pourtant je ne vois pas le champ "tournée" dans le TCD.
2 - L'objectif est de masquer ou d'afficher dans une autre couleur ?
3 - Quelque soit le nombre de mois, c'est toujours si il y en a au moins 3 de vides ?

Serait-il possible, puisque le fichier n'a malheureusement pas été anonymisé :oops:, de nous dire précisément le but recherché.

Pour info, je me demande s'il ne faut pas plutôt faire un TCD basé sur du Powerquery ...

@+
Je ne connais pas Powerquery je vais aller me renseigner
 

MarionP85

XLDnaute Nouveau
Bonjour

Tu as raison, c'est un oubli, voila le fichier corrigé et j'ai documenté le code.

Bonne soirée
Cordialement
VB:
Public Compteur As Integer, Seuil_NV As Byte, Nb_Col As Byte 'déclaration de variables publiques accessibles par l'ensemble des procédures
Sub Traitement_TCD()
    With Application
        .ScreenUpdating = False 'désactivation de l'affichage pour le temps de traitement
        .Calculation = xlCalculationManual 'désactivation du calcul automatique pour le temps de traitement
    End With
    On Error GoTo Gere_Erreurs 'routinz de gestion des erreurs pour réactiver le calcul automatique si erreur
    Seuil_NV = Feuil1.Range("N2").Value 'définition de la valeur de seuil
    Nb_Col = Feuil1.Range("IV4").End(xlToLeft).Column - 4 'définition du Nbr de colonne du tableau, à mettre à jour si ajout de colonne avec valeur en ligne 4
    For Compteur = Feuil1.Range("A65536").End(xlUp).Row To 6 Step -1 'boucle sur les lignes du tableau
        If Test_Vides Then 'appel de la fonction test existence cellule vide
            If Nb_Col - Feuil1.Range(Feuil1.Range("B" & Compteur).Address & ":" & Feuil1.Range("B" & Compteur).Offset(0, Nb_Col).Address).SpecialCells(xlCellTypeBlanks).Count < Seuil_NV Then 'teste le nbr de cellules pleines si < au seuil
                Feuil1.PivotTables("Producteurs NC").PivotFields("numéro").PivotItems(Feuil1.Range("A" & Compteur).Value).Visible = False 'sur test positif, désactive le numéro dans le TCD
            End If
        End If
    Next Compteur
Gere_Erreurs:
    With Application
        .ScreenUpdating = True 'activation de l'affichage
        .Calculation = xlCalculationAutomatic 'activation du calcul automatique
    End With
End Sub
Function Test_Vides()
    Dim Nb_Temp As Integer
    On Error GoTo Gere_Erreurs 'sur erreur, renvoie sur Gere_Erreurs
    Nb_Temp = Feuil1.Range(Feuil1.Range("B" & Compteur).Address & ":" & Feuil1.Range("B" & Compteur).Offset(0, Nb_Col).Address).SpecialCells(xlCellTypeBlanks).Count 'compte les cellules vides parmi la ligne compteur du TCD, renvoie une erreur si aucune et sort de la function qui reste à false
    Test_Vides = True 'si pas d'erreur, passe la Function Test_Vides à True
Gere_Erreurs:
End Function
Merci beaucoup à vous !!
 

Laurent78

XLDnaute Occasionnel
Bonjour à tous,
cela me trottait dans la tête de répondre au besoin de Marion, en utilisant PowerQuery; j'ai fait un truc rapidement. Sans remettre en question la procédure vba de Yeahou, je dirais que l'avantage de Powerquery (si je ne me suis pas trompé :rolleyes:) est de pouvoir sélectionner le nombre de colonne vide/non vide et ainsi d'afficher/masquer les éléments du tableau à loisir.
@+
 

Pièces jointes

  • Test-TCD (1).xlsx
    150.6 KB · Affichages: 5

Discussions similaires