Pour corriger les données trier les saisies
Bonjour, comment attribuer une couleur dans un tableau en fonction du nombre de saisies dans VBA
Hello,
Tu peux communiquer un fichier avec un exemple de la source et du résultat attendu stp ?
@+
Salut, merci de m'avoir répondu. je te joint tout le code, qui fonctionne. Avec deux routines pour changer la couleur que je n'arrive pas à faire fonctionner ?.' PS. j'ai utilisé qu'une colonne pour essayer
Exemple,Je veux que les 10 premiers cellules encodées
'de façon alléatoires dans le tabeau, la police soi en bleu;
'De la 11 ème saisies à la 20 ème en rouge et le reste . en noir sur fond rosé (21 à 250)
Private Sub Worksheet_Change(ByVal Target As Range)
'ActiveSheet.Unprotect "epargne"
If Target.Count <> 1 Then Exit Sub
If Target.Address = "$C$1" Then
Set valeurs = Union(Range("A3:A27"), Range("D3:D27"), Range("G3:G27"), Range("J3:J27"), Range("M3:M27"), Range("P3:P27"), Range("S3:S27"), Range("V3:V27"), Range("Y3:Y27"), Range("AB3:AB27"))
For Each cel In valeurs
If cel.Value = Target.Value Then
ActiveWindow.ScrollRow = cel.Row
ActiveWindow.ScrollColumn = cel.Column
cel.Offset(0, 1).Select
Exit Sub
End If
Next
End If
Set casiers = Union(Range("B3:B27"), Range("E3:E27"), Range("H3:H27"), Range("K3:K27"), Range("N3:N27"), Range("Q3:Q27"), Range("T3:T27"), Range("W3:W27"), Range("Z3:Z27"), Range("AC3:AC27"))
If Not Intersect(casiers, Target) Is Nothing Then
Range("C1") = ""
Range("A1").Select
ActiveWindow.ScrollRow = Selection.Row
ActiveWindow.ScrollColumn = Selection.Column
Range("C1").Select
Set lignech = Sheets("Versements").Columns("e").Find(Target.Offset(0, -1), LookIn:=xlValues, lookat:=xlWhole)
For n = 6 To 17
If Sheets("Versements").Cells(3, n) = CDate("01/" & Month(Date) & "/" & Year(Date)) Then 'Month(Date) + 1 erreur ?
col = n
End If
Next
If Not lignech Is Nothing Then
If Target.Value <> "" Then
Sheets("versements").Unprotect "epargne"
Sheets("Versements").Cells(lignech.Row, col) = Target.Value
End If
End If
End If
End Sub
Sub color_cells()
Dim cell As Range
For Each cell In Range("b3:b27") ', Range("E3:E27"), Range("H3:H27"), Range("K3:K27"), Range("N3:N27"), Range("Q3:Q27"), Range("T3:T27"), Range("W3:W27"), Range("Z3:Z27"), Range("AC3:AC27"))
If cell.Value = "" Then
cell.Interior.ColorIndex = 0 ' blanc si la cellule est vide
ElseIf cell.Value < 5 Then
cell.Interior.ColorIndex = 3 ' rouge si le nombre de saisies est inférieur à 5
ElseIf cell.Value < 10 Then
cell.Interior.ColorIndex = 6 ' jaune si le nombre de saisies est compris entre 5 et 9
Else
cell.Interior.ColorIndex = 4 ' vert si le nombre de saisies est supérieur ou égal à 10
End If
Next cell
End Sub
Sub CouleurEnFonctionDuNombreDeSaisies()
Dim DerniereLigne As Long
Dim NombreDeSaisies As Integer
Dim Cellule As Range
DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row ' Trouver la dernière ligne utilisée dans la colonne A
For Each Cellule In Union(Range("B3:B27"), Range("E3:E27"), Range("H3:H27"), Range("K3:K27"), Range("N3:N27"), Range("Q3:Q27"), Range("T3:T27"), Range("W3:W27"), Range("Z3:Z27"), Range("AC3:AC27")).Resize(DerniereLigne - 2) ' Parcourir les cellules de la colonne B à partir de la ligne 2
NombreDeSaisies = Cellule.Value ' Récupérer le nombre de saisies
Select Case NombreDeSaisies
Case Is <= 5
Cellule.Interior.Color = RGB(255, 0, 0) ' Rouge
Case Is <= 10
Cellule.Interior.Color = RGB(255, 255, 0) ' Jaune
Case Else
Cellule.Interior.Color = RGB(0, 255, 0) ' Vert
End Select
End If
End If
End If
End Sub