Tutoriels > Tutoriels & Astuces Excel > Fonctions & Formules > Nommer une Plage Dynamique

Nommer une Plage Dynamique

Publié par Mth le 06-12-2008 (99932 lectures)

Nommer une Plage Dynamique

Selon les cas, la taille d'une plage n'est pas forcément connue à l'avance, et est susceptible d'évoluer.

 

La taille des plages nommées peut être ainsi variable et nous allons voir comment gérer ce type de références.

 

 

 

 

Pour illustrer cette situation, prenons un exemple :

 

Les ouvrages d'une collection se répartissent sur plusieurs gammes de A à D, chaque gamme correspond à un prix, indiqué dans le tableau Tarif.

<span style=Plage dynamique 1" height="301" src="http://www.mdf-xlpages.com/uploads/Image/refplages/plagedyn0.jpg" title="Plage dynamique 1" width="362" />



Dans le tableau Chiffre d'Affaires, nous voulons calculer le CA généré par chaque ouvrage, en fonction de son prix indiqué dans le tableau Tarif

 

<span style=Plage dynamique 3" height="314" src="http://www.mdf-xlpages.com/uploads/Image/refplages/plagedyn1.jpg" title="Plage dynamique 3" width="762" />

 

Pour les calculs du CA, nous avons donc besoin de nommer les plages :

  • Gamme (actuellement de C19 à C22)
  • Prix_Tarif (actuellement de D19 à D22) 

 <span style=Plage dynamique 2" height="297" src="http://www.mdf-xlpages.com/uploads/Image/refplages/plagedyn2.jpg" title="Plage dynamique 2" width="363" />

 

Cependant, nous savons que le tarif va s'enrichir d'autres gammes, mais nous ne savons pas dans quelles proportions.

Nommer directement les plages Gamme sur C19:C22 et Prix_Tarif sur D19:D22 n'est donc pas une solution idéale. 

 

Dans le doute, nous pouvons décider d'étendre les plages jusqu'aux lignes 25, ou 30 ou 40 pour laisser de la marge, mais cette solution n'est pas très élégante ni optimisée.

 

Pour faire en sorte que nos plages soient « dynamiques », c'est à dire tiennent compte automatiquement du nombre de lignes ou colonnes renseignées, nous allons utiliser deux fonctions : la fonction NBVAL() et la fonction DECALER().

 

 

La fonction NBVAL() va permettre de compter le nombre de cellules non vides

 

La formule =NBVAL($C:$C) renvoie 5

En effet il y a bien 5 cellules non vides dans cette colonne, entête de colonne comprise, de C18 à C22 pour l'instant.

 

 

La fonction DECALER() va permettre de déterminer la plage

 

Syntaxe de cette fonction :

