Bonjour a vous,


J'ai une subroutine permettant de valider les données d'un fichier Excel, si les champs requis sont conformes a un logiciel auquel j'importe les données. Parfois les données que je traite on des erreurs (mauvaises information demandé complétés, mauvaises interprétation de l'utilisateur) et je corrige celles-ci en les identifiant d'une couleurs différente le "font" et l'"interior" afin de les rendre plus visibles. (j'utilise police rouge, remplissage jaune)

Si j'exécute ma sub de validation, je demande d'identifié les erreurs, champs obligatoires manquant, trop long, mauvais type de donné dans une couleur différente (font =3 et interior = 34). Si tout est correct, ou si l'erreur est corrigé, la cellule deviens en blanc écriture noir (font = 1 et interior = 2)


Au lieu de remettre blanc et écriture noir, je voudrais que la cellule sois colorer au "font" et "interior" de la couleur de départ, ainsi les erreurs corrigers ne seraient plus écrasé par le font noir et écriture blanc.



Donc a la fin du processus la cellule ayant une écriture rouge reste rouge et celle ayant une écriture noir reste noir.


Voici une partie du code illustrant ce que je fais présentement

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
39
40
41
42
'si la longueur de la provinciale courte est plus grand que 100, le texte est en rouge sur fond bleu
 
            If Len(Cells(x + 1, [prov_court_travail].Column)) > 100 Then
                compteur = compteur + 1
                With Cells(x + 1, [prov_court_travail].Column)
                .Font.ColorIndex = 3
                .Interior.ColorIndex = 34
                End With
            Else
                With Cells(x + 1, [prov_court_travail].Column)
                .Font.ColorIndex = 1
                .Interior.ColorIndex = 2
                End With
            End If
 
 
'si la provinciale courte est vide on inscrit ??? et on met en rouge sur fond bleu
 
            If IsEmpty(Cells(x + 1, [prov_court_travail].Column)) Then
                compteur = compteur + 1
                With Cells(x + 1, [prov_court_travail].Column)
                .value = "???"
                .Font.ColorIndex = 3
                .Interior.ColorIndex = 34
                End With
            Else
                With Cells(x + 1, [prov_court_travail].Column)
                .Font.ColorIndex = 1
                .Interior.ColorIndex = 2
                End With
            End If
 
 
'si on a toujours une descripton provinciale courte = ??? ou plus grande que 100 caractères on maintien la couleur rouge sur fond bleu
 
            If Cells(x + 1, [prov_court_travail].Column) = "???" Or Len(Cells(x + 1, 4)) > 100 Then
                compteur = compteur + 1
                With Cells(x + 1, [prov_court_travail].Column)
                .Font.ColorIndex = 3
                .Interior.ColorIndex = 34
                End With
            End If

encore mille fois pour votre aide / commentaires !!!