Concept d'une variable a valeur multiple
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:
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 !!!