Supprimer et regrouper des lignes en fonction d'une valeur de cellule

toony.m

XLDnaute Nouveau
Une autre question cette fois-ci (avec un fichier à l'appui!) :

referentiel-demo.zip

Dans la feuille "referentiel" se trouve un tableau avec plusieurs lignes.
(Ces ligne devrait etre saisies à la volée et impacter les feuilles correspondantes mais ca c'est une autre question)
Pour chaque colonne de chaque ligne, il est possible d'attribuer la valeur 1, 2 ou rien.

Si l'on clique sur editer au-dessus de profil, l'onglet "dirigeant" s'ouvre.
J'ai réussi à faire apparaitre en grisé ou italique les lignes en fonctions de leur valeurs (0 ou rien=grisé, 2=italique).

Par contre je voudrais que les ligne grisées n'apparaissent pas.
Comment faire pour afficher uniquement les lignes dont la valeur vaut 1 ou 2 (sachant que le nombre de ligne peut varier ; tt dépend de ce qui sera saisie dans la 1ere feuille) ?

Avec quelques formules, j'arrive à ne pas en afficher, mais ca fait des lignes vides espacées et je cherche à tout regrouper...
 

mromain

XLDnaute Barbatruc
Re : Supprimer et regrouper des lignes en fonction d'une valeur de cellule

bonjour

j'ai rajouté une macro qui s'active lorsqu'on sélectionne l'onglet "Profil1" qui cache les lignes pour lesquelles la valeur de la colonne A est < à 1 (même formule que ta MFC)

par contre, je ne vois pas l'utilité de ta MFC (si tu caches tes lignes).

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Dim i As Integer
With ActiveSheet
    .Rows.Hidden = False
    For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 6 Step -1
        If .Cells(i, 1).Value < 1 Then .Rows(i).Hidden = True
    Next i
End With
Application.ScreenUpdating = True
End Sub

a+
 

Pièces jointes

  • Classeur1.zip
    23.3 KB · Affichages: 64
  • Classeur1.zip
    23.3 KB · Affichages: 71
  • Classeur1.zip
    23.3 KB · Affichages: 65

toony.m

XLDnaute Nouveau
Re : Supprimer et regrouper des lignes en fonction d'une valeur de cellule

Merci infiniment!

Cela fonctionne TB quand je clic sur l'onglet, mais quand je cherche a afficher la macro, aucune n'est listée dans l'"affichage des macros".

Faut-il cliquer sur une cellule en particulier pour voir le code ?
 

toony.m

XLDnaute Nouveau
Re : Supprimer et regrouper des lignes en fonction d'une valeur de cellule

Je l'ai trouvé, merci!

Sinon encore une petite question, j'essaye de décliner le code pour qu'il fonctionne avec le 2eme onglet "Profil2" et j'ai simplement fait cette modification mais ca ne fonctionne pas:

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Dim i As Integer
With ActiveSheet
    .Rows.Hidden = False
    For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 6 Step -1
        If .Cells(i, 1).Value < 1 Then .Rows(i).Hidden = True
    Next i
End With
Application.ScreenUpdating = True
End Sub

'ThisWorkbook.Sheets("Profil1").range("B6").interior.color
'ThisWorkbook.Sheets("Profil2").range("B6").interior.color
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Ca ne se declare pas comme ça apparemment...
 
Dernière édition:

mromain

XLDnaute Barbatruc
Re : Supprimer et regrouper des lignes en fonction d'une valeur de cellule

re,

en fait, le code est associé à l'onglet.
il faut donc que tu le recopie dans l'autre onglet (Profil1), et effectivement, il faut remplacer "Profil1" par "Profil2".

a+
 

Discussions similaires