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