Macro : mise en forme de certaines lignes en particulier

Bonjour à tous,

Je rencontre un petit problème sur une macro, j'espère que vous allez pouvoir m'aider.

C'est une macro pour la mise en forme d'une page. Et sur un tableau, j'ai besoin qu'il me mette en forme plusieurs lignes en fonction de certaines conditions.

Pour les conditions, aucun problème, j'arrive a mettre en place les conditions sur une ligne, par exemple sur la ligne 67 si la cellule >95% alors telle ou telle couleur.

Mais j'aimerai pouvoir appliquer ces condition à plusieurs lignes en particulier (ligne 69, ligne 71 et ligne 79) à la fois sans avoir a reécrire la macro pour chaque ligne.

Je ne sais pas si je suis claire ou non. N'hésitez pas à me demander si vous ne comprenez pas ce que je dis.

Voici la macro :

Sub MEF_SYNTHESE_TAB4()

'

'Macro permettant d'appliquer une mise en forme conditionnelle selon 4 conditions

'Sélectionner le fichier puis l'onglet concerné: ici fichier "CM_PASSAGES EN IRR" - Onglet :[SYNTHESE]

Windows("CM_FACTURES INTERVENANTS.xlsm").Activate

Sheets("SYNTHESE").Select

'Identifier les N° de lignes et de colonnes des plages concernées par la mise en forme conditionnelle

Dim C As Integer 'Nomme une variable C pour les N° de colonne

Dim L As Integer 'Nomme une variable L pour les N° de ligne

For C = 3 To 14

For L = 67 To 67 Jusque la tout va bien, et c'est ici que j'aimerai rajouter des ligne à checker

'Poser les conditions (If...Then...Else...End If)de la mise en forme conditionnelle

If Cells(L, C).Value = "NA" Then 'Si la cellule (N°de ligne,N° de colonne) = NA alors

Cells(L, C).Interior.ColorIndex = xlNone

With Selection.Font

.TintAndShade = -0.499984740745262

End With

Else

If Cells(L, C).Value >= 0.95 Then

Cells(L, C).Interior.Color = 13434828

Cells(L, C).Font.ColorIndex = 1

Cells(L, C).Font.Italic = True

Else

If Cells(L, C).Value >= 0.9 And Cells(L, C).Value < 0.95 Then

Cells(L, C).Interior.Color = 16764057

Cells(L, C).Font.ColorIndex = 1

Cells(L, C).Font.Italic = True

Else

If Cells(L, C).Value >= 0.85 And Cells(L, C).Value < 0.9 Then

Cells(L, C).Interior.Color = 13434879

Cells(L, C).Font.ColorIndex = 1

Cells(L, C).Font.Italic = True

Else

If Cells(L, C).Value < 0.85 Then

Cells(L, C).Interior.Color = 16751103

Cells(L, C).Font.ColorIndex = 1

Cells(L, C).Font.Italic = True

End If

End If

End If

End If

End If

Next

Next

End Sub

Sub MEF_SYNTHESE_TAB4()
'Macro permettant d'appliquer une mise en forme conditionnelle selon 4 conditions
'Sélectionner le fichier puis l'onglet concerné: ici fichier "CM_PASSAGES EN IRR" - Onglet :[SYNTHESE]
Windows("CM_FACTURES INTERVENANTS.xlsm").Activate
Sheets("SYNTHESE").Select

'Identifier les N° de lignes et de colonnes des plages concernées par la mise en forme conditionnelle
Dim C As Integer                     'Nomme une variable C pour les N° de colonne
Dim L As Integer                      'Nomme une variable L pour les N° de ligne

  For C = 3 To 14
    For L = 67 To 67                     'Jusque la tout va bien, et c'est ici que j'aimerai rajouter des ligne à checker

    'Poser les conditions (If...Then...Else...End If)de la mise en forme conditionnelle
        If Cells(L, C).Value = "NA" Then 'Si la cellule (N°de ligne,N° de colonne) = NA alors
          Cells(L, C).Interior.ColorIndex = xlNone
          With Selection.Font
            .TintAndShade = -0.499984740745262
          End With
        Else
          If Cells(L, C).Value >= 0.95 Then
            Cells(L, C).Interior.Color = 13434828
            Cells(L, C).Font.ColorIndex = 1
            Cells(L, C).Font.Italic = True
          Else
            If Cells(L, C).Value >= 0.9 And Cells(L, C).Value < 0.95 Then
              Cells(L, C).Interior.Color = 16764057
              Cells(L, C).Font.ColorIndex = 1
              Cells(L, C).Font.Italic = True
            Else
              If Cells(L, C).Value >= 0.85 And Cells(L, C).Value < 0.9 Then
                Cells(L, C).Interior.Color = 13434879
                Cells(L, C).Font.ColorIndex = 1
                Cells(L, C).Font.Italic = True
              Else
                If Cells(L, C).Value < 0.85 Then
                  Cells(L, C).Interior.Color = 16751103
                  Cells(L, C).Font.ColorIndex = 1
                  Cells(L, C).Font.Italic = True
                End If
              End If
            End If
          End If
        End If
    Next
  Next

End Sub

1. Ton code posté avec les Balises Code ... pour la lisibilté ...

2. Si le chiffre 67 peut varier ... il suffit qu'il devienne une variable ...

Du coup je rajoute des variables c'est ca ?

Genre :

Dim C As Integer 'Nomme une variable C pour les N° de colonne

Dim L As Integer 'Nomme une variable L pour les N° de ligne

Dim M As Integer 'Nomme une variable L pour les N° de ligne

Dim N As Integer 'Nomme une variable L pour les N° de ligne

For C = 3 To 14

For L = 67 To 67

For M = 69 To 69

For N= 71 To 71

Merci beaucoup

Re,

Non ... pas tout à fait ...

Ta variable L désigne déjà le nombre de Lignes ...

Cette variable possède deux bornes ... deux chiffres qui peuvent changer ... dans ton cas de 67 à 71 ...

Du coup, tu pourrais par exemple avoir

Dim x As Long    ' définir la première Borne des Lignes
Dim y As Long    ' définier la seconde Borne des Lignes

x = 67
y = 71

' par conséquent For L = 67 To 67 devient
For L = x To y

Est-ce-que cette explication est assez claire ....?

Oui mais du coup ca va me prendre les lignes entre 67 et 71 non ?

Re,

Oui ... effectivement ... cela concerner toutes les lignes 67,68,69,70 et 71 ....

Si tu ne veux intervenir, dans cette plage, que sur une ligne sur deux :

For L = x To y Step 2

Merci beaucoup, ca marche !!!!

Bonne fin de journée

Content que 'çà marche ...'

Merci .... pour tes remerciements ...

Rechercher des sujets similaires à "macro mise forme certaines lignes particulier"