[Résolu] Afficher Masquer ligne sous conditions

Lone-wolf

XLDnaute Barbatruc
Bonjour Le Forum,

d'après l'exemple du classeur joint, je cherche à afficher et masquer ligne par ligne les données des 3 tableaux, en gardant les deux macros déjà inscrites. Les lignes Max pour chaque tableau sont variables, mais pas plus de 30.

Merci d'avance pour votre aide.



A+ :cool:
 

Pièces jointes

  • Classeur1.xls
    46 KB · Affichages: 43
  • Classeur1.xls
    46 KB · Affichages: 56
  • Classeur1.xls
    46 KB · Affichages: 52
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [Résolu] Afficher Masquer ligne sous conditions

Bonjour à toi aussi Lone-Wolf...

Tu n'es pas d'accord avec les "effets constatés" avec les SpinButton (cf mon précédent message)
Ou tu l'as juste zappé ce message...:rolleyes: ?

NB: Ma quiche étant cuite et désormais avalée, je suis en en train de tester un module de classe pour les SpinButton
(en suivant la logique de Si...)
Intéressé ou pas ?
C'est pour savoir si je reste dans VBE à moduler ou si je passe au dessert , ;)
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : [Résolu] Afficher Masquer ligne sous conditions

Bonjour à tous
SI... [SUP](c)Si[/SUP] tous les tableaux font 30 lignes, on pourrais utiliser un module de classe avec des CommandButtons...
Cordialement

EDIT
Je vois que la digestion de la quiche de Staple et de ma fajitas nous ont amené a la même idée :D
 

Pièces jointes

  • Afficher_Masquer_Lignes_(Module de Classe).xlsm
    28.9 KB · Affichages: 19
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [Résolu] Afficher Masquer ligne sous conditions

Bonjour Efgé ;)

Voici donc mon module de classe (avec quelques tâches de pannacota et de coulis ;))
(je vais voir le tien de ce pas pour voir la beauté intrinsèque de ses lignes que je suppose déjà y découvrir ;) )
Dans un module de classe nommé ClassSpinBtn
Code:
Option Explicit
Private WithEvents cSB_Event As MSForms.SpinButton
Public Property Set EventHandle(FSB As Object)
Set cSB_Event = FSB
End Property

Private Sub cSB_Event_SpinUp()
Dim l&
l = ActiveSheet.Shapes(cSB_Event.Name).TopLeftCell.Row + cSB_Event.Value - 1
ActiveSheet.Rows(l).EntireRow.Hidden = True
End Sub

Private Sub cSB_Event_SpinDown()
Dim l&
l = ActiveSheet.Shapes(cSB_Event.Name).TopLeftCell.Row + cSB_Event.Value - 1
ActiveSheet.Rows(l).EntireRow.Hidden = False
End Sub
Dans un module standard
Code:
Option Explicit

Public colSBtn As Collection
Public Sub mInit()'/variation sur un code d'Andy Pope/
Dim clsSpn As ClassSpinBtn, oShp As Shape
Set colSBtn = New Collection
    For Each oShp In Worksheets("Sheet1").Shapes
        If InStr(oShp.OLEFormat.progID, "Forms.SpinButton") > 0 Then
            With oShp
                .OLEFormat.Object.Object.Min = 1
                .OLEFormat.Object.Object.Max = 30
            End With
            Set clsSpn = New ClassSpinBtn
            Set clsSpn.EventHandle = oShp.OLEFormat.Object.Object
            colSBtn.Add clsSpn, CStr(colSBtn.Count + 1)
        End If
    Next
End Sub
Et dans ThisWorkBook
Code:
Option Explicit
Private Sub Workbook_Open()
mInit
End Sub
PS: test OK sur mon PC (XL2013+W7)
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : [Résolu] Afficher Masquer ligne sous conditions

Re
@Staple
Et oui, j'a triché :D
Avec les commandButtons s'est plus simple (un seul événement) :D

Il faudra quand même que je mette mon nez dans les Property

Cordialement

EDIt
A bien relire le fil, il semble que je soi H.S, la demande est justement de ne pas tout masquer en une foi :rolleyes:
je remballe et vais écouter Céline Dion en boucle durant 2 heures pour m'apprendre à être plus attentif :D

Cordialement
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [Résolu] Afficher Masquer ligne sous conditions

Bonsoir Si...

Jolis Wingdings ;)
(tes premiers amours c'est les mignonnes polices ou les procs événementielles ? )

Pour infos

Sur ton dernier fichier, si un Données/Grouper est effectué (manuellement ou par macro), ta procédure événementielle ne fonctionne plus ensuite
Voir code ci-dessous pour tester ce cas de figure
Code:
Sub Test()
Application.ScreenUpdating = False
Dim i&
For i = 7 To 130 Step 31
Cells(i, 1).Offset(1).Resize(30).Rows.Group
Next i
End Sub
Code:
Sub EFFACER_PLAN()
[A1:K131].ClearOutline
End Sub
 

Si...

XLDnaute Barbatruc
Re : [Résolu] Afficher Masquer ligne sous conditions

salut

re Stapple

Farouche adepte du principe KISS*que tu as judicieusement rappelé dans un autre fil, j’élimine autant que faire se peut les boutons (disgracieux ou pas) et très souvent je me rabats sur les évènementielles en utilisant les dings dings (Web et Wing) qu’on a à notre disposition gracieusement.

Quant à mes propositions, elles tiennent compte du contexte donné et j’avoue ne pas chercher à tester toutes les causes de rupture. Il y a des intermédiaires comme toi qui y remédie gentiment ;).
De Grouper ne m'a jamais effleuré l'esprit.

*ma souris chérie qui lit par-dessus mon épaule m’en rend grâce.
 

Discussions similaires

Réponses
4
Affichages
200
Réponses
2
Affichages
374
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 287
Messages
2 086 827
Membres
103 397
dernier inscrit
Kilement