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

Excel Discussion :

Récupérer une MFC avec la rechecheV


Sujet :

Excel

  1. #21
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par 78chris Voir le message
    [...]
    2007 ne gère pas les références à d'autres feuilles dans divers cas, dont si j'ai bonne mémoire, les MFC.

    Nommer au préalable la plage de la feuille et utiliser le nom dans la formule.
    TRES judicieuse remarque, et tu as malheureusement ( ) bonne mémoire, les mfc XL2007 ne permettent pas la référence à une autre feuille. Il faut donc, comme tu le suggères, passer par des plages nommées et remplacer les références (dans mon illustration Feuil6!... par des plages nommées (ou une seule et utiliser DECALER). C'est pour cela que tu n'y arrivais pas tout à l'heure, Greg... (Mea culpa, je n'avais pas fait attention à la version et à ce "détail" )


    Avec deux plages nommées (Valeurs pour Feuil6!a2:a14 et Lettres pour Feuil6!B2:B14)

    Nom : 2017-04-20_193816.png
Affichages : 175
Taille : 21,4 Ko



    Avec la plage Valeurs et un DECALER pour les lettres

    Nom : 2017-04-20_193900.png
Affichages : 147
Taille : 22,5 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  2. #22
    Membre habitué
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Avril 2017
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur VBA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 122
    Points : 194
    Points
    194
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Même en VBA, récupérer le résultat d'une MFC est quasiment impossible.
    Les MFC, comme info de sortie, c'est génial et très pratique. En revanche, comme info d'entrée c'est cauchemardesque.
    je suis bien d'accord, mais cela doit être possible de passer par du vba aussi. Je n'ai pas exploré la chose puisque ce n'était pas la demande.
    https://www.developpez.net/forums/d1...mfc-d-fichier/

    la grande astuce est d'utiliser a formule de la MFC et de l' evaluer

    LoTest = RG < Evaluate(LoMFC.Formula1)

    lotest booleen pour savoir si la cellule respecte la condition formula1, lomfc est la condition MFC qu on teste (dans la collection de conditions de l objet range concerné) Pour obtenir la couleur active, tu recuperes la couleur de l'objet interior de la condition qui est vraie:
    Je ne teste quasi jamais le code que je propose. il s'agit juste d'indication sur comment je m'y prendrais, comment faire, des lignes d'intention.
    Il y a donc souvent des erreurs, le déboggage existe pour cela.

  3. #23
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Avril 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Bonjour tout le monde,

    Verdict je matin, je vais essayer ce que vous me dites
    Quelques précisions :

  4. #24
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Avril 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Bonjour tout le monde,

    Verdict ce matin, je vais essayer ce que vous me dites si j'arrive à faire les manipulations.
    Quelques précisions :
    - Vous dites de ne pas mettre feuille 6 et 7, mais de les nommer INDEX et EQUIV dans la formule. Si le nom des onglets n'est pas le même ce n'est pas grave ?
    - Je suppose qu'il faut aussi définir une zone avant ? ou cela fonctionne seul ?
    - Dans ma feuille de destination, les cellules ne sont pas groupées dans un seul tableau mais répartie en plusieurs groupes, ce n'est pas gênant ?

    On fait cette dernière tentative et si ça ne fonctionne pas j'arrête de vous embêter et on réfléchit à mon message d'hier soir avec les + et - ca sera peut être plus simple au final

  5. #25
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Index et Equiv ne sont pas des noms de plages, mais des fonctions qui remplacent avantageusement RECHERCHEV() lorsqu'on les utilise conjointement. Equiv trouve la position d'une valeur dans un vecteur et Index trouve la valeur se situant à une position donnée dans un vecteur.

    Donc, dans mon exemple, Equiv trouve la position d'une lettre dans la colonne des lettres, et Index renvoie la valeur qui se trouve dans une colonne à cette position donnée par EQUIV.

    Comme tu es en XL2007, tu ne peux pas utiliser une MFC formulée qui pointe vers une autre feuille, et tu dois donc utiliser des plages nommées (Tu sais comment faire pour nommer une plage?)

    Par rapport aux étapes que j'ai décrites dans un précédent message, tu dois donc d'abord créer ta ou tes plages nommées, puis remplacer feuil6!a2:a14 par le nom de la plage qui lui fait référence. Tu dois aussi remplacer Feuil6!b2:b14 soit par le nom que tu as créé pour y faire référence, soit par DECALER(...), comme je l'ai illustré dans les copies d'écran.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #26
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Avril 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Pierre je ne comprends pas ton exemple de 19h41

    Tu mets les formules sur la même feuille ? tu fais 2 règles ?
    Dans ton exemple précédent tu faisais une règle pour chacune des feuille ?

  7. #27
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    J'ai essayé de coller à ton cas...

    Sur une feuille, tu as une MFC qui "allume" des lettres si une valeur est positive (Feuil6).

    Sur une seconde feuille, tu souhaites récupérer la MFC de Feuil6. Ma formule avec INDEX/EQUIV illustre cette possibilité. Dans mon message de 19h41, j'illustre les deux possibilités pour une même MFC, la première avec deux plages nommées, la seconde avec une seule plage nommée et un DECALER pour trouver la position de la lettre.


    Ne serait-ce pas plus simple, à ce stade de la discussion, de poster ton fichier? Car on se perd un peu en conjectures, me semble t-il
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #28
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Avril 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Ok je comprends

    Non je ne sais pas définir une zone, je ne connaissais même pas INDEX et EQUIV avant que vous m'en parliez tous
    Donc si c'est la solution je ne sais pas comment l'appliquer car je ne sais pas les programmer. Mon niveau ne suis pas sur ce coup
    Ca a l'air très simple mais sans en avoir jamais fait ..... c'est comme la RechercheV la première fois je suppose


    Ne serait-il pas plus simple de tenter d'écrire une formule comme je l'évoquait hier soir ?



    Je vois que c'est l'enfer donc on va laisser tomber et partir sur une autre idée diabolique pour les méninges : Lui faire mettre + et - avec la lettre

    Dans ma première colonne il y a =SI(AQ3>=50%;"F";SI((10%<=AQ3)*ET(AQ3<50%);"D";"C")) qui donne la lettre de catégorie F D ou C
    Dans l'autre (AQ) il y a =SI(ESTERREUR(SI(AP3<>0;AB3/AP3;""));"";SI(AP3<>0;AB3/AP3;"")) qui divise le CA potentiel (AP3) par le CA de l'année (AB3)

    La mise en forme partait sur une colonne delta =AB3-AA3 différence entre le CA n-1 (AA3) et le CA de l'année (AB3) avec rouge pour le négatif, vert pour le positif

    Donc si je pars sur l'idée de faire des F+, F-, D+, D-, C+, C- quelqu'un voit-il comment regrouper les formules pour que cela fonctionne ?




    Du coup je peux faire une MFC sur chaque feuille qui devra reconnaitre le signe de la lettre


    Qu'en penses-tu ?

  9. #29
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Si la solution que je te propose semble être la bonne, il me semble préférable d'essayer de la mettre en place...

    Nommer une plage: Sélectionner la plage puis saisir son nom dans la zone des noms (tout à gauche de la barre de formules, là où tu vois habituellement l'adresse de la cellule active), puis valider avec ENTER.

    Quant à INDEX/EQUIV, si tu pigé le principe de RECHERCHEV, ce n'est pas bien compliqué => tuto de Michel Tanguy
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #30
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Avril 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    ok compris pour nommer, je viens de le faire
    je regarde le tuto et j'essaie tes formules après

  11. #31
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Dans le tuto de Michel, intéresse-toi particulièrement au point IV, et ne te laisse pas abuser par la phrase "...est une solution plus complexe...". Il n'y a rien de complexe ni de mystérieux dans l'utilisation conjointe de INDEX/EQUIV...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #32
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Avril 2017
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Résultat :

    Je n'y suis pas arrivé, mais vos solutions sont hyper intéressantes. JE vais me pencher fortement sur INDEV EQUIV qui ont l'air d'être des fonction top

    Au final, j'ai triché avec un ajout de colonne masquée en RechercheV qui dicte la MFC dans l'onglet comme ça les deux feuilles sont identiques
    Mon plus je l'ai fait apparaitre dans une colonne et je le concatène avec la colonne de la lettre
    Mon compteur de visite je l'ai fait avec un décompte plutôt que par répartition automatique. Cela laisse libre champ au commercial de planifier mais lui donne l'information qu'il est dans le vrai ou pas


    Encore un grand merci à tout le monde pour votre aide, votre disponibilité et votre rapidité

Discussions similaires

  1. Récupérer une chaine avec apostrophe dans un TEdit
    Par Orc_Fayeh dans le forum Delphi
    Réponses: 6
    Dernier message: 22/06/2007, 13h25
  2. Réponses: 21
    Dernier message: 30/03/2007, 15h21
  3. Récupérer une donnée avec MsgBox
    Par gentoo dans le forum Access
    Réponses: 5
    Dernier message: 29/01/2007, 16h19
  4. [MySQL] Récupérer une valeur avec SELECT sensible à la casse
    Par nuphius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/01/2007, 15h21
  5. Récupérer une valeur avec un textarea
    Par Viau dans le forum Langage
    Réponses: 6
    Dernier message: 14/02/2006, 17h09

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