Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Userform - manipulation de contrôles et propriétés

STephane

XLDnaute Occasionnel
bonsoir,


je m'amuse à bidouiller sous VBA Excel en ce moment, je vous colle ici quelques procédures, que vous jugerez peut-être inutile, peut-être pas, c'est pour le fun et ça condense un peu le code quand même...

de toute façon mon appli fait partie de mes "Gas Plants"


Afin d'éviter des elseif pour gérer la visibilité de certains objets, comme ci-dessous
'If TabStrip1.SelectedItem.Index = 0 Then
' Me.fr_contour.Visible = True
'
' Me.fr_cell2cell.Visible = False
' Me.fr_options.Visible = False
' Me.fr_about.Visible = False
'
'ElseIf TabStrip1.SelectedItem.Index = 1 Then

j'ai crée la fonction pSetVisibilityAlongSelectedTab

Call pSetVisibilityAlongSelectedTab(TabStrip1, _
Array(Array(0, _
Array(Array(fr_contour, True), _
Array(fr_cell2cell, False), _
Array(fr_options, False), _
Array(fr_about, False))), _
Array(1, _
Array(Array(fr_contour, False), _
Array(fr_cell2cell, True), _
Array(fr_options, False), _
Array(fr_about, False))) _
, _
Array(2, _
Array(Array(fr_contour, False), _
Array(fr_cell2cell, False), _
Array(fr_options, Visible), _
Array(fr_about, False))) _
, _
Array(3, _
Array(Array(fr_contour, False), _
Array(fr_cell2cell, False), _
Array(fr_options, False), _
Array(fr_about, Visible))) _
))

Private Sub pSetVisibilityAlongSelectedTab(objTab As TabStrip, creuset As Variant)

With objTab
For i = 0 To UBound(creuset)
If creuset(i)(0) = .SelectedItem.Index Then 'index tab
For j = 0 To UBound(creuset(i)(1)) 'sous-array au nombre de 4, 3 est retourné
'Debug.Print creuset(i)(1)(j)(0).Name 'donne l'objet
'Debug.Print creuset(i)(1)(j)(1) 'donne la visibilité à attribuer
creuset(i)(1)(j)(0).Visible = creuset(i)(1)(j)(1)
Next j
End If
Next i
End With
End Sub


Pour changer le texte des onglets d'un contrôle tabstrip

Call pSetTabsCaption(TabStrip1, Array(0, 1, 2, 3), Array("Contour & Diagos", "Range2Range", "Options", "Infos"))

Private Sub pSetTabsCaption(objTab As TabStrip, arrIndex As Variant, arrLibelles As Variant)
'attention, arrIndex contient les index numériques des onglets
For i = 0 To UBound(arrIndex)
objTab.Tabs.Item(arrIndex(i)).Caption = arrLibelles(i)
Next i
'que ce passe-t-il si je ne passe par un tableau/une variable variante ?
End Sub


'position des cadres de données.
Call pSetWidthSizeFromOther(Array(fr_contour, fr_options, fr_about), fr_cell2cell)

Private Sub pSetWidthSizeFromOther(arrObjects As Variant, objModel)
For i = 0 To UBound(arrObjects)
arrObjects(i).Left = objModel.Left
arrObjects(i).Top = objModel.Top
Next i

End Sub


bye bye
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…