Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quel est le niveau du mode plan affiché ?

2 réponses
Avatar
Jac
Bonjour à tous,

afin de gérer une numérotation de pages, j'ai besoin de trouver
en vba quel est le niveau du plan actuellement affiché.
J'ai essayé en m'inspirant de l'aide avec

If Worksheets(2).Outline.ShowLevels = 1 Then MsgBox "Niveau de plan = 1"

mais, le vba, dans son infinie bonté me dit
"Impossible de lire la propriété ShowLevels da la classe Outline."

Y a-t-il une instruction magique pour y arriver ?

Merci d'avance,

Jac

2 réponses

Avatar
lSteph
Bonsoir,

suppose cellules du plan contenues en d4:g17 sinon adapter:

Option Explicit

Sub atPlanLevel()
Dim c As Range, Rlevel As Integer, Clevel As Integer

On Error GoTo gestErr
For Each c In _
Feuil1.Range("d4:g17").CurrentRegion.Cells.SpecialCells(xlCellTypeVisible)

If CInt(Rows(c.Row).OutlineLevel) _
Rlevel Then Rlevel = CInt(Rows(c.Row).OutlineLevel)
If CInt(Columns(c.Column).OutlineLevel) _

Clevel Then Clevel = CInt(Columns(c.Column).OutlineLevel)


Next
msgbox "Niveaux de plan affichés:" & vbCrLf & _
"Lignes: " & Rlevel & vbCrLf & _
"Colonnes: " & Clevel & vbCrLf

Exit Sub
gestErr:
msgbox "Pas de plan affiché"

End Sub

'lSteph


On 11 oct, 15:46, "Jac" wrote:
Bonjour à tous,

afin de gérer une numérotation de pages, j'ai besoin de trouver
en vba quel est le niveau du plan actuellement affiché.
J'ai essayé en m'inspirant de l'aide avec

If Worksheets(2).Outline.ShowLevels = 1 Then MsgBox "Niveau de plan = 1"

mais, le vba, dans son infinie bonté me dit
"Impossible de lire la propriété ShowLevels da la classe Outline."

Y a-t-il une instruction magique pour y arriver ?

Merci d'avance,

Jac


Avatar
Jac
Merci LSteph,

ça fonctionne parfaitement sur un tableau test
Mais mon vrai tableau, 1700 liges dont 215 vides, 3 niveaux de regroupements
sur les lignes, 1 sur les colonnes (pour le test macro) et... 18 groupes de
cellules fusionnées (oui, je sais, mais je voulais en mettre encore plus...)
ne répond pas autre chose que niveau 1 sur les lignes et 2 sur les colonnes
quelle que soit la config.
J'ai mis une valeur dans chacune des lignes vides afin d'obtenir un tableau
en un bloc, mais ça ne change rien.

Sniff...


"lSteph" a écrit dans le message de news:

Bonsoir,

suppose cellules du plan contenues en d4:g17 sinon adapter:

Option Explicit

Sub atPlanLevel()
Dim c As Range, Rlevel As Integer, Clevel As Integer

On Error GoTo gestErr
For Each c In _
Feuil1.Range("d4:g17").CurrentRegion.Cells.SpecialCells(xlCellTypeVisible)

If CInt(Rows(c.Row).OutlineLevel) _
Rlevel Then Rlevel = CInt(Rows(c.Row).OutlineLevel)
If CInt(Columns(c.Column).OutlineLevel) _

Clevel Then Clevel = CInt(Columns(c.Column).OutlineLevel)


Next
msgbox "Niveaux de plan affichés:" & vbCrLf & _
"Lignes: " & Rlevel & vbCrLf & _
"Colonnes: " & Clevel & vbCrLf

Exit Sub
gestErr:
msgbox "Pas de plan affiché"

End Sub

'lSteph


On 11 oct, 15:46, "Jac" wrote:
Bonjour à tous,

afin de gérer une numérotation de pages, j'ai besoin de trouver
en vba quel est le niveau du plan actuellement affiché.
J'ai essayé en m'inspirant de l'aide avec

If Worksheets(2).Outline.ShowLevels = 1 Then MsgBox "Niveau de plan = 1"

mais, le vba, dans son infinie bonté me dit
"Impossible de lire la propriété ShowLevels da la classe Outline."

Y a-t-il une instruction magique pour y arriver ?

Merci d'avance,

Jac