Colorer deux lignes sur deux

Bonjour le Forum,

Dans mes tableaux, j'ai besoin de colorier deux lignes sur deux.

J'ai utilisé le code suivant :

Dim derlignegrise
Dim k As Integer
derlignegrise = Range("A" & Rows.Count).End(xlUp).Row
For k = 5 To derlignegrise

   Range("A" & k & ":D" & k + 1).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark2
        .TintAndShade = -9.99786370433668E-02
        .PatternTintAndShade = 0
    End With
    k = k + 4
    Next k

Pour obtenir ce qui est entre les "with" j'ai utilisé l'outil enregistrer une macro.

J'ai deux soucis que l'on peut voir sur l'image en dessous.

Le premier, c'est que le coloriage des cellules ne se fait pas deux lignes sur deux.

Le deuxième le coloriage n'est pas net. Le décalage apparaît également lors de l'aperçu avant impression.

Merci pour votre aide

Bonjour,

Avant toute chose, sélectionne la feuille entière et supprime les remplissages et les bordures.

Ensuite, essaie comme cela

Dim derlignegrise
Dim k As Integer
    derlignegrise = Range("A" & Rows.Count).End(xlUp).Row
    For k = 5 To derlignegrise Step 4
        With Range("A" & k).Resize(2, 4).Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorDark2
            .TintAndShade = -9.99786370433668E-02
            .PatternTintAndShade = 0
        End With
    Next k

A+

Bonjour,

ou bien avec une MFC de formule :

=ENT(MOD((LIGNE()-1)/2+1;2))

eric

Merci pour ces réponses.

@frangy Maintenant ça fonctionne nickel deux lignes sur deux comme je le voulais.

Je débute en VBA je ne connaissais pas la fonction "Step" du coup j'incrémentais chaque fois ma variable de la valeur.

@eriiic La méthode de frangy me convient bien je vais la garder, par contre, pour ma culture, que veux dire MFC ?

Il me reste encore à résoudre le problème de décalage qui donne un effet visuel assez dégueulasse

Mise en Forme Conditionnelle

Voir PJ

eric

13classeur2.xlsx (79.85 Ko)

Bonjour,

l n'est peut-être pas utile d'utiliser VBA ou une MFC pour cette mise en forme..

Il suffit de déclarer la plage de cellules en tableau, et de modifier son style.

Voir exemple dans fichier joint.

Cdlt.

Bonjour,

On en apprend tous les jours

Merci

eric

Bonjour à tous,

Merci pour ces exemples.

Mais si j'ai bien compris, il faut connaitre les limites du tableau pour pouvoir appliquer ces deux méthodes.

Dans mon cas le nombre de Table peut varier, donc la taille du tableau également.

Est ce que vous avez une idée pour le décalage visible dans les ovales rouges de mon image ?

Ca ne fait pas très net

Merci

Steph

Bonjour,

As-tu essayé ce que je t'ai dit précédemment, à savoir la suppression de tous les remplissages et toutes les bordures ?

A+

Oups désolé

J'ai sauté cet étape.

Effectivement en remettant tout à plat, c'est nickel.

Merci beaucoup pour le coup de main.

Steph

Mais si j'ai bien compris, il faut connaitre les limites du tableau pour pouvoir appliquer ces deux méthodes.

Dans mon cas le nombre de Table peut varier, donc la taille du tableau également.

Pour les MFC tu peux compléter les tests comme tu veux, par exemple contrôler en plus qu'une colonne sur la ligne soit remplie pour qu'elle s'applique.

Et quand tu déclares une plage en tableau c'est encore plus simple. Excel adapte tout automatiquement dès l'ajout d'une ligne, y compris l'ajout des formules et des formats.

La meilleures des macro est celle qu'on ne fait pas.

eric

Merci pour ces précisions.

Pour l'instant j'ai fait mes tableaux en passant par des macros.

Je garde ta solution pour une prochaine fois.

Effectivement au moins tu fais de macros au moins il y a de risque d'erreur

Rechercher des sujets similaires à "colorer deux lignes"