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 !!!
Partager