plusieurs macro sur une feuille excel

  • Initiateur de la discussion Initiateur de la discussion amisdal
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

amisdal

Guest
Bonjour
J'ai un tableau un peu compliqué à faire.
Je dois intégrer deux macros et je n'arrive pas à les faire reconnaitre
J'ai mis un fichier test en pièce jointe :

Quand je mets une croix dans les colonnes ou est indiqué une couleur, la cellule dans la colonne titre se met de la meme couleur.
Et quand je mets une croix dans la colonne fait, la date du jour s'inscrit dans la colonne date
Ce que je ne comprends pas c'est que séparées les deux macros fonctionnent et si je les mets à la suite elle ne marche pas.
Comment faut il faire pour les enchainer ?
Merci d'avance pour votre aide
Ce lien n'existe plus
 

Pièces jointes

Re : plusieurs macro sur une feuille excel

Bonsoir,
Il ne doit y avoir qu'un seul événement Change...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cTitres, cdebuts, cfins
    Dim pl As Long, col As Long, ok As Boolean
    If Not Intersect(Target, Range("E2:E10,J2:J10")) Is Nothing Then Target.Offset(0, 1) = Date

    ' saisir les n° des colonnes des plages à contrôler
    cTitres = Array(1, 1, 1, 1) 'colonnes titre
    cdebuts = Array(4, 8, 13, 14) ' colonnes début des plages
    cfins = Array(4, 8, 13, 14) ' colonnes fin des plages
    
    ' détection si dans plages
    For pl = 0 To UBound(cTitres)
        If Target.Column >= cdebuts(pl) And Target.Column <= cfins(pl) Then Exit For
    Next pl
    If pl > UBound(cTitres) Then Exit Sub
    
    ' recherche "x"
    For col = cfins(pl) To cdebuts(pl) Step -1
        If LCase(Cells(Target.Row, col)) = "x" Then
            Cells(Target.Row, cTitres(pl)).Interior.ColorIndex = Cells(1, col).Interior.ColorIndex
            ok = True
            Exit For
        End If
    Next col
    If Not ok Then Cells(Target.Row, cTitres(pl)).Interior.ColorIndex = xlNone
End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Retour