Excel: plage déterminé par valeur de cellule.

Résolu
ViriisXP Messages postés 535 Statut Membre -  
ViriisXP Messages postés 535 Statut Membre -
Bonjour,

Alors ma demande va paraitre particulière mais je souhaiterais adapter une formule excel comme ceci :

passer de :

=NB.SI($AB$2:$BD$10;B15)

à :

=NB.SI(valeurdecellulev2:valeurdecelluleV3;B15)

en gros qu'en V2 j'ai l'adresse de début de plage et en V3 l'adresse de fin de plage.




je pense donc je suis !

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    La fonction qui t'intéresse ici est : INDIRECT

    Essaye comme ceci :
    =NB.SI(INDIRECT(V2&":"&V3);B15)

    Attention à la saisie dans les cellules V2 et V3... Bien saisir, par exemple :
    en V2 : A1
    en V3 : A152
    1
    1. ViriisXP Messages postés 535 Statut Membre 41
       
      Cool Merci beaucoup pour cette formule par contre j'esaye à l'adapter :


      En B565 : $AG
      En B566 : $BD

      j'ai essayé :
      =NB.SI(INDIRECT($B$565)&"$364:" & INDIRECT($C$565)&"$373";E566)

      mais ca lui plais pas beaucoup ... ;)
      0
    2. ViriisXP Messages postés 535 Statut Membre 41
       
      j'ai aussi fait :

      En B565 : AG
      En B566 : BD

      j'ai essayé :
      =NB.SI("$" & INDIRECT($B$565)&"$364:$" & INDIRECT($C$565)&"$373";E566)
      0
    3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour
      en attendant Pijaku et sans lui piquer sa bonne proposition, restons y mais écrite correctement avec les parenthèses aux bons endroits:

      Et que faite vous de B566 dans votre exemple??????

      =NB.SI(INDIRECT($B$565&"364:"&$B$566&"373");E566)

      les $ sont inutiles entre guillemets puisque Excel ne pourra pas incrémenter les textes, de même que les $ dans les textes de AG et BD qui resteront toujours AG et BD si vous tirez la formule.
      Les seuls $ utiles sont ceux de B565 et B5666 dans la formule

      Petit tuyau
      pour vérifier un code INDIRECT composé, écrivez l'égalité dans une cellule et vérifier qu'elle renvoie bien l'adresse cherchée
      par exemple ici:
      =$B$565"&364:"&$B$566&"373"
      doit vous renvoyer avec B565 =AG et B566=BD, en texte
      =AG364:BD373

      crdlmnt
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Pourquoi as tu écris 2 fois INDIRECT...
    Dans ma formule, j'écris :
    INDIRECT(PremièreCellule":"DeuxièmeCellule)
    dans ton cas :
    En B565 : $AG$364
    En B566 : $BD$373
    =NB.SI(INDIRECT(B565&":"&B566);E566)
    0
    1. ViriisXP Messages postés 535 Statut Membre 41
       
      parce que dans mon cas : B565 ne peux contenir que la valeur colonne : AG et idem pour B566 qui ne peux contenir que BD...
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Ou alors, avec les numéros de lignes "en dur" dans ta formule :
      En B565 : $AG
      En B566 : $BD
      =NB.SI(INDIRECT(B565&"$364:"&B566&"$373");E566)
      0
    3. ViriisXP Messages postés 535 Statut Membre 41
       
      Yes ! Merci bcp pijaku ! :)
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut Vaucluse, ViriisXP,

    La réponse complète est maintenant apportée. Cependant, sur le site Commentçamarche, les commentaires et réponses se croisent et donc il est difficile de retrouver quoique ce soit.
    J'invite donc viriis à relire les propositions, notamment celle de vaucluse ICI et la mienne ICI
    0
    1. ViriisXP Messages postés 535 Statut Membre 41
       
      Pour ma part j'ai pris la réponse de pijaku, je n'avais pas vu ta réponse Vaucluse .

      J'ai une question par contre :
      sachant que mon tableau de stats est sur la feuille "stats" et que mon tableau source est dans la feuille "prog." comment je peux faire pour récupérer les valeurs dans cette autre feuille ?

      =NB.SI(INDIRECT($A$12&"$351:"&$B$12&"$363");C$13)

      je sais pas trop comment placer le "prog.!"

      A12 = dans "stats"
      B12 = dans "stats"

      Le résultats de INDIRECT($A$12&"$351:"&$B$12&"$363") est la plage dans "Prog."


      C13 = dans "stats"
      0
    2. ViriisXP Messages postés 535 Statut Membre 41
       
      @Vaucluse : je viens de lire ton sujet, j'ai besoin des $ du fait de ma copie des valeurs dans plusieurs cellules et j'ai des fois des colonnes qui change en donné source et des fois non et j'ai des fois des lignes qui changent en données source et d'autre fois non. Donc pour les $ je les ai là ou j'en ai besoin. ;)
      0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Extrait de la réponse de Vaucluse :
    Petit tuyau
    pour vérifier un code INDIRECT composé, écrivez l'égalité dans une cellule et vérifier qu'elle renvoie bien l'adresse cherchée
    par exemple ici:
    =$B$565"&364:"&$B$566&"373"
    doit vous renvoyer avec B565 =AG et B566=BD, en texte
    =AG364:BD373

    Ici ta plage doit être :
    =Prog.!AG364:BD373
    Donc essaye :
    ="Prog.!"&$B$565"&364:"&$B$566&"373"
    0
    1. ViriisXP Messages postés 535 Statut Membre 41
       
      Donc ca devrais donner :
      =NB.SI(INDIRECT("Prog.!"&$B$565"&364:"&$B$566&"373");C13) ???
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Presque!!!!!
      pas :
      =NB.SI(INDIRECT("Prog.!"&$B$565"&364:"&$B$566&"373");C13)
      mais :
      =NB.SI(INDIRECT("Prog.!"&$B$565&"364:"&$B$566&"373");C13)
      l'erreur en gras ci dessous :
      =NB.SI(INDIRECT("Prog.!"&$B$565"&364:"&$B$566&"373");C13)
      0
    3. ViriisXP Messages postés 535 Statut Membre 41
       
      Yes ! Merci beaucoup ! :)
      0