Afficher des blocs de cellules cachés un bloc à la fois

Bonjour,

J’ai ce code qui me permet de montrer les rangées 34 à 37 que j’ai cachés :

Sub UnhideObjectives()
Rows(« 34:37 »).EntireRow.Hidden = False
End Sub

J’aimerais savoir comment mon bouton auquel est affecté mon code pourrait aussi montrer les rangées 44 à 47 et 54 à 57, mais pas en même temps. Un bloc de quatre cellules à la fois.

Merci.

Bonjour

Si j’ai bien compris a teste

Sub UnhideObjectives()
Static currentStage As Integer

Rows(« 34:37 »).EntireRow.Hidden = True
Rows(« 44:47 »).EntireRow.Hidden = True
Rows(« 54:57 »).EntireRow.Hidden = True

Select Case currentStage
Case 0
Rows(« 34:37 »).EntireRow.Hidden = False
currentStage = 1
Case 1
Rows(« 44:47 »).EntireRow.Hidden = False
currentStage = 2
Case 2
Rows(« 54:57 »).EntireRow.Hidden = False
currentStage = 0
End Select
End Sub

2 « J'aime »

Presque. Merci beaucoup. Je vois que les trois blocs s’affichent un après l’autre, mais je me demandais si c’était possible que le bloc 34:37 reste visible quand on passe au bloc 44:47. En fait, je voudrais que certaines sections du document soit cachées et que lorsqu’on clique sur un bouton créé à partir d’une forme, on affiche les rangées 34:37 la première fois et les rangées 44:47 la deuxième fois et ainsi de suite.

Bonjour

A teste sans fichier aucune visibilité

Sub UnhideObjectives()
Static currentStage As Integer

Rows(« 34:37 »).EntireRow.Hidden = True
Rows(« 44:47 »).EntireRow.Hidden = True
Rows(« 54:57 »).EntireRow.Hidden = True

Select Case currentStage
Case 0
Rows(« 34:37 »).EntireRow.Hidden = False
currentStage = 1
Case 1
Rows(« 34:37 »).EntireRow.Hidden = False
Rows(« 44:47 »).EntireRow.Hidden = False
currentStage = 2
Case 2
Rows(« 34:37 »).EntireRow.Hidden = False
Rows(« 44:47 »).EntireRow.Hidden = False
Rows(« 54:57 »).EntireRow.Hidden = False
currentStage = 0
End Select
End Sub

Pour répondre à votre demande, j’ai ajusté le code de telle sorte que les rangées 34:37 restent affichées lors du passage aux autres étapes (cases 1 et 2). Cela signifie que lorsque vous passez à l’étape 1, les rangées 34:37 et 44:47 seront visibles, et lors du passage à l’étape 2, les rangées 34:37, 44:47, et 54:57 seront toutes visibles.
après la case 2, le code reviendra à la case 0 lors de la prochaine exécution.

Ainsi, en cliquant plusieurs fois sur le bouton assigné à cette macro, vous verait les sections du document s’afficher progressivement

salutations

1 « J'aime »

Bonjour,

Entre temps j’ai trouvé ce code qui était intéressant :

Sub UnhideObjectives()
Static currentStage As Integer
With ActiveSheet ’ (Or, for example, With ThisWorkbook.Sheets(1)
.Rows(« 34:37 »).EntireRow.Hidden = False
.Rows(« 42:45 »).EntireRow.Hidden = (currentStage < 1)
.Rows(« 50:53 »).EntireRow.Hidden = (currentStage < 2)
End With
currentStage = (currentStage + 1) Mod 3
End Sub

Ceci dit, j’aimerais savoir comment on arrête la fonction current stage pour qu’en cliquant plusieurs fois le code ne reviennent pas à 0 et qu’après avoir montré les cases dans l’ordre, les cases ne disparaissent pas.

Merci.

Sub UnhideObjectives()
     Static currentStage As Integer
     With ActiveSheet                        ' (Or, for example, With ThisWorkbook.Sheets(1)
          s = WorksheetFunction.Dec2Bin(7 - currentStage, 3)
          MsgBox currentStage & vbLf & s
          .Rows("34:37").EntireRow.Hidden = (Mid(s, 1, 1) = "0")
          .Rows("42:45").EntireRow.Hidden = (Mid(s, 2, 1) = "0")
          .Rows("50:53").EntireRow.Hidden = (Mid(s, 3, 1) = "0")
     End With
     currentStage = (currentStage + 1) Mod 8
End Sub

Sub RAZ()
     currentStage = 0
End Sub

Une macro « RAZ » pour remettre currentstage à 0
L’autre macro qui incrèmente currentstage avec 1, donc les 8 (de 0 à 7) possibilités.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.