Colorer l'onglet actif multipage d'un Userform

zephir94

XLDnaute Impliqué
Bonsoir à tous,

Petite question est-il possible de colorer l'onglet actif d'une multipage dans un userform et comment en vba ?
Vous remerciant par avance
 

lcoulon

XLDnaute Occasionnel
Bonjour,

Pouvez vous expliquer cette ligne dans le module de class svp ?

Code:
Cb.BackColor = Array(&HFF00&, &HFFFF&, &HFFFF00, &H80FF&, &HFF80FF, &H8080&)(n + 1)

On est sur un multipage a 5 pages et il y a 6 codes hexa de couleurs définis.
Si on en enlève pour avoir dans l'array 1 couleur par page, excel génère une erreur lorsqu'on clique sur le dernier bouton correspondant à la dernière page . :oops:

Merci à vous


Code:
Private Sub Cb_Click()

  n = Right(Cb.Name, 1)
 
  With User
 
    For i = 0 To 4
      .Controls("C" & i).BackColor = &HC0C0C0
      .M1.Pages(i).Visible = i = n
     Next
    Cb.BackColor = Array(&HFF00&, &HFFFF&, &HFFFF00, &H80FF&, &HFF80FF, &H8080&)(n + 1)
    .M1.Value = n: .M1.BackColor = Cb.BackColor
    
  End With
 
End Sub
 

ChTi160

XLDnaute Barbatruc
Bonsoir Icoulon
Cette Phrase
VB:
Cb.BackColor = Array(&HFF00&, &HFFFF&, &HFFFF00, &H80FF&, &HFF80FF, &H8080&)(n + 1)
Cela veut dire que l'on va affecter la Couleur de Fond (.BackColor) du Control Cb
On a un Array() qui est l'équivalent d'un Tableau .
Ici il contient
Code:
Array(&HFF00&, &HFFFF&, &HFFFF00, &H80FF&, &HFF80FF, &H8080&)
Ces positions commencent généralement par 0
Soit ici 6 valeurs donc position de 0 à 5 dans l'array()
Donc le (n-1) fait référence à la position dans le tableau.
n étant l'index du bouton (Cb) Cliquer , il est récupéré en fin de Nom du Control ( n = Right(Cb.Name, 1)
En espérant avoir pu t'aider
Jean marie
 

Discussions similaires

Réponses
2
Affichages
380

Statistiques des forums

Discussions
315 108
Messages
2 116 278
Membres
112 711
dernier inscrit
EBEUR