Mise en forme d'une zone de texte sous condition

Phyvon61

XLDnaute Nouveau
Bonjour,
N'étant pas expert, je vous soumet mon problème.
J'ai créé une zone de texte dont le contenu est égale à la valeur d'une cellule.
Mais je souhaiterais que lorsque la valeur est nulle la zone de texte soit verte et lorsque la valeur est différent de zéro, la zone de texte soit rouge.
Pour info, je crée une petite application pour mes réservations de tables de mon restaurant. Donc table rouge >> table occupée et table verte >> table libre.

Je ne sais pas comment faire.

Merci d'avance pour votre aide

Phyvon61
 

Phyvon61

XLDnaute Nouveau
Re : Mise en forme d'une zone de texte sous condition

bonjour,
tu peux utiliser la mise en forme conditionnel des cellules
voir F1 "mise en forme conditionnel"
A bientot
Bonjour fhoest,

La mise en forme conditionnelle n'est pas activable sur des zones de texte qui sont crées sous la forme d'un bouton. C'est uniquement utilisable sur des cellules or c'est les zones de texte que je veux mettre en forme.
Phyvon61
 

Guiv

XLDnaute Occasionnel
Re : Mise en forme d'une zone de texte sous condition

Bonjour Phyvon61, fhoest, le forum,
Si j'ai bien compris, tu cherches quelque chose comme ça?
Cordialement,
Guiv
 

Pièces jointes

  • Classeur1.xls
    22.5 KB · Affichages: 782
  • Classeur1.xls
    22.5 KB · Affichages: 718
  • Classeur1.xls
    22.5 KB · Affichages: 751

Épaf

XLDnaute Occasionnel
Re : Mise en forme d'une zone de texte sous condition

