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
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