XL 2019 [Résolu] VBA - UserForm + SpinButton --> ignorer les lignes masquées

Fredox

XLDnaute Occasionnel
Bonjour à tous,

Tout est dans le titre: Je cherche à ignorer l'affichage dans mon UserForm des lignes maquées.

Je pense déja que ma variable z (ActiveCell au départ) pose problème puisqu'elle n'est pas déclarée pour pour le module complet.
S'agissant d'un Private Sub je n'y arrive pas.

Ensuite je pense que ce code devrait aider:
VB:
While Rows(z + SpinButton1).Hidden = True
        z = z + 1
        Wend

Un petit coup de main svp, ç'est plus simple à dire qu'a faire :( ?

Merci
 

Pièces jointes

  • Mon_classeur_test.xlsm
    26 KB · Affichages: 16

Staple1600

XLDnaute Barbatruc
Re

Pour la question (si j'ai bien compris)
En mettant au préalable, la propriété Min du SpinButton sur 5
Voici ma proposition
VB:
Private Sub UserForm_Initialize()
Dim i&:         z = SpinButton1
For i = 1 To 4: Me.Controls("TextBox" & i) = Sheets(1).Cells(z, i): Next
Me.Label2 = z
End Sub
 

Fredox

XLDnaute Occasionnel
Bonjour Staple1600,

Merci de ta réponse.
J'ai remplacer ma macro "UserForm_Initialize" par ton code, cela ne correspond pas mon besoin.
Je veux afficher mes contenus du tableau dans le UserForm, mais si des lignes sont filtrées (masquées) qu'elles soient ignorées dans le UserForm, on passe à la suivante.

J'ai modifier le code du UserForm en ce sens avec un bloucle maison, cela fonctionne.
En revanche s'il passe bien les lignes maquées, il faut 2 clics lors de la suivante pour continuer à défiler.

Bizarre ?
 

Pièces jointes

  • Mon_classeur_test.xlsm
    24.7 KB · Affichages: 1

job75

XLDnaute Barbatruc
Bonjour Fredox, JM, le forum,

Voyez le fichier joint et le code de l'UserForm :
VB:
Dim sens%, lig& 'mémorise les variables

Private Sub SpinButton1_SpinUp()
sens = 1
Change
End Sub

Private Sub SpinButton1_SpinDown()
sens = -1
Change
End Sub

Sub Change()
Dim i&, col%
Label1 = ""
With SpinButton1
    .Min = 6
    .Max = Cells(Rows.Count, 1).End(xlUp).Row
    For i = .Value To IIf(sens = 1, .Max, .Min) Step sens
        If Not Rows(i).Hidden Then lig = i: Exit For
    Next i
    .Value = lig
End With
For col = 1 To 4
    Me("TextBox" & col) = Cells(lig, col)
Next col
Label1 = "Ligne " & lig
End Sub

Private Sub CommandButton1_Click()
If lig < 6 Then Exit Sub
Dim col%
For col = 1 To 4
    Cells(lig, col) = Me("TextBox" & col)
Next
[A1] = lig
Unload Me
End Sub
Bon week-end.
 

Pièces jointes

  • Mon_classeur_test(1).xlsm
    31.2 KB · Affichages: 4

Fredox

XLDnaute Occasionnel
Bonjour Job75,

Cela fonctionne parfaitement, merci.

Juste un petit point: J'avais par facilité mis le double clic qui active le UserForm sur une celulle précise, en fait dans mon classeur final cela ce passe sur la plage définie (d’où l'utilisation d'ActiveCell)

Je ne vois pas comment déclarer ma variable ActiveCell sans modifier les autres lors de la modification du SpinButton


Merci
 

Pièces jointes

  • Mon_classeur_test.xlsm
    27.5 KB · Affichages: 4

Fredox

XLDnaute Occasionnel
Je (re)mets mon fichier, j'ai réussi à faire ce que je voulais grâce à ta participation job75 (notamment SpinButtonUp & down).

En faisant up cela est parfait, en faisant down ça bloque a cause de la dernière ligne masquée.
Si vous avez une idée ?

Merci beaucoup en tout cas
 

Pièces jointes

  • Mon_classeur_test.xlsm
    27.7 KB · Affichages: 3

Fredox

XLDnaute Occasionnel
Voila mon fichier fonctionnel, si ça peut aider quelqu'un.
J'ai réussi a faire (avec de l'aide) ce que je voulais à 100%

Je ne m'attarde pas sur comment incrémenter les valeurs dans le UserForm ou le tableau ensuite.


Merci encore
 

Pièces jointes

  • Mon_classeur_test.xlsm
    27.8 KB · Affichages: 3

job75

XLDnaute Barbatruc
Fichier (2) où j'ai simplement ajouté cette macro :
VB:
Private Sub UserForm_Initialize()
SpinButton1.Max = ActiveCell.Row
SpinButton1 = ActiveCell.Row
sens = 1
Change
End Sub
Mais comme déjà dit je ne vois pas vraiment l'intérêt du SpinButton.
 

Pièces jointes

  • Mon_classeur_test(2).xlsm
    31.2 KB · Affichages: 4
Dernière édition:

Statistiques des forums

Discussions
312 083
Messages
2 085 188
Membres
102 809
dernier inscrit
Sandrine83