Excel: attribuer format à cellule autre feuil

brink33 -  
 brink33 -
Bonjour,

Comme on peut le deviner dans le titre, je cherche à attribuer un format (couleur etc.) à une cellule, en fonction d'une cellule se trouvant dans une autre feuille excel.

Ma formule, quand cela s'applique aux cellules d'une même feuille est:
=ESTNUM(CHERCHE("ok";$A2)) dans la mise en forme conditionnelle.

Que dois-je ajouter pour pouvoir se référer à une autre feuille svp?
J'ai essayé des trucs du genre: =ESTNUM(CHERCHE(feuil1;"ok";$A2)) ou autre, mais sans succès...

Merci d'avance!!

11 réponses

  1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,

    essayez avec =ESTNUM(CHERCHE("ok";feuil1!$A2))

    Cordialement.
    0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    la formule la plus simple est correcte sans doute, mais comme pour les listes de validation,et sauf erreur de ma part, les MFC exigent que les cellules soient nommées pour s'appliquer sur deux feuilles différentes.
    alors en nommant A2 par exemple du nom: CELL
    =CHERCHE("OK";CELL)
    devrait tout simplement fonctionner lorsque OK se trouve dans le texte en A2 feuil1 si A2 feuil1 est nommée CELL
    crdlmnt


    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    0
  3. brink33
     
    On dirait bien que c'est la solution mais j'ai un message comme quoi je ne peux pas faire référence à une autre feuille pour la mise en forme conditionnelle...
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      lisez le message juste au dessus du votre là!
      0
  4. brink33
     
    ok Vaucluse; et comment on nomme une cellule? (même plusieurs vu que je dois faire ça pour de nombreuses lignes, en espérant qu'il est possible de les nommer automatiquement et non pas une par une :) )
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Plusieurs solution qui dépendent de l'age de votre Excel
      la 1°) qui ne marche pas tout le temps et partout, mais la plus simple à essayer:
      sélectionner la cellule ou le champ à nommer
      placez le curseur dans la case d'adresse à gauche de la barre de formule
      taper le nom voulu pour remplacer l'adresse de cellule
      la 2° sur Excel avant 2007
      sélectionner la cellule
      barre d'outil / insertion / nom et entrer le nom dans la fenêtre qui s'affiche
      Excel 2007 et + idem mais avec :
      Ruban / onglet formules / Définir un nom

      Pour nommer plusieurs cellule par exemple avec un nom CELL_1 CELL_2 etc....
      sur 2007 (avant je ne sais plus):
      entrer les noms à coté des cellules par exemple de A1 à A10, entrer en B1 CELL_1 et tirer jusqu'à B10n pour incrémenter
      sélectionner A1:B10
      Ruban / Formules/ Créer à partir de la sélection et cocher: "colonne de droite"
      Maintenant si vous avez un champ monumental, il faudra peut-être passer par d'autres solutions pour éviter d"'avoir une liste de nom du style du botin mondain.. par exemple en faisant référence à un champ via des solutions de recherche...
      Mais là, il faudra en savoir plus sur vos données.


      crdlmnt
      0
    2. brink33
       
      ça tombe bien je suis sur excel 2007 !!
      Je vais essayer ça alors!
      Sinon, y a-t-il moyen de faire un genre de formule de ce genre: =Feuil1!A1 (sans passer par la mise en forme conditionnelle) mais qui conserve justement la mise en forme (couleur...) de la cellule A1 de la feuille 1 ?
      0
    3. brink33
       
      Et pour la solution sur excel 2007, ça ne fonctionne pas quand je tire les cellules pour incrémenter les noms..
      0
    4. brink33
       
      Ah si c'est bon ça fonctionne pour les noms de cellule! merci!

      J'arrive à colorier ma celulle A1 de la feuille 2, ac une mise en forme conditionnelle s'il y a "ok" dans la cellule A1 (renommé "cell_1") de ma feuille 1.
      Par contre, je ne vois pas comment je peux colorier la cellule A2 de la feuille 2 lorsque A2 (renommé "cell_2") de ma feuille 1 quand il y a "ok" dedans et ainsi de suite pour les lignes du dessous.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    effectivement, vous pourriez prendre les cellules une par une pour y placer une MFC correspondant au nom de la cellule recevant le OK, mais ça va être laborieux!!.
    Appliquer ceci si vous avez bien nommé les cellules comme proposé soit:
    CELL_1, CELL_2 etc et que le champ commence bien sur la ligne 1

    sélectionnez le champ A à formater
    la formule est:
    =INDIRECT("CELL_"&LIGNE())="OK")
    formatez

    attention aux signes
    si vous ne commencez pas sur la ligne 1 et que votre première cellule se nomme CELL_1, ajustez le coder LIGNE() de façon à ce que le résultat soit 1
    c'est à dire le N° de ligne où se trouve la 1° cellule à formater moins la valeur qui ramène 1
    par exemple si vous voulez la cellule nommée 1 sur la ligne 3:
    =INDIRECT("CELL_"&LIGNE()-2)="OK"

    Par ailleurs une fois les cellules nommées vous pouvez bien sur effacer la colonne qui servait à placer les noms.

    bonne chance
    crdlmnt

    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    0
  7. brink33
     
    Merci pour ta réponse!

    La formule suivante ne fonctionne pas: =INDIRECT("CELL_"&LIGNE())="OK")
    Je risque pas de savoir pourquoi étant donné que je ne la comprends pas mais bon :) J'ai essayé de changer quelques détails comme "cell_1" au lieu de "CELL_" mais rien à faire...

    Celle ci par contre est acceptée par la mise en forme conditionnelle mais ne fonctionne pas ensuite: =INDIRECT("CELL_"&LIGNE()-2)="OK"
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      LIGNE()-2 signifie comme expliqué dans mon message, que vous faites correspondre la cellule sur la, ligne 3 avec celle nommée CELL_1.

      En fait le code INDIRECT() transforme le texte entre parenthèse en adresse de cellule ou en nom de cellule nommée
      soit ici entre guillemets "CELL_" texte entre guillemets, suivi de & pour lier avec la suite et suivi de LIGNE() qui compose le N° a prendre en compte.
      vous pouvez voir, pour comprendre, ce que donne le code LIGNE() dans une cellule où vous entrez simplement:
      =LIGNE()

      pour la suite:
      avez vous bien sélectionné tout le champ à traiter
      regarder dans ce modèle ce que ça devrait donner:
      https://www.cjoint.com/?BCvpIILOfsW
      crdlmnt
      0
    2. brink33
       
      ok merci pour l'explication et pour ce modèle!

      Le "petit" problème c'est que dans ma feuille 2 (là où je veux colorier les cellules), certaines cellules sont fusionnées (exemple: A1-A2-A3 fusionnées; A4 normal; A5-A6 fusionnées etc.)

      Et dans ma feuille 1 (là où je dois renommer les cellules), certaines sont aussi fusionnées mais pas de la même façon (exemple: A1-A2 fusionnées; A4-A5-A6 fusionnées; A7 normal etc.) qui correspondent aux "cell_4-cell_5-cell_6" etc bien sur.

      Du coup l'association se fait pas correctement.
      J'espère que je me fais bien comprendre? Y-a-t-il une solution?

      Merci en tout cas!
      0
  8. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    D'une part les cellules fusionnées sont à mettre par principe au panier tellement elle posent de problèmes pour les suites, dés qu'on parle de formules.
    D'autre part, si vous pouvez mettre votre ficher à disposition, on pourra peut être trouver une solution, parce que là,vu ce que vous annoncez, en proposer une sans le modèle, c'est perdre son temps!!
    a vous lire
    crdlmnt
    0
    1. brink33
       
      ok
      comment je peux te le faire passer?
      0
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour
      déposer le fichier ici

      https://www.cjoint.com/

      en suivant les instructions / copier le lien et revenir le placer ici dans un prochain message
      A+
      crdlmnt
      0
  9. brink33
     
    Si le seul inconvénient est que les cellules ne sont pas fusionnées (c'est pas vraiment un inconvénient!) et qu'il y a ces commentaire dans la colonne Z, il n'y a pas de souci! :)
    ça a l'air de bien fonctionner!
    Merci bcp pour tout!!
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Pas de quoi,

      pour info,j'ai retiré les messages qui donnent les liens vers les fichiers. Il n'est pas bien prudent de laisser diffuser une liste de Mails de vos clients. Ici il n'y a que des gens sérieux, mais enfin..!

      bonne route
      0
    2. brink33
       
      ouais c'est vrai merci
      Par contre, ça n'a pas fonctionné pour tous les fournisseurs, tu ne saurais pas pourquoi par hasard? :s
      0
  10. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Je ne sais pas mais je m'en doute... je pense qu'il y a des écarts de caractères entre les libellés d'une feuille à l'autre. (fautes de frappe, orthographe, blanc etc)
    le remède:
    copier les nom de clients sur une des feuilles et coller dans l'autre à la place du nom pour unifier les textes.
    crdlmnt
    0
    1. brink33
       
      Il y a pas que ça. Dans ma deuxieme feuille j'avais mis la formule suivante dans la mise en forme conditionnelle: =ESTNUM(CHERCHE("suspendu";$P9))
      De cette manière, je peux écrire des caractère avant et après le mot "suspendu" (même en caractère sans espace comme "suspendu/autre chose" ) et les cases se mettent quand même en couleur.
      Dans la 3eme feuille par contre maintenant, ce n'est pas le cas: il faut absolument qu'il y ait écrit "suspendu" tout seul, sans autre caractère ni espace pour que ça fonctionne...
      N'y aurait t'il pas un petit détail à changer pour pallier à ce problème?
      Merci ;)
      0
  11. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    essayez:
    =NB.SI($P9;"*suspendu*")
    avec le suspendu entre les astérisques

    qui prendra toutes les cellules contenant le mot "suspendu"

    pour info:
    "*texte*" > est vrai si le texte est contenu
    "texte*" > est vrai si le texte est au début
    "texte*" > est vrai si le texte est à la fin
    Vous pouvez aussi utiliser un texte placé dans une cellule comme référence; le libellé est alors:

    "*"&adresse cellule&"*"

    ce type de code ne fonctionne pas derrière un signe =, mais uniquement derrière le ;

    crdlmnt

    0
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Bonjour,

      pour ton exemple 'vrai si le test est à la fin', l'astérisque se met AVANT le texte.

      Cordialement
      0
    2. brink33
       
      En effet merci mais j'avais compris :)

      Par contre j'ai pas tout compris dans ce que tu viens de dire Vaucluse.
      En fait, dans ma 2eme page tout va bien, ma formule =ESTNUM(CHERCHE("suspendu";$P9)) fonctionne très bien, donc pas besoin de la remplacer ou de la modifier; elle accepte les caracteres avant et après "suspendu".

      Mais c'est dans ma 3eme feuille qu'il y a un pb (et le seul d'ailleurs): la formule suivante n'accepte pas de caractère avant et après "suspendu" dans la cellule correspondant de la feuille "Fournisseurs".
      C'est donc pas dans cette formule qu'il faudrait changer un petit truc?

      =SI(ESTVIDE(B54);Z53;SI(ESTERREUR(RECHERCHEV(B54;Fournisseurs!B:P;15;0));"";SI(RECHERCHEV(B54;Fournisseurs!B:P;15;0)="Suspendu";1;"")))
      0
    3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      pour afficher 1 si la condition est vrai, essayez

      =SI(NB.SI(Fournisseurs!$B:$B;$B6)=0;0;NB.SI(INDIRECT("Fournisseurs!"&ADRESSE(EQUIV(B6;Fournisseurs!$B:$B;0);16));"*suspendu*"))
      à tirer sur la hauteur

      crtdlmnt
      0
    4. brink33
       
      sur quelle ligne je dois mettre celle-ci pour que ça fonctionne bien, (pour que ça fasse référence à la bonne cellule de ma feuille "Fournissueurs")?
      0
    5. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      sur la première ligne de la colonne qui renvoie le c ode pour la MFC soit feuille Correspondant en Z7 et vous tirer sur la hauteur utile.
      (champ en jaune sur le fichier que je vous ai soumis)
      bonne chance
      0
  12. brink33
     
    Ah oui parfait! Maintenant il faudra donc juste faire attention que les noms des fournisseurs de la feuille 2 à la feuille 3 soient exactement les mêmes pour que ça fonctionne.
    Merci beaucoup pour toute ton aide! :)
    0