Bonjour Phyvon61, tous,
Pour la mise en forme conditionnelle, il faut avouer que l'aide en ligne n'aide pas beaucoup :(
Alors je t'ai fait ça
Code:
Sub MiseEnFormeConditionnelle()

'Saisie des deux conditions dans des cellules hors "salle de restaurant"
    Range("E3").FormulaR1C1 = "Occupée"
    Range("H3").FormulaR1C1 = "Libre"
    
'La salle de restaurant comprend 36 tables E4:H12 (Cellules E3->H3 réservées)
    With Range("E3:H12")
'on supprime l'éventuelle mise en forme conditionnelle existante (à conserver)
        .FormatConditions.Delete
        
'Mise en forme par défaut - Bordures de cellules
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
        
'Au départ, on n'a pas mis la table, on les peint en jaune
        .Interior.ColorIndex = 6
        .Interior.Pattern = xlSolid
    End With
    
'On renseigne la première conditions de mise en forme : E3 = "Occupée"
'si le contenu d'une cellule de la plage "E4:H12" est = à "E3"
'... on la peint en rouge
    With Range("E3:H12")
        .FormatConditions.Add Type:=xlCellValue, _
         Operator:=xlEqual, Formula1:="=$E$3"
        .FormatConditions(1).Interior.ColorIndex = 3
    End With
        
'On renseigne la seconde conditions de mise en forme : H3 = "Libre"
'si le contenu d'une cellule de la plage "E4:H12" est = à "H3"
'... on la peint en vert
    With Range("E3:H12")
        .FormatConditions.Add Type:=xlCellValue, _
         Operator:=xlEqual, Formula1:="=$H$3"
        .FormatConditions(2).Interior.ColorIndex = 4
    End With
    
'On met les couverts sur toutes les tables
    Range("E4") = "Libre"
    Range("E4").Copy Range("E4:H12")
    
'La table F8 a été renversée par le vent
    Range("F8") = "Renversée par le vent"

'Une table est réservée
    Range("G10") = "Réservée"
End Sub
Reste à adapter les plages mais tu peux tester la macro sans rien changer pour voir ce que ça donne.
Je n'ai mis que deux conditions mais il peut y en avoir trois.
De même,j'ai utiliser les termes Libre et Occupée mais tu peux mettre 1 et 0, c'est plus rapide à remplir quand c'est le coup de feu ;)

Bon courage
 
Dernière édition:

Phyvon61

XLDnaute Nouveau
Re : Mise en forme d'une zone de texte sous condition

Bonjour Phyvon61, tous,
Pour la mise en forme conditionnelle, il faut avouer que l'aide en ligne n'aide pas beaucoup :(
Alors je t'ai fait ça
Code:
Sub MiseEnFormeConditionnelle()

'Saisie des deux conditions dans des cellules hors "salle de restaurant"
    Range("E3").FormulaR1C1 = "Occupée"
    Range("H3").FormulaR1C1 = "Libre"
    
'La salle de restaurant comprend 36 tables E4:H12 (Cellules E3->H3 réservées)
    With Range("E3:H12")
'on supprime l'éventuelle mise en forme conditionnelle existante (à conserver)
        .FormatConditions.Delete
        
'Mise en forme par défaut - Bordures de cellules
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
        
'Au départ, on n'a pas mis la table, on les peint en jaune
        .Interior.ColorIndex = 6
        .Interior.Pattern = xlSolid
    End With
    
'On renseigne la première conditions de mise en forme : E3 = "Occupée"
'si le contenu d'une cellule de la plage "E4:H12" est = à "E3"
'... on la peint en rouge
    With Range("E3:H12")
        .FormatConditions.Add Type:=xlCellValue, _
         Operator:=xlEqual, Formula1:="=$E$3"
        .FormatConditions(1).Interior.ColorIndex = 3
    End With
        
'On renseigne la seconde conditions de mise en forme : H3 = "Libre"
'si le contenu d'une cellule de la plage "E4:H12" est = à "H3"
'... on la peint en vert
    With Range("E3:H12")
        .FormatConditions.Add Type:=xlCellValue, _
         Operator:=xlEqual, Formula1:="=$H$3"
        .FormatConditions(2).Interior.ColorIndex = 4
    End With
    
'On met les couverts sur toutes les tables
    Range("E4") = "Libre"
    Range("E4").Copy Range("E4:H12")
    
'La table F8 a été renversée par le vent
    Range("F8") = "Renversée par le vent"

'Une table est réservée
    Range("G10") = "Réservée"
End Sub
Reste à adapter les plages mais tu peux tester la macro sans rien changer pour voir ce que ça donne.
Je n'ai mis que deux conditions mais il peut y en avoir trois.
De même,j'ai utiliser les termes Libre et Occupée mais tu peux mettre 1 et 0, c'est plus rapide à remplir quand c'est le coup de feu ;)

Bon courage
Bonjour Epaf,

Cela me semble parfaitement correspondre mais je précise que c'est les zones de texte (sous forme de bouton) et non pas les cellules que je veux mettre en forme. Je vais tester et adapter cet après midi car à cette heure ci je prépare le service de ce midi. Il me semble que tu as déjà planché sur une application de réservation de table. As tu développé ou trouver une application de ce type sous excel car je serais éventuellement intéressé.

Phyvon61
 
Dernière édition:

fhoest

XLDnaute Accro
Re : Mise en forme d'une zone de texte sous condition

J'ai créé une zone de texte dont le contenu est égale à la valeur d'une cellule.
Mais je souhaiterais que lorsque la valeur est nulle la zone de texte soit verte et lorsque la valeur est différent de zéro, la zone de texte soit rouge.

Phyvon61

Re,
bonjour a tous,
Je n'avais pas vu que tu parler de texte de bouton mais chez moi avec la mise en forme conditionnelle je peut selon le texte dans une cellules mettre ce texte en vert ou en rouge selon condition voici un fichier joint qui j'espère fonctionnera chez toi pour te montrer que cela est possible sur le texte (petit rappel pas spécifier au départ qu'il s'agissait de bouton.)
Je suis en office07 je ne sais pas si la conversion en 97/2003 gardera cette mise en forme conditionnelle pour te le prouver,
Mais bref je pense que les solution qui te sont proposer autre que la mienne qui a mes yeux n'as que d'importance de prouver que la mise en forme conditionnelle est possible sur du texte.
Bonne journée
 

Pièces jointes

  • texterougeouvert.xls
    29 KB · Affichages: 458

Épaf

XLDnaute Occasionnel
Re : Mise en forme d'une zone de texte sous condition

Hello,
Avec des boutons ce serait différent car tu ne peux plus utiliser la mise en forme conditionnelle (j'ai office 2003) où alors je ne sais pas faire.
Par contre, si j'avais à faire ça, j'utiliserais un userform où l'on peut traiter une collection de boutons à l'aide d'une macro unique dans un module de classe.
Ce qui veut dire que chaque fois qu'un bouton est activé (sélectionné) une seule macro est nécessaire pour traiter l'événement, quelque soit le bouton.

Le procédé est infiniment plus simple à mettre en oeuvre mais le concept d'objet est parfois plus aride à comprendre.

On peut bien sûr te faire ça mais tu risques d'avoir du mal à adapter.
As-tu une idée de quoi je cause ? :cool:
As-tu déjà utilisé des userforms ? :eek:
Dis-nous tout

Je te laisse à tes clients...
A+
 

Guiv

XLDnaute Occasionnel
Re : Mise en forme d'une zone de texte sous condition

Re,
Un petit essai en pj, à fignoler
Cordialement,
Guiv
 

Pièces jointes

  • TestRéserv.zip
    19.1 KB · Affichages: 357
  • TestRéserv.zip
    19.1 KB · Affichages: 330
  • TestRéserv.zip
    19.1 KB · Affichages: 374
Dernière édition:

Phyvon61

XLDnaute Nouveau
Re : Mise en forme d'une zone de texte sous condition

Re,
Un petit essai en pj, à fignoler
Cordialement,
Guiv
Re,
C'est très bien ce que tu as fait. Je dois pouvoir l'adapter à mon fichier.
Connaissant Excel à l'exception des macros et du VBA, j'ai l'impression que je me suis embetté comme c'est pas possible avec ce que j'ai fait. Je met mon fichier en pièce jointe. Etant donné que tu as l'air expert en la matière, pourrais tu jeter un coup d'oeil pour voir ce que tu en penses? Cela serait trés sympa.

PS: je n'arrive pas à envoyer le fichier car il fait 120k une fois compressé. Comment faire???

Phyvon61
 

Guiv

XLDnaute Occasionnel
Re : Mise en forme d'une zone de texte sous condition

Re,
Simplifie au maximum ton fichier (juste un exemple avec moins de données , le minimum de feuilles, de formules etc., juste le minimum pour que ce soit compréhensible)
Au pire des cas tu peux le rendre disponible sur un site genre Accueil de Cjoint.com
Cordialement,
Guiv
 

Phyvon61

XLDnaute Nouveau
Re : Mise en forme d'une zone de texte sous condition

Re,
C'est très bien ce que tu as fait. Je dois pouvoir l'adapter à mon fichier.
Connaissant Excel à l'exception des macros et du VBA, j'ai l'impression que je me suis embetté comme c'est pas possible avec ce que j'ai fait. Je met mon fichier en pièce jointe. Etant donné que tu as l'air expert en la matière, pourrais tu jeter un coup d'oeil pour voir ce que tu en penses? Cela serait trés sympa.

PS: je n'arrive pas à envoyer le fichier car il fait 120k une fois compressé. Comment faire???

Phyvon61
Merci Guiv

Voici le lien pour accéder au fichier

Merci d'avance

http://cjoint.com/?dspOHC6kRO
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 392
Membres
102 882
dernier inscrit
Sultan94