Etendre une plage de données "automatiquement"

Lionel -  
 Lionel -
Bonjour,

je vous explique ce que je cherche à faire:
dans un tableau, je cherche à savoir si j'ai des cellules vides. Donc j'utilise la formule NB.VIDE sur la plage de données correspondant à mon tableau.

Le problème c'est que ce tableau est constamment modifié, par ajout ou suppression de lignes / de colonnes et du coup la plage de données définie dans ma formule n'évolue pas en fonction du nombre de lignes ou de colonnes qu varient.

est-il possible de faire variée cette plage sans avoir à le faire manuellement?

En résumé : J'ai NB.VIDE(A2:T275) et je voudrai que si j'ajoute une ligne excel comprenne et modifie tout seul la formule en NB.VIDE(A2:T276)

PS: c'est surtout les lignes qui varient et la colonne A est toujours remplie lorsqu'une ligne est ajoutée (au cas ou ça puisse aider)

merci d'avance


A voir également:

5 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

tu peux donner les bornes de ta plage, exemple A2:X20
ensuite quel type de formule utilises tu en fonction de ta plage

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Lionel
 
Bonjour,
J'ai NB.VIDE(A2:T275) et je voudrai que si j'ajoute une ligne excel comprenne et modifie tout seul la formule en NB.VIDE(A2:T276)
(désolé je viens juste de le rajouter dans le corps de ma question :-))
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,
quel type de données sont as tu dans tes colonnes, le mieux serait d'avoir un exemple de fichier que tu peux joindre à partir de ce lien
https://www.cjoint.com/
0
Lionel
 
je n'ai pas le fichier avec avec moi (c'est pour le boulot :-)) et je peux pas te faire de "copie" car je n'ai pas excel sur mon PC perso.
En bref, les colonnes contiennent soit des données inscrites manuellement (texte et chiffre) soit des formules qui permettent de coter ce qui a été inscrit manuellement.
c'est un fichier qui permet de faire une cotation des risques en fonction des données que l'on entre.
Du coup, le nombre de ligne varie en fonction de ce que j'évalue.

Mais si besoin je te ferais parvenir un fichier similaire en début de semaine prochaine.
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

en attendant ton fichier, si colonne T tu as au moins une donnée numérique

=NB.VIDE(A2:INDIRECT(ADRESSE(MAX(EQUIV(9^9;T:T);EQUIV("z";T:T));20)))

si toutes tes cellules de la colonne T ne contiennent que du texte ou sont au format texte tu as ce type de formule matricielle à confirmer avec les trois touche Ctrl, Shift et Entrée, et si tu fais bien la formule se placera entre ces accolades {}
le problème avec les matricielles, c'est qu'elles sont gourmande en ressource ce qui ralenti les mises à jour
=NB.VIDE(A2:INDIRECT(ADRESSE(MAX(LIGNE(T:T)*NON(ESTVIDE(T:T)));20)))
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Lionel
 
Cool merci,
j'essaierai ça.
sauf que ma dernière colonne contient une formule. Est-ce que c'est problématique?
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,
reviens sur mon post 4 j'ai rajouté une formule, teste en priorité la première
0
Lionel > Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci,

Je teste ça lundi et je te tiens au courant si ça ne me convient pas.
Bon week end
0
Lionel > Lionel
 
Bonjour,
Merci Mike,
Je testé la 1ère formule aujourd'hui et ça marche nickel.
J'ai juste simplifier la formule en :
=NB.VIDE(A2:INDIRECT(ADRESSE(EQUIV(9^9;A:A);20)))
car je voulais que le remplissage de la colonne A soit le déclencheur pour ajouter une ligne.

PS : pour ma culture perso : j'ai décortiqué la formule que tu m'as donnée parce que je ne connaissais pas les fonctions ADRESSE, MAX, EQUIV et INDIRECT.
J'ai compris leur fonctionnement maintenant mais il reste une chose que je ne comprends pas.
Si je tape :
=ADRESSE(EQUIV(9^9;A:A);20)
le résultat renvoyé est T276 soit la dernière cellule de mon tableau (qui varie en fonction du remplissage de ma colonne A).
J'aurai donc pensé que la formule :
=NB.VIDE(A2:ADRESSE(EQUIV(9^9;A:A);20)) aurait suffit pour fonctionner surtout que la fonction INDIRECT renvoi simplement la valeur numérique de T276.
d'où ma question : à quoi sert exactement la fonction INDIRECT dans ce cas?
Son utilisation est visiblement essentiel puisque la formule ne fonctionne pas sans l'ajout de cette fonction.

Merci d'avance, bonne soirée.
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour à tous,
Une autre possibilité en nommant la plage de manière dynamique :
Nom : maplage
Fait référence a :
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1;20)
Dans la formule de la feuille utiliser le nom :
= NB.VIDE(maplage)


0
Lionel
 
Bonjour,

La solution de mike-31 me convient mais je ferai un test sur cette formule pour mieux comprendre la fonction DECALER.

Bonne soirée, merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Excel-worker Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   58
 
Bonjour à tous,

Personnellement, je suis le raisonnement de Mike-31 (que je salue) en te conseillant de sélectionner ta plage, mettre sous forme de tableau puis de mettre le nom de ton tableau dans la formule.

Exemple : =NB.VIDE(Tableau1)

A chaque fois que tu rajouteras une ligne dans ton tableau, ta formule suivra.

Cordialement,
Excel-worker
0