IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Couleur fond cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Couleur fond cellule
    VBA Bonsoir a tous et toutes, Forum bonsoir,

    Voila je souhaiterai SVP tester en VBA la couleur de FOND d'une cellule et quelle change de couleur si elle contient un mot precis, ca sera les mois ici Avril pour ex

    En VBA svp

    Exemple Si F2 egal fond gris (16) ET que F2 contient Avril
    alors fond F2 egal jaune(6) par ex idem pour F4 F5 etc etc

    Il faut que les deux conditions soient réunis pour changer le Fond

    la colonne F sera ainsi formuler "Dimanche 12 Avril 2009"

    Merci bien Bonne fin de Dimanche de Pâques a tous

    Raymond

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut eliot.raymond et le forum
    Je suppose donc que F6 contient une date reconnue comme telle par excel
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim Cel As Range
    For Each Cel In Range([F2], [F65536].End(xlUp))
        If Cel.Interior.ColorIndex = 16 And Month(Cel) = 4 Then _
                               Cel.Interior.ColorIndex = 6
    Next Cel
    End Sub
    Le code me semblant simple, je ne l'ai pas renseigné
    A+

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    bonsoir a tous et toutes forum

    Merci pour ta reponse rapide, mais en fait la colonne F n'ai pas formatée, pour l'instant et pour essai j'ecris moi meme la date "Dimanche 12 Avril 2009"

    precisement et de cette maniere donc on peut dire que c'est du texte et c'est le MOT Avril qu'il faut detecter respect des majuscules qui sont en rouge

    voila pour un peu plus de precision

    fond gris + Avril egal Fond jaune

    merci beaucoup et bonne soirée

    je garde le code me parait un bon depart

    raymond

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    je trouve ta manière de procéder (texte saisi de surcroît manuellement) assez dangereuse.
    A ce point dangereuse que l'on ne peut même pas, dans la méthode ci-dessous, utiliser quoi que ce soit (IsDate ou, comme ici, Val et Month) sans riquer de tomber dans une erreur de type
    Tu peux toujours utiliser la fonction instr et le mot "avril" (au fait, le mois ne prend pas de majuscule dans une date), mais tu risques d'étranges choses (imagine donc qu'un utilisateur saisisse "Totodi 42 Avril 21390000" !)

    Si tu tiens à savoir (et à la seule condition que l'utilisateur n'ait fait aucune faute de frappe et que la date soit valide) à savoir si c'est le mois 4 (écrit avril ou Avril), ma foi, voilà le moindre mal mais en aucun cas la sécurité (que tu n'auras jamais avec une saisie manuelle sous cette forme) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     toto = "Dimanche 12 Avril 2009"
      Do While Val(toto) = 0
        toto = Mid(toto, 2)
      Loop
    MsgBox Month(toto)
    ou (encore plus dangereux en cas de saisie incohérente) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    toto = "Dimanche 12 Avril 2009"
      Do While Not IsDate(toto) And Len(toto) > 0
        toto = Mid(toto, 2)
      Loop
      MsgBox Month(toto)
    Agir avec Instr et le mot "avril" est encore pire !

    Mais si tu te moques de courir ce dernier risque et que tu veux ignorer la casse, voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    toto = "toto = "m'en_fiche_di 12 Avril 458222754009""
      MsgBox InStr(UCase(toto), " AVRIL ") > 0
    (te retournera True ou false, selon le mois)

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour Ucfoutu, Bonjour Forum

    Merci pour ta savante et enrichissante réponse, je me dois d'avouer que je ne savais pas tout ca, heu si quand meme pour les majuscules au mois, mais moi j'aime bien et puis le programme est pour une utilisation personnel et c'est plus pour apprendre, alors si ca plante c'est pas bien grave.

    En tout cas merci et bon Lundi de Pâques, je vais quand essayer tout ca quand meme au moins j'aurai mis en pratique et appris quelque chose.

    Bonne journée a tous

    Raymond

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut eliot.raymond et le forum
    essaie ceci sur une case :
    Tu entres manuellement 12/4 => Excel affiche 12-avr
    avec, on peut facilement calculer le mois, mais visuellement, c'est pas ça.
    Tu modifie le format de la cellule (jj-mmm) en format personnalisé de type
    jjjj jj mmmm aaaa
    => la cellule affiche dimanche 12 avril 2009, mais contient le nombre de jours depuis le 1/1/1900, permettant tous les calculs de date.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer la couleur de fond cellule JTable
    Par donnadieujulien dans le forum Composants
    Réponses: 13
    Dernier message: 22/09/2008, 19h38
  2. [Excel] Couleur de fonds cellule
    Par fthem dans le forum Bibliothèques et frameworks
    Réponses: 33
    Dernier message: 18/06/2008, 15h43
  3. Changer la couleur de fond cellules ListView
    Par mpereg dans le forum Général VBA
    Réponses: 0
    Dernier message: 24/03/2008, 12h48
  4. changer couleur fond de cellule à la selection checkbox
    Par khoudj dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/12/2005, 20h08
  5. Couleur de fond cellule excel
    Par Grouik dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/07/2004, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo