Signaler

Trouver la plage utilisée par les données dans zone nommée [Résolu]

Posez votre question mijean94 305Messages postés mercredi 16 décembre 2015Date d'inscription 5 décembre 2016 Dernière intervention - Dernière réponse le 18 oct. 2016 à 22:05
Bonjour,

Je cherche à trouver comment trouvé la plage utilisée dans une zone nommée de mon tableau.

La zone, D3 :L37, est nommée « zone_de_travail »

Donc, il y a des données uniquement dans la zone E10 : J29, par exemple, mais par de données dans toute les cellules.

Comment faire pour trouver cette zone ?

Utilisation : mémoriser les coordonnées de cette zone dans une variable, pour copier ou faire un zoom sur cette zone ou autre…

Exemple de mon programme : http://www.cjoint.com/c/FJrqEMtr7xt

Merci pour vos réponses

Bien cordialement
Afficher la suite 
Utile
+0
moins plus
Bonsoir,

essaye la formule matricielle :
=CELLULE("adresse";DECALER($A$1;MIN(SI(Zone_de_Travail<>"";LIGNE(Zone_de_Travail);9^9))-1;MIN(SI(Zone_de_Travail<>"";COLONNE(Zone_de_Travail);9^9))-1))&":"&CELLULE("adresse";DECALER($A$1;MAX(SI(Zone_de_Travail<>"";LIGNE(Zone_de_Travail);0))-1;MAX(SI(Zone_de_Travail<>"";COLONNE(Zone_de_Travail);0))-1))


cordialement
mijean94 305Messages postés mercredi 16 décembre 2015Date d'inscription 5 décembre 2016 Dernière intervention - 17 oct. 2016 à 21:37
Bonjour,

Merci pour cette réponse.

La formule affole ... mais si sa peu marcher.

Je place cette la formule dans mon module VBA ? sous la forme ma variable =, par exemple, emplacement_plage = Cellule ........... suite de la formule ?

Merci pour la réponse.

Bien cordialement
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Bonsoir,

Je t'ai fait cette formule justement pour t'éviter du vba!
Je ne savais pas que tu voulais du code.

Dans ce cas, un for each sur zone_travail te permettra d'identifier, pour chaque cellule non vide, les lignes x colonnes.
Tu prends les min et les max et tu as les limites de la zone que tu cherches.

Cordialement
mijean94 305Messages postés mercredi 16 décembre 2015Date d'inscription 5 décembre 2016 Dernière intervention - 17 oct. 2016 à 23:53
Re

Merci pour les réponses.

J'ai essayé la solution sans code, mais je n'arrive pas à la faire fonctionner, le résultat donne #valeur!.
je suis avec Excel 2003

je n'ai peut-être pas tous compris.
Voici le code que j'ai mis dans une cellule de mon programme :

=CELLULE("D3:L37";DECALER($D$3;MIN(SI(Zone_de_Travail<>"";LIGNE(Zone_de_Travail);9^9))-1;MIN(SI(Zone_de_Travail<>"";COLONNE(Zone_de_Travail);9^9))-1))&":"&CELLULE("D3:L37";DECALER($D$3;MAX(SI(Zone_de_Travail<>"";LIGNE(Zone_de_Travail);0))-1;MAX(SI(Zone_de_Travail<>"";COLONNE(Zone_de_Travail);0))-1))


Pour la proposition du code avec for each sur zone_travail, je vais essayé de comprendre comment ça marche pour tenter de l'appliquer.

Merci pour la réponse
Bien cordialement
Répondre
JvDo 1644Messages postés mercredi 27 juillet 2005Date d'inscription 9 décembre 2016 Dernière intervention - 18 oct. 2016 à 00:10
Re,

C'est une formule matricielle.
Elle se valide par CTRL+MAJ+ENTER

Cordialement
Répondre
mijean94 305Messages postés mercredi 16 décembre 2015Date d'inscription 5 décembre 2016 Dernière intervention - 18 oct. 2016 à 11:35
Bonjour,

Merci pour l'info sur la validation de la formule matricielle.
Effectivement après la validation ça marche très bien.

Question :

Peut-on mélanger formule matricielle et code VBA pour récupérer le résultat et l’utiliser dans un code ou est-il préférable de faire la fonction en code VBA ?

Merci pour la réponse.

Bien cordialement
Répondre
mijean94 305Messages postés mercredi 16 décembre 2015Date d'inscription 5 décembre 2016 Dernière intervention - 18 oct. 2016 à 22:05
bonjour,

code et formule matricielle fonctionne très bien pour mon application.

Merci encore
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !