Microsoft 365 Grouper - plan automatique

Bichette001

XLDnaute Junior
Bonjour
j'aimerais svp, créer un plan automatique en fonction à chaque changement de donnée dans des colonnes choisies. groupe plan automatique ne fonctionne pas .
pourquoi d'après vous . en Pj le fichier exemple grouper à chaque changement de données colonne C.
merci
Bichette
 

Pièces jointes

  • Grouper plan automatique excel.xlsx
    120.7 KB · Affichages: 14

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bichette,
Un essai en PJ, J'ai préféré filtrer sur la colonne F c'es plus simple et pareil. Il suffit de repérer les "1".
VB:
Sub Grouper()
Dim DerLig%, L%
Application.ScreenUpdating = False
Cells.ClearOutline
DerLig = Sheets("STEPS 2B").Range("I65500").End(xlUp).Row
L = 3 ' init 3 car 1 à L=2
While L < DerLig
    Ldébut = L
    While Cells(L, "I") <> 1
        L = L + 1
    Wend
    Rows(Ldébut - 1 & ":" & L - 2).Rows.Group
    L = L + 1
Wend
ActiveSheet.Outline.ShowLevels RowLevels:=1
End Sub
Sub Dégrouper()
Application.ScreenUpdating = False
Cells.ClearOutline
End Sub
 

Pièces jointes

  • Grouper plan automatique excel.xlsm
    139.5 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Voilà :
VB:
Sub Grouper()
Dim DerLig%, L%
Application.ScreenUpdating = False                          ' Figer l'écran pour être plus rapide
Cells.ClearOutline                                          ' Supprimer tous les groupements existant
DerLig = Sheets("STEPS 2B").Range("I65500").End(xlUp).Row   ' Calcul de le dernière ligne de la feuille
L = 3                                                       ' L : N° de ligne, init à 3 car on a 1 en L=2
While L < DerLig                                            ' Pour toutes les lignes
    Ldébut = L                                              ' De la ligne de début
    While Cells(L, "I") <> 1                                ' Tant qu'on n'a pas 1 en colonne I
        L = L + 1                                           ' On incrémente le N° de ligne
    Wend
    Rows(Ldébut - 1 & ":" & L - 2).Rows.Group               ' On groupe les lignes de Ldébut à L
    L = L + 1                                               ' On passe à la ligne suivante
Wend                                                        ' Et on continue tant que pas fini
ActiveSheet.Outline.ShowLevels RowLevels:=1                 ' On affiche la feuille groupée
End Sub
Sub Dégrouper()
Application.ScreenUpdating = False                          ' Figer l'écran pour être plus rapide
Cells.ClearOutline                                          ' Supprimer tous les groupements existant
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
En fait je recherche les cellules en colonne I qui contienne 1. Et je me sers de ça pour finir le groupe précédent en utilisant la ligne N-1.
Sauf qu'au début si je commence à 2 j'ai déjà 1. Donc je commence à la ligne 3.
C'est juste un problème d'initialisation de la variable.
 

Bichette001

XLDnaute Junior
En fait je recherche les cellules en colonne I qui contienne 1. Et je me sers de ça pour finir le groupe précédent en utilisant la ligne N-1.
Sauf qu'au début si je commence à 2 j'ai déjà 1. Donc je commence à la ligne 3.
C'est juste un problème d'initialisation de la variable.
il faut donc en pré requis qu'il y ait au moins 2 lignes pr que cela fonctionne ?c'est bien cela ?
 

Statistiques des forums

Discussions
314 450
Messages
2 109 731
Membres
110 553
dernier inscrit
loic55