DECALER( Réf; Nombre de lignes; Nombre de colonnes; Hauteur; Largeur

 

 Réf

Cellule de départ à partir de laquelle le décalage doit être opéré.

Ici, nous partons de la cellule $C$19 pour déterminer la plage Gamme

 Nombre de lignes

Nombre de lignes vers le haut (chiffre négatif) ou vers le bas (chiffre positif) dont la cellule supérieure gauche de la référence renvoyée doit être décalée.

Ici, nous n'avons pas besoin de ce décalage, cet argument restera donc à zéro

 Nombre de colonnes

Idem que pour les lignes.

Ici, nous n'avons pas besoin de ce décalage, cet argument restera donc à zéro.

 Hauteur Indique la hauteur de la plage, en nombre de lignes (elle doit être impérativement supérieure à 0).
Nous savons grâce à NBVAL() combien nous avons de lignes renseignées. Hauteur sera donc égale au résultat de NBVAL() -1 compte tenu du titre de la colonne du tableau.
 Largeur

Indique la largeur de la plage, en nombre de colonnes (la largeur doit également être supérieure à 0).

Ici, nous travaillons sur un seule colonne, la Largeur sera donc égale à 1


La plage nommée « Gamme » fera donc référence à :
Formule Excel :

=DECALER($C$19;;;NBVAL($C:$C)-1;1)

Tandis que la plage nommée « Prix_Tarif » fera référence à :
Formule Excel :

=DECALER($D$19;;;NBVAL($D:$D)-1;1)

Notez toutefois que le nom de l'onglet sera ajouté à la vraie fonction.

 

<span style=Plage dynamique 4" height="273" src="http://www.mdf-xlpages.com/uploads/Image/refplages/plagedyn3.jpg" title="Plage dynamique 4" width="430" />

 

Pour tester, dans notre tableau Tarif nous pouvons rentrer juste sur la ligne du dessous une gamme E et une gamme F, respectivement à 6 € et 7 €, puis éventuellement, saisir d'autres données dans le tableau Chiffre d'affaires.

 

La formule du tableau Chiffre d'Affaires fonctionnera avec les plages qui seront automatiquement adaptées !

 

 

 Attention !

ATTENTION!

  • Il ne faut pas de cellules vides dans les colonnes C ou D du tableau Tarif pour que la fonction présentée ici soit juste.
  • Il ne faut pas omettre les signes $ dans la formule des plages nommées.

 

 

Auteur de cet article : Mth

Retrouvez le dossier complet comprenant ces 3 articles :
 
 
 ...dans un classeur disponible en téléchargement : Références aux cellules ou plages .

 

Pour toutes vos questions ou si vous rencontrez des difficultés, n'hésitez pas à rejoindre nos Forums de Discussions !

Tags Tutoriel   Fonction   Formule   Dynamique   Plage   DECALER()   NBVAL()   Nommer  

 

Autres articles dans cette catégorie Publié le Vues
Rechercher une Fonction 28-05-2013 10092
T() - Tester et renvoyer du texte 02-07-2012 30755
EPURAGE() - Supprimer certains caractères indésirables 02-06-2012 85656
REMPLACER() - Echanger une chaîne de caractères par une autre 02-06-2012 29890
CTXT() - Convertir un nombre en texte 23-05-2012 83365
REPT() - Répéter des caractères un certain nombre de fois 26-04-2012 40831
L'Assistant Somme Conditionnelle 01-11-2011 16552
CELLULE() - Nom de l'onglet, du fichier ou du répertoire dans une cellule 03-10-2010 157295
EXACT() - Comparer deux chaînes de texte 26-04-2010 164819
Purgez les espaces inutiles ! 05-04-2010 209531
SUPPRESPACE() - Supprimer les espaces inutiles dans une cellule 05-04-2010 108679
STXT() - Extraire une chaîne de caractères au sein d'une autre 13-03-2010 395737
CHERCHE() TROUVE() - Retourne la position d'une chaîne de caractères 04-01-2010 185517
NBCAR() - Compter les caractères d'une chaîne de texte ou d'une plage de cellules 21-11-2009 45658
SUBSTITUE() - Remplacer une chaîne de texte par une autre 08-11-2009 209625
CAR() - CODE() : Utilisation des codes caractères 25-10-2009 76553
CONCATENER() - Assembler plusieurs chaînes de texte en une seule. 10-10-2009 44002
TEXTE() - Convertir une valeur numérique en texte formaté 29-09-2009 139071
DROITE() - GAUCHE() : Extraire les premiers ou derniers caractères d'une chaîne. 12-09-2009 479023
MAJUSCULE() - MINUSCULE() - NOMPROPRE(): Modifier la casse d'un texte 23-08-2009 13492
CNUM() - Convertir une chaîne en valeur numérique 19-08-2009 102846
DATEDIF() : Calculer la différence entre deux dates 26-07-2009 359531
Nommer une Plage Dynamique 06-12-2008 99933
Nommer une Plage de Cellules 05-12-2008 104187
Références Relatives & Absolues 05-12-2008 24160
Formule pour Nombres Premiers 29-08-2007 26653