Trouver la plage utilisée par les données dans zone nommée
Résolu
mijean94
Messages postés
413
Date d'inscription
Statut
Membre
Dernière intervention
-
mijean94 Messages postés 413 Date d'inscription Statut Membre Dernière intervention -
mijean94 Messages postés 413 Date d'inscription Statut Membre Dernière intervention -
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 : https://www.cjoint.com/c/FJrqEMtr7xt
Merci pour vos réponses
Bien cordialement
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 : https://www.cjoint.com/c/FJrqEMtr7xt
Merci pour vos réponses
Bien cordialement
2 réponses
-
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 -
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-
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- 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
-