Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Modification d'une macro grouper plan

Quincy

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous

J'aimerais modifier cette macro trouvée sur le forum (merci aux intervenants, ERIC S et jose.carreira) afin de l'adapter à mon fichier.
Voir fichier joint.

Merci pour votre aide.
Cordialement,

Quincy
 

Pièces jointes

  • Quincy-macro Groupe_A.xlsm
    21.8 KB · Affichages: 32

job75

XLDnaute Barbatruc
Bonjour Quincy, Lone-wolf,
Code:
Sub Grouper()
Dim deb As Range, i&
Application.ScreenUpdating = False
Cells.ClearOutline 'RAZ
With [A1].CurrentRegion
    Set deb = .Cells(3, 1)
    For i = 4 To .Rows.Count + 1
        If .Cells(i, 1) <> .Cells(i - 1, 1) Then
            Range(deb, .Cells(i - 1, 1)).EntireRow.Group
            i = i + 1
            Set deb = .Cells(i, 1)
        End If
    Next
End With
ActiveSheet.Outline.ShowLevels RowLevels:=1
End Sub
A+
 

Quincy

XLDnaute Occasionnel
Supporter XLD
Bonjour Lone-Wolf, job75
Merci à vous deux pour vos réponses.

Lone-wolf, je clique sur le bouton mais il ne se passe rien, et je n'y vois pas de macro associée.

job75, j'ai lancé ta macro et j'ai le résultat souhaité.

Encore merci, cordialement.

Quincy
 

Quincy

XLDnaute Occasionnel
Supporter XLD
Re Lone-Wolf

Désolé, je viens de comprendre.
Je me suis mal exprimé lors de ma demande. En fait, la macro que lançais me mettait des boutons à développer sur la première ligne en dessous des lignes oranges et je ne savais pas la modifié.
Désolé si je t'ai froissé.
merci et bonne journée.
 

job75

XLDnaute Barbatruc
Re,

Une autre méthode, en s'appuyant sur la couleur de la cellule A2 et avec une fonction VBA :
Code:
Sub Grouper()
If IsError(Application.Caller) Then Exit Sub 'sécurité
Dim a As Range, groupe As Boolean
Application.ScreenUpdating = False
Cells.ClearOutline 'RAZ
If ActiveSheet.DrawingObjects(Application.Caller).Text = "Grouper" Then
    With [A1].CurrentRegion.Columns(3) 'colonne auxiliaire
        .Formula = "=1/Couleur(A1,A$2)"
        On Error Resume Next 'si aucune SpecialCell
        For Each a In .SpecialCells(xlCellTypeFormulas, 16).Areas
            a.EntireRow.Group
        Next
        .Clear
    End With
    ActiveSheet.Outline.ShowLevels RowLevels:=1
    groupe = True
End If
ActiveSheet.DrawingObjects(Application.Caller).Text = IIf(groupe, "Dégrouper", "Grouper")
End Sub

Function Couleur(c As Range, ref As Range)
Couleur = c.Interior.Color = ref.Interior.Color
End Function
Fichier joint.

A+
 

Pièces jointes

  • Quincy-macro Grouper(1).xlsm
    28 KB · Affichages: 29

Discussions similaires

Réponses
5
Affichages
209
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…