Mise en forme conditionnelle

khaos

XLDnaute Nouveau
Bonjour,

J'aimerai un coup de main pour un projet excel.

Je plante le décor: j'ai un certain nombre de documents excel dont les info se croisent sans aucun controle, je veux dire par là que dans chaque document les info sont entrées à la main, d'où des erreurs.

J'ai compris comment copier des valeurs dans un classeur en provenance d'autres classeurs. Malgré ça j'aimerai rendre la tâche moins restrictive en mettant un simple contrôle des valeurs.

Si la valeur que j'ai entré est différente de mon document de référence je veux que la case soit coloré en rouge par exemple, ou sinon (pour laisser le tableau tel quel) dans une colonne extérieur au tableau lui même inscrire sur la même ligne un mot/message du genre "la valeur indiquée ne correspond pas à celle du document de référence".

Accéssoirement comment faire la somme de valeur qui sont dans des feuilles différentes?

J'ai fait un petit *.rar pour aider au cas où.
 

khaos

XLDnaute Nouveau
Re : Mise en forme conditionnelle

L'outil de mise en forme refuse les références d'autres feuilles ou classeurs pour la mise en forme conditionnelle :/
Ça ne fonctionne pas quand la cellule est du style B14 mais avec une cellule nommée ça passe apparemment. A l'aide de l'enregistreur de macro j'ai obtenue dans un module (dans VBA editor) ceci:
Code:
Sub controle()
'
' controle Macro
' Macro enregistrée le 23/04/2008 par Administrateur
'

'
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
        Formula1:="=""total_Surf.Hab"""
    Selection.FormatConditions(1).Interior.ColorIndex = 3
End Sub
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Mise en forme conditionnelle

Bonjour à tous,

L'outil de mise en forme conditionnelle peut faire référence à une autre feuille si on passe par des cellules nommées et l'option La formule est.

Si j'ai bien compris ton problème, il faudrait créer un nom qui fait référence à un autre classeur, mais personnellement je déconseille les liaisons sauvages vers d'autres classeurs, ça peut vraiment devenir dur à gérer.

Je pense qu'il faudrait que tu décide d'un endroit unique de saisie et peut-être envisager une macro d'importation de ces données... ou des données externes ?

Il ne s'agit que de pistes...:eek:
 

khaos

XLDnaute Nouveau
Re : Mise en forme conditionnelle

J'y ai pensé mais "l'organisation" des info dans ma boite font que les données sont éparpillées, de plus si j'arrive à me contenter de faire un simple controle des entrées je pourrais limiter les risques.

Oublions la copie des info, je veux me concentrer sur l'aspect contrôle des cellules.

Code:
Sub control()
if ("C5").value <> sheets("Bat a").range("total_surf_a").value then Interior.ColorIndex = 3
End Sub

ça doit faire rire les connaisseurs mais je commence....y a une erreur de compilation apparemment.

Si la valeur A de la feuille 1 est différente de la valeur C de la feuille 2 alors Interior.ColorIndex = 3.

De même si la valeur A du classeur Z est différente de la valeur C de la feuille 1 (ou 2) du classeur Y alors Interior.ColorIndex = 3

Sinon laisser tel quel.

Une idée ?
 

tototiti2008

XLDnaute Barbatruc
Re : Mise en forme conditionnelle

Malheureusement, je ne peux pas ouvrir ton fichier actuellement.

Question Code, essaye :
Code:
Sub control()
if Activesheet.range("C5").value <> sheets("Bat a").range("total_surf_a").value then Activesheet.range("C5").Interior.ColorIndex = 3
End Sub

Maintenant, il y a surement une autre solution :
Sélectionne la cellule c5
Menu Format - Mise en forme conditionnelle
choisis la formule est
tape la formule :
=c5<>total_surf_a
choisis la couleur grâce au bouton Format
OK
OK

Est-ce que ça marche ? :confused:
 
G

Guest

Guest
Re : Mise en forme conditionnelle

bonjour Kahos,

Code:
Interior.ColorIndex = 3
l faut dire à VBA sur quelle cellule il doit appliquer le format Exemple:

Code:
Range("C2").Interior.ColorIndex = 3

de plus il vaudrait peut-être mieux prévoir le cas ou la condition n'est pas vérifiée

Code:
if [COLOR="DarkOrange"]Range[/COLOR]("C5").value <> sheets("Bat a").range("total_surf_a").value then 
      Range("C5").Interior.ColorIndex = 3
Else
      Range("C5").Interior.ColorIndex = xlNone '(pas de couleur)' 
End if

A Bientôt
 

khaos

XLDnaute Nouveau
Re : Mise en forme conditionnelle

J'ai un peu avancé dans ma recherche et j'en suis arrivé à ca aprés de multiple essaies

Code:
Sub control()
Workbooks.Open "C:\Khaos\Excel\g_pxx.xls"

If Range("D12").Value = Workbooks("g_pxx.xls").Sheets("bat_a").Range("e34").Value Then
    Range("D12").Interior.ColorIndex = xlNone '(pas de couleur)'

    Range("E12").Interior.ColorIndex = xlNone
    Range("E12") = ""
Else
    Range("E12").Interior.ColorIndex = 4
    Range("E12") = "c'est faux"
End If

For Each Wk In Workbooks
        If Wk.Name <> ThisWorkbook.Name Then
         Wk.Close savechanges:=True
        End If
     Next Wk
End Sub

macro qui test si la cellule à la même valeur que la cellule de référence contenue dans un autre classeur, avec inscription d'un message + coloris de la cellule si la valeur est différente, sinon rien (ou plutot je vide la cellule de son contenue).
 

Discussions similaires

Réponses
12
Affichages
267

Statistiques des forums

Discussions
312 505
Messages
2 089 103
Membres
104 032
dernier inscrit
akram.job