XL 2010 Modification d'une macro grouper plan

  • Initiateur de la discussion Initiateur de la discussion Quincy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Quincy

XLDnaute Occasionnel
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

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+
 
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
 
Re Quincy

@Quincy : comment ça il ne se passe rien?? 😵 J'ai cru que tu voulais reporter les données en colonne E.

tb.gif
 
Dernière édition:
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.
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
66
Affichages
889
Réponses
8
Affichages
191
Réponses
33
Affichages
899
Retour