IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Colorer 1 ligne sur 2..mais avec des cellules fusionnées [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 57
    Points : 56
    Points
    56
    Par défaut Colorer 1 ligne sur 2..mais avec des cellules fusionnées
    bonjour,

    dans mon tableau, sur la premiere colonne (ainsi que sur la derniere), je fusionne quelques lignes selon leur appartenance (voir fichier partiel joint)
    comme il m'arrive d'inserer d'autres lignes, je souhaiterais que le colriage se fasse automatiquement (soit une mise en forme conditionnelle, soit une petite macro a lancer)

    si vous aviez ne serait qu'une piste svp, parceque je ne voit pas comment m'y prendre.

    merci


    flute, je ne souhaitais pas mettre mon message dans cette section, mais comme je cherchais si quelqu'un avait déja posé ce genre de question, je me trouvais a cet endroit et betement j'ai validé mon message ici . . .
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Tu ne précises pas les conditions de ton coloriage. Je suppose donc que c'est une ligne sur deux. Peux-tu me confirmer cela ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 57
    Points : 56
    Points
    56
    Par défaut
    c'est vrai que je manque de précision: pas vraiment une ligne sur 2, puisque sinon une simple mise en forme conditionnelle serait simple a mettre en place, mais dans mon cas, c'est 1 "pays" sur 2 que j'aurais besoin.

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Tu peux essayer comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
    Dim T As Boolean
        Range("A2").Select
        While Selection(1).Value <> ""
            Selection.Resize(, 4).Interior.ColorIndex = T * 4146 + 4
            T = Not (T)
            Selection.Offset(1, 0).Select
        Wend
    End Sub
    Cordialement.

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    J'ai surrement fait trop compliqué, mais ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim max As Integer
    Dim col As Integer
    Dim chng As Range
    Dim off As Integer
    Dim flag As Boolean
     
        With Worksheets("Feuil1")
            col = .Rows(1).Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
            For i = 1 To col
                If max < .Columns(i).Find("*", , , , xlByColumns, xlPrevious).Row Then
                    max = .Columns(i).Find("*", , , , xlByColumns, xlPrevious).Row
                End If
            Next i
     
            Set chng = .Range("A1")
            flag = True
            For i = 1 To max
                If chng.Offset(i, 0).Value <> "" Then
                    If flag Then
                        For j = 0 To col - 1
                            chng.Offset(i, j).Interior.Color = RGB(0, 255, 0)
                        Next j
                        off = 1
                        Do While chng.Offset(i + off, 0).Value = "" And i + off <> max
                            For j = 1 To col - 1
                                chng.Offset(i + off, j).Interior.Color = RGB(0, 255, 0)
                            Next j
                            off = off + 1
                        Loop
                        flag = False
                    Else
                        flag = True
                    End If
                End If
            Next i
        End With
    End Sub
    A mettre dans le worksheet_change de ta feuille ! =)

    EDIT : si tu préfères les couleurs inverses, change simplement le flag de "True" à "False". De plus, j'ai fais en sorte que tu puisses mettre une couleur particulière pour tes titres de colonne, qui ne seront donc pas affectés.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 57
    Points : 56
    Points
    56
    Par défaut
    merci a vous deux,
    la premiere solution est plus simple, et plus facile a comprendre pour un debutant comme moi.
    en tout cas bravo, et encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/06/2015, 21h31
  2. Réponses: 20
    Dernier message: 16/11/2014, 11h40
  3. Colorer une ligne sur deux dans plage de cellules
    Par JML62400 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2009, 19h48
  4. Supprimer des colonnes avec des cellules fusionnées
    Par alain74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2008, 11h07
  5. Selectionner une colonne avec des cellules fusionnées
    Par Pietro_L dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/09/2007, 07h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo