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 :

MFC ou VBA ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Par défaut MFC ou VBA ?
    Bonjour,

    Comment procéder pour changer le contenu d’une cellule et la couleur de sa bordure en fonction d’une couleur de bordure spécifique présente dans d’autres cellules ?

    Exemple :

    A8, B9, C10 et D11 sont des cellules avec des bordures rouges.
    S11 écrit : «*Vos cellules ne sont pas remplies !*».
    S11 est en bordure rouge.

    Lorsque je remplis A8, B9, C10 et D11 elles passent en noir pointillé (en réalité lorsque je saisi en elles certains termes).
    S11 passe alors à : «*Vos cellules sont OK !*».
    S11 passe alors en bordure verte.

    C’est possible de faire ça ?

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Utiliser la couleur (ou autre élément de format) comme données d'entrée avec Excel, c'est une TREEEEES mauvaise idée.
    Et si la couleur en question est issue d'une MFC, c'est encore pire.

    Excel ne sait pas gérer les couleur comme donnée d'entrée.
    Aucune fonction standard ne peut indiquer la couleur d'une cellule.

    Dans une macro VBA (je parle d'un Sub), ça reste une mauvaise idée mais c'est faisable, à condition de ne pas essayer de faire une fonction personnalisée.

    Voir les propriétés Borders et Interior de Range.
    https://msdn.microsoft.com/fr-fr/lib.../ff822605.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff836210.aspx

    A moins que la couleur testée soit issue d'une MFC.
    Dans ce cas, il faut passer par DisplayFormat.
    https://msdn.microsoft.com/fr-fr/lib.../ff838814.aspx

  3. #3
    Membre très actif
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Par défaut
    J’ai lu les trois liens d’aide. Mais pour le coup, je ne comprends vraiment pas.
    Concrètement par où commencer ?

    Pour faire plus simple, comment écrire dans une cellule selon le changement de couleur de bordure de cellules tierces (qui pour le coup se font via MFC)... ? Ça devient difficile à conceptualiser dans ma petite tête...

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par iIncoming Voir le message
    Concrètement par où commencer ?
    Concrètement, je pense que tu devrais commencer par là : http://bidou.developpez.com/article/VBA/

    Citation Envoyé par dysorthographie Voir le message
    Comme précisé par Menhir, il n'existe pas d'évènement pour gérer ce genre d'opération en revanche que ce soit par MFC ou vba tu connais la raison qui te fais changer la couleur de la bordure utilise la même condition pour changer la couleur de ta cellule!
    Effectivement, tu as raison. Je n'avais pas lu la question avec assez d'attention et je n'avais pas remarqué que les formats des cellules sources étaient aussi (vraisemblablement) issues d'une MFC.
    Dans ce cas, il suffit de mettre pour S11 une MFC avec la même condition que celle de A8, B9, C10 et D11 en modifiant juste le format souhaité.

  5. #5
    Membre très actif
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Par défaut
    C’est très sympathique de me donner le manuel de chinois quand on ne le comprend pas et quand on ne sait pas le lire. Oui, il faut apprendre. Sauf que ça ne s’apprend pas en 24h. Si je peux payer quelques cafés à quelques personnes en échange d’un peu d’aide... je peux...

    Sinon, quel code utiliser via le champ formule libre d’une MFC pour dire à EXCEL :
    si A8, B9, C10 et D11 n’est pas «*terme*» ou «*terme*» ou «*terme*» alors passe ma bordure en vert... vous voyez ?

    Ce que je cherche à faire c’est ni plus ni moins une sorte de «*validation*» rustique de formulaire web d’inscription avec des champs obligatoires...

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par iIncoming Voir le message
    C’est très sympathique de me donner le manuel de chinois quand on ne le comprend pas
    Pour répondre à une périphrase par une périphrase : ici, on ne distribue pas de poissons, on apprend à pêcher.

    quand on ne sait pas le lire.
    Ce manuel est pourtant écrit en français à destination des débutants.
    Mais c'est sûr que ça doit être rebutant d'étudier pour quelqu'un qui espère qu'on fasse son travail à sa place.

    Sinon, quel code utiliser via le champ formule libre d’une MFC pour dire à EXCEL :
    si A8, B9, C10 et D11 n’est pas «*terme*» ou «*terme*» ou «*terme*» alors passe ma bordure en vert... vous voyez ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(A8<>"*terme*";B9<>"*terme*";C10<>"*terme*";D11<>"*terme*")
    Ce que je cherche à faire c’est ni plus ni moins une sorte de «*validation*» rustique de formulaire web d’inscription avec des champs obligatoires...
    Si tu veux faire un formulaire Web, pourquoi le faire avec Excel ?
    Et si tu veux une validation de données, il faut passer par Ruban Données > Validation de données plutôt que de faire une MFC qui se contente d'un simple affichage.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Que ce soit par MFC ou vba tu as de bonnes raison de changer la couleur de ta bordure!
    Comme précisé par Menhir, il n'existe pas d'évènement pour gérer ce genre d'opération en revanche que ce soit par MFC ou vba tu connais la raison qui te fais changer la couleur de la bordure utilise la même condition pour changer la couleur de ta cellule!

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    La Mise en Forme Conditionnelle, c'est une équation une mise en forme.

    Si j'ai une MFC de couleur de 1 à 10 je devrais créer 10 mise en forme!

    Que ce soit MFC ou VBA l'action s'effectuera sur changement de valeur pas sur un changement de mise en forme!

    Si l' utilisateur passe la bordure de A1 à rouge la couleur de B2 ne changera pas!

  9. #9
    Membre très actif
    Inscrit en
    Janvier 2013
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 149
    Par défaut
    Alors comment dire à Excel :

    SI A8 contient autre chose que «*mot spécial ; mot spécial 2*»
    OU SI B9 contient autre chose que «*un autre mot ; mot 10*»
    OU SI C10 contient autre chose que «*encore un autre ; mot 20*»
    OU SI D11 contient autre chose que «*encore encore*; bref ; bref 3 »
    ALORS inscrire en S11 : «*Tout va bien*» (et là je colorie via MFC).

    J’ai beau essayer l’enregistreur de macro je n’y arrive pas...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Nom : TesRd2.gif
Affichages : 356
Taille : 632,9 Ko

Discussions similaires

  1. [XL-2003] Problème copier coller avec MFC et VBA
    Par bbcancer dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/11/2011, 10h11
  2. [XL-2007] Ajouter des MFC via vba
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2010, 12h00
  3. [XL-2003] Tableau d'analyse - MFC en vba (macro)
    Par mandrake57 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/09/2009, 09h52
  4. [XL-2003] MFC avec VBA
    Par marcuswillbe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/05/2009, 07h14
  5. MFC en VBA
    Par Jonathan Raucy dans le forum Excel
    Réponses: 7
    Dernier message: 28/02/2008, 10h12

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