Bonjour à tous,
Je débute en VBA, mais j'essaie de faire plusieurs macros qui simplifieraient l'utilisation d'un tableau Excel.
Ma première macro devrait permettre our chaque ligne :
*si colonne M- colonne L = 0, alors mettre "/" avec couleur de police noire
*si colonne M - colonne L >0, alors mettre la valeur de la soustraction et couleur de police verte
*si colonne M - colonne L <0 alors mettre la valeur ABSOLUE de la soustraction et couleur de police rouge
Ce que j'ai fait (et qui ne marche pas) et ci-dessous :
Sub TriEc_F_11()
Dim i As Integer
Dim Nb_Lignes1 As Long
Dim Nb_Lignes2 As Long
Dim Nb_Lignes3 As Long
Dim N As Variant
i = 12
Nb_Lignes1 = Range("N65536").End(xlUp).Row
Nb_Lignes2 = Range("M65536").End(xlUp).Row
Nb_Lignes3 = Range("L65536").End(xlUp).Row
N.Value = Abs(Range("M" & i) - Range("L" & i))
Range("N12:N" & Nb_Lignes).ClearContents
For i = 12 To Nb_Lignes
If N.Value >= 1 Then
Range("N" & i).Value = N.Value And Range("N" & i).Font.ColorIndex = 3
End If
If N.Value <= -1 Then
Range("N" & i).Value = N.Value And Range("N" & i).Font.ColorIndex = 4
End If
If N.Value = 0 Then
Range("N" & i).Value = "/" And Range("N" & i).Font.ColorIndex = 1
End If
Next
End Sub
Ma seconde macro devrait permettre pour chaque ligne :
* si dans colonne N couleur de police = rouge, alors mettre le fond de la cellule colonne L en rouge
* si dans la colonne N couleur de police = vert, alors mettre le fond de la cellule colonne L en vert
*(si dans la colonne N couleur de police = noir, alors mettre le fond de la cellule colonne L en blanc)
* (si rien dans la cellule N, alors mettre fond de la cellule colonne L en blanc)
Voila ce que j'ai tenté, et qui ne marche pas :
Sub TriS_F_11()
Dim i As Integer
Dim Nb_Lignes As Long
Nb_Lignes1 = Range("N65536").End(xlUp).Row
Nb_Lignes2 = Range("L65536").End(xlUp).Row
i = 12
For i = 12 To Nb_Lignes
If Range("N" & i).Font.ColorIndex = 3 Then
Range("L" & i).Interior.ColorIndex = 3
End If
If Range("N" & i).Font.ColorIndex = 4 Then
Range("L" & i).Interior.ColorIndex = 4
End If
If Range("N" & i).Font.ColorIndex = 1 Then
Range("L" & i).Interior.ColorIndex = 2
End If
Next
End Sub
Peut être peut ton mettre les deux macros dans une seule?
Merci d'avance pour vos suggestions!
Je débute en VBA, mais j'essaie de faire plusieurs macros qui simplifieraient l'utilisation d'un tableau Excel.
Ma première macro devrait permettre our chaque ligne :
*si colonne M- colonne L = 0, alors mettre "/" avec couleur de police noire
*si colonne M - colonne L >0, alors mettre la valeur de la soustraction et couleur de police verte
*si colonne M - colonne L <0 alors mettre la valeur ABSOLUE de la soustraction et couleur de police rouge
Ce que j'ai fait (et qui ne marche pas) et ci-dessous :
Sub TriEc_F_11()
Dim i As Integer
Dim Nb_Lignes1 As Long
Dim Nb_Lignes2 As Long
Dim Nb_Lignes3 As Long
Dim N As Variant
i = 12
Nb_Lignes1 = Range("N65536").End(xlUp).Row
Nb_Lignes2 = Range("M65536").End(xlUp).Row
Nb_Lignes3 = Range("L65536").End(xlUp).Row
N.Value = Abs(Range("M" & i) - Range("L" & i))
Range("N12:N" & Nb_Lignes).ClearContents
For i = 12 To Nb_Lignes
If N.Value >= 1 Then
Range("N" & i).Value = N.Value And Range("N" & i).Font.ColorIndex = 3
End If
If N.Value <= -1 Then
Range("N" & i).Value = N.Value And Range("N" & i).Font.ColorIndex = 4
End If
If N.Value = 0 Then
Range("N" & i).Value = "/" And Range("N" & i).Font.ColorIndex = 1
End If
Next
End Sub
Ma seconde macro devrait permettre pour chaque ligne :
* si dans colonne N couleur de police = rouge, alors mettre le fond de la cellule colonne L en rouge
* si dans la colonne N couleur de police = vert, alors mettre le fond de la cellule colonne L en vert
*(si dans la colonne N couleur de police = noir, alors mettre le fond de la cellule colonne L en blanc)
* (si rien dans la cellule N, alors mettre fond de la cellule colonne L en blanc)
Voila ce que j'ai tenté, et qui ne marche pas :
Sub TriS_F_11()
Dim i As Integer
Dim Nb_Lignes As Long
Nb_Lignes1 = Range("N65536").End(xlUp).Row
Nb_Lignes2 = Range("L65536").End(xlUp).Row
i = 12
For i = 12 To Nb_Lignes
If Range("N" & i).Font.ColorIndex = 3 Then
Range("L" & i).Interior.ColorIndex = 3
End If
If Range("N" & i).Font.ColorIndex = 4 Then
Range("L" & i).Interior.ColorIndex = 4
End If
If Range("N" & i).Font.ColorIndex = 1 Then
Range("L" & i).Interior.ColorIndex = 2
End If
Next
End Sub
Peut être peut ton mettre les deux macros dans une seule?
Merci d'avance pour vos suggestions!