Combiner 2 macros [Résolu]

Signaler
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
-
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
-
Bonjour,
j'ai 2 macros dans la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$8" Then
If Target Is Nothing Then Exit Sub '<= 7 Then Exit Sub
If Target > 7 Then MsgBox "ID Commerçant 7 caractères": Application.Undo
End If
If Target.Address = "$H$6" Then
If Target.Value = "En Cours" Then
ActiveSheet.Tab.ColorIndex = 35
Else
If Target.Value = "Attente Action" Then
ActiveSheet.Tab.Color = RGB(255, 0, 0)
Else
If Target.Value = "Cloturé" Then
ActiveSheet.Tab.Color = RGB(39, 82, 18)

End If
End If
End If
End If
End Sub
mais elles ne fonctionne pas les 2 ensemble comment combiner les 2?

fichier exemple
https://www.cjoint.com/c/KFgriU7tcoe
merci

Slts               A bientôt 
Surplus

3 réponses

Messages postés
10052
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
10 juin 2021
1 148
Bonjour,
Il n'y a pas de deuxième macro dans votre classeur!
que voulez-vous comme résultat...?
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
oui disons que j'ai 2 parties
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$8" Then
If Target Is Nothing Then Exit Sub '<= 7 Then Exit Sub
If Target > 7 Then MsgBox "ID Commerçant 7 caractères": Application.Undo
End If

qui me limite la cellule C8 a 7 caracteres
et l'autre qui me change la couleur de l'onglet suivant la valeur de H6

If Target.Address = "$H$6" Then
If Target.Value = "En Cours" Then
ActiveSheet.Tab.ColorIndex = 35
Else
If Target.Value = "Attente Action" Then
ActiveSheet.Tab.Color = RGB(255, 0, 0)
Else
If Target.Value = "Cloturé" Then
ActiveSheet.Tab.Color = RGB(39, 82, 18)

End If
End If
End If
End If
End Sub

et dans l'etat actuel ça marche pas en mettent les 2 parties de la macro
je m'apperçois aussi que j'avais mis des validations de donées dans la cellule C8 il faudrait l'enlever pour le test merci
Messages postés
2205
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
7 juin 2021
322
Bonjour,
Essayez ceci
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target.Address = "$C$8" Then
        If Not Target Is Nothing And Len(Target) > 7 Then
            MsgBox "ID Commerçant 7 caractères"
            Application.Undo
        End If
    End If
    If Target.Address = "$H$6" Then
        If Target.Value = "En Cours" Then
            ActiveSheet.Tab.ColorIndex = 35
        ElseIf Target.Value = "Attente Action" Then
                ActiveSheet.Tab.Color = RGB(255, 0, 0)
        ElseIf Target.Value = "Cloturé" Then
            ActiveSheet.Tab.Color = RGB(39, 82, 18)
        End If
    End If
    
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
Bonjour
ca fonctionne tres bien
grand merci