Quel est le niveau du mode plan affiché ?

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
lSteph
Le #4974621
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"
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


Jac
Le #4974261
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"
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"
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


Publicité
Poster une réponse
Anonyme