XL 2010 Débutante en macro

Aleph8

XLDnaute Nouveau
Bonjour à tous,
Je suis débutante en macro excel est je cherche sur le forum depuis la semaine dernière et je sèche...
Je cherche à créer un bouton sur une base de données excel.
J'ai créé un premier bouton qui me permet de masquer/afficher par Formation
J'essaie de créer un second bouton qui me permette de masquer/afficher les agents dont la ligne est colorée (à la main) et ça ne fonctionne pas....

Le top serait au final que les deux boutons n'en soit plus qu'un seul.
Pourriez-vous m'aider s'il vous plaît?
 

Pièces jointes

  • Base 01.xls
    49.5 KB · Affichages: 24

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Aleph8

Aleph8
Pour le top, je passe la main aux petits camarades (pour cause de version Excel)

Pour le masquage/démasquage, une macro all-in-one
VB:
Sub Masque_Demasque()
Columns("I:J").Hidden = Not Columns("I:J").Hidden
End Sub
1ere exécution, on masque
2nd exécution, on démasque.
 

Staple1600

XLDnaute Barbatruc
>Re

Je ne peux pas faire plus car ma version d'Excel (pour les jours à venir) ne peut pas filtrer sur les couleurs.

Donc il faudra attendre qu'à autre membre du forum passe dans ton fil pour traiter ce point-là.

EDITION: Bonjour ma pomme ;)
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Aleph8, bienvenue sur XLD :) , bonjour Staple1600 ;),

Un essai "à ma sauce" dans le fichier joint. Le code est dans le module de code de la feuille "Feuil1". Modifiez le contenu de la cellule B1 pour filtrer.
J'avais cru comprendre qu'on filtrait sur le secteur.
Si c'est sur la couleur :eek:, mes croyances concernant Excel et les bases de données m'interdisent de les manipuler et je passe la main.
 

Pièces jointes

  • Aleph8- Base 01- v1.xlsm
    26.1 KB · Affichages: 3
Dernière édition:

Aleph8

XLDnaute Nouveau
Bonjour et merci beaucoup mapomme,
Je ne souhaite pas filtrer par secteur, je veux pouvoir colorer une ligne en jaune (de la colonne A à F) et que le bouton me permette de n'afficher que les lignes jaunes en masquant les autres.
 

job75

XLDnaute Barbatruc
Bonjour Aleph8, JM, mapomme,

Je me cantonne à ce qui est demandé, voyez le fichier joint et cette macro :
VB:
Sub Masquer_Afficher()
With ActiveSheet
    If .DrawingObjects(1).Text Like "Masquer*" Then
        .DrawingObjects(1).Text = "Afficher Formation A et lignes non colorées"
        .Columns("I:J").Hidden = True
        .[A4].CurrentRegion.AutoFilter 1, vbYellow, xlFilterCellColor
    Else
        .DrawingObjects(1).Text = "Masquer Formation A et lignes non colorées"
        .Columns("I:J").Hidden = False
        If .FilterMode Then .ShowAllData
    End If
End With
End Sub
A+
 

Pièces jointes

  • Base(1).xlsm
    24.9 KB · Affichages: 2

job75

XLDnaute Barbatruc
Bon, fichier (2) avec cette macro :
VB:
Sub Masquer_Afficher()
With ActiveSheet
    If .DrawingObjects(1).Text Like "Afficher*" Then
        .DrawingObjects(1).Text = "Masquer Formation A et afficher les lignes non colorées"
        .Columns("I:J").Hidden = False
        .[A4].CurrentRegion.Offset(1).AutoFilter 1, vbYellow, xlFilterCellColor
    Else
        .DrawingObjects(1).Text = "Afficher Formation A et masquer les lignes non colorées"
        .Columns("I:J").Hidden = True
        If .FilterMode Then .ShowAllData
    End If
End With
End Sub
Un peu laborieux le texte du bouton non ?

Notez le .Offset(1), je l'ai ajouté par sécurité, au cas où l'on enlève le filtre.
 

Pièces jointes

  • Base(2).xlsm
    25.2 KB · Affichages: 7

job75

XLDnaute Barbatruc
Ceux qui comme Staple1600 ne peuvent utiliser le filtre couleur pourront utiliser le fichier .xls joint et ces codes :
VB:
Function Couleur(c As Range) As Byte
If c.Interior.ColorIndex <> xlNone Then Couleur = 1
End Function

Sub Masquer_Afficher()
With ActiveSheet
    If .DrawingObjects(1).Text Like "Afficher*" Then
        .DrawingObjects(1).Text = "Masquer Formation A et afficher les lignes non colorées"
        .Columns("J:K").Hidden = False
        .[A:A].ClearContents 'RAZ
        With .[A4].CurrentRegion.Offset(1)
            .Columns(1) = "=Couleur(RC[1])"
            .AutoFilter 1, 1 'filtre les 1 en colonne auxiliaire A
        End With
    Else
        .DrawingObjects(1).Text = "Afficher Formation A et masquer les lignes non colorées"
        .Columns("J:K").Hidden = True
        If .FilterMode Then .ShowAllData
    End If
End With
End Sub
La fonction VBA Couleur est utilisée dans la colonne auxiliaire A (à masquer).
 

Pièces jointes

  • Base 97-2003(1).xls
    84.5 KB · Affichages: 2

Aleph8

XLDnaute Nouveau
Bonjour à tous,
C'est un super fichier merci Job75
Mais je suis vraiment gourde, je me suis mal exprimée. Ce que je veux c'est afficher les lignes colorées avec la formation A uniquement en appuyant sur le bouton.
J'aimerai aussi comprendre les lignes de code que vous créez...
Merci encore et désolée de toutes ces demandes
 
Haut Bas