function

bede

XLDnaute Nouveau
j'ai une macro qui fonctionne tres bien

dont la partie principale est
If Range("G2").value > 0 Then Sheets(i).Tab.colorindex = 2 Else Sheets(i).Tab.colorindex = 8

Pb je veux que le changement de couleur de l'onglet se fasse automatiquement quand je change la valeur dans la feuille
et ma function ne fonctionne pas

Function couleur(value As Integer, colorindex As Integer)
If Range("G2").value > 0 Then Sheet.Tab.colorindex = 1 Else Sheet.Tab.colorindex = 9
End Function
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : function

Bonjour bede,

avec ceci:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G2")) Is Nothing Then
If Range("G2").value > 0 Then
ActiveSheet.Tab.colorindex = 1
Else
ActiveSheet.Tab.colorindex = 9
End If
End If
End Sub

à+
Philippe
 

Gardien de phare

XLDnaute Accro
Re : function

Bonjour,

Il faut utiliser une procédure événementielle et non pas une fonction. Par exemple le code qui suit dans une feuille pour changer la couleur de l’onglet de la feuille 2 selon la valeur de A1 dans la feuille où est la procédure.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Range("A1").Value > 0 Then
    Sheets(2).Tab.Color = RGB(255, 0, 0)
    Else: Sheets(2).Tab.Color = RGB(0, 225, 0)
    End If
End Sub

Edit: bonjour phlaurent, pas vu ton post... par rafraîchi après le café !
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 816
Messages
2 092 361
Membres
105 378
dernier inscrit
y07