Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Definition de plage nommée

9 réponses
Avatar
rthompson
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne avec
Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes de A à
Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement, TVA, Rue,
etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex

9 réponses

Avatar
Misange
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus grand
nombre d'éléments. Si ce n'est pas le cas et que par exemple certaines
lignes peuvent ne pas être remplies sur la colonne A, adapte en mettant
nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne avec
Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes de A à
Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement, TVA, Rue,
etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex





Avatar
Misange
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus grand
nombre d'éléments. Si ce n'est pas le cas et que par exemple certaines
lignes peuvent ne pas être remplies sur la colonne A, adapte en mettant
nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne
avec Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes
de A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement,
TVA, Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex







Avatar
rthompson
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans l'espace prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage "AH1
AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus grand
nombre d'éléments. Si ce n'est pas le cas et que par exemple certaines
lignes peuvent ne pas être remplies sur la colonne A, adapte en mettant
nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne avec
Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes de
A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement, TVA,
Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex









Avatar
Misange
c'est juste que j'ai le doigt qui va trop vite parfois et qu'il manque un ;
pour t'emmouscailler (tu connais ce mot ?) je te dirais bien cherche où :-P
mais bon essaie plutôt ça et dis moi (n'oublie pas que toutes tes
colonnes doivent avoir une étiquette)

myrange=offset($A$1;;;countA($A:$A)-1;countA($1:$1))


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans l'espace prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage "AH1
AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus grand
nombre d'éléments. Si ce n'est pas le cas et que par exemple certaines
lignes peuvent ne pas être remplies sur la colonne A, adapte en mettant
nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne avec
Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes de
A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement, TVA,
Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex













Avatar
rthompson
Bonjour

Enfin de retour

Emmouscailler Terme souvent utiliser au 16ème et 17ème siecle dans la
marine

Pour embêter les jeunes "Mousse" on les forçait à écailler ( retirer les
écailles) des objets traînant dans l'eau

Je sais c'est pas ça, d'un côté cela me donne un air de quelqu'un qui a de
la culture
Et puis, c'est plus joli que le sens actuel dont le rapport avec des
coquillages et crustacés
est son synonyme "Bisque, bisque Râge!

Et puis si c'est pas encore ça, eh ben prrrrrrrrrrrt!

Fermons cet intermède culturel et passons au choses basment Excelliennes
Cela fonctionne parfaitement

Je suppose que les trois ; lui dise de compter le nombre de titre?
Parce que pour tester j'ai supprimer deux titres, et la plage est réduite de
deux colonnes

Definition du nom Customersheet
=OFFSET(Customers!$A$3;;;COUNTA(Customers!$A:$A)-1;COUNTA(Customers!$1:$1))
Et puis, j'ai fais ceci et je suis heureux


Merci a toi

And speak to you soon

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_Activate()
Range("Customersheet").Sort Key1:=Range("D2"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx








"Misange" a écrit dans le message de news:

c'est juste que j'ai le doigt qui va trop vite parfois et qu'il manque un
;
pour t'emmouscailler (tu connais ce mot ?) je te dirais bien cherche où
:-P
mais bon essaie plutôt ça et dis moi (n'oublie pas que toutes tes colonnes
doivent avoir une étiquette)

myrange=offset($A$1;;;countA($A:$A)-1;countA($1:$1))


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans l'espace
prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage "AH1
AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois
heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus grand
nombre d'éléments. Si ce n'est pas le cas et que par exemple certaines
lignes peuvent ne pas être remplies sur la colonne A, adapte en mettant
nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne
avec Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes
de A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement,
TVA, Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex














Avatar
Misange
hello
Ah si je pouvais causer english comme tu causes la france... :-)
(retiens pas cette formulation c'est très banlieue de par chez moi !)

décaler et ses ; qui n'ont rien à voir avec les titres :
5 arguments dans decaler
dacaler(départ;vers le bas;vers la droite;hauteur;largeur)

(voir aussi ici http://www.excelabo.net/excel/lexique.php#decaler )
1- d'où je pars : ici A1
2- je décale de combien de lignes vers le bas (si valeur positive ou
vers le haut si valeur négative. Ici tu ne peux pas aller plus haut que
A1 ! Si tu n'indiques rien ou 0, pas de décalage
3- je décale de combien de cellules vers la droite (ou vers la gauche si
valeur négative, ici encore en partant de A1 tu ne peux pas aller plus à
gauche !)Si tu n'indiques rien ou 0, pas de décalage

par exemple avec juste ces trois arguments
Þcaler(D5;1;-1) te fais partir de D5 descendre d'une ligne en D6 et
aller d'un cran vers la gauche donc en C6. Comme ça, ça ne parait pas
super malin ce truc : pourquoi ne pas écrire directement C6 ? Mais c'est
très malin dès que un des paramètres de la fonction décaler provient
d'un calcul et qu'au lieu d'écrire D5;1;-1 tu écris
decaler(macellulenommée;1;-1) par exemple ou decaler(D5;le résultat d'un
calcul supercompliqué; un autre résultat de calcul).


Si tu as de l'aspro sous la main, décortique ce genre de petit amusement
de ChrisV:
{=SI(ESTERR(INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2));"";INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2))}


Continuons avec les 2 derniers arguments de décaler :
avec les 3 premiers tu as Une cellule de sélectionnée. Si tu veux
sélectionner une plage, tu utilises les 2 derniers qui indiquent la
hauteur de la plage puis sa largeur.
Decaler(D5;1;-1;5;4) sélectionne une plage de 5 cellules de haut et de 4
cellules de large débutant en C6 (cellule en haut à gauche de la plage
par définition).



Donc dans ton "cas" (grave bien sur)
decaler($A$1;0;0;nbval($A:$A);nbval($1:$1))
te fait partir d'A1 et y rester, puis sélectionner une hauteur de plage
égale au nombre de cellules remplies dans ta colonne A et une largeur de
plages correspondant au nombre de cellules remplies sur la ligne 1.

Tu peux éviter d'écrire les 0,
ta formule devient alors decaler($A$1;;;nbval($A:$A);nbval($1:$1))
mais si tu oublies un ; le nbval (A:A) devient alors l'argument utilisé
pour décaler ta cellule de départ vers la droite et oeuf corse, ça va
pas où tu veux !

Si tu veux éliminer la ligne d'étiquettes, fais partir ta plage de A2 et
définis la hauteur par nbval($A:$A)-1. Le truc c'est qu'il ne faut
RIEN mettre d'autre sur cette feuille ! ou alors si tu as besoin
impérativement d'ajouter un truc, il faut que tu adaptes ta formule pour
qu'elle tienne compte de ces parasites.
L'énoooorme avantage c'est que ta formule compte toute seule le nombre
de lignes et de colonnes et que si tu décides d'ajouter une colonne par
exemple, crac le nom s'est automatiquement adapté. C'est un truc
indispensable pour définir les sources de données des tableaux croisés
dynamiques par exemple. Comme ça quand tu modifies tes données source,
un petit coup de refresh sur le tcd et les nouvelles valeurs sont prises
en compte immédiatement. Entre index/equiv, decaler et sommeprod,
franchement, si je devais partir sur une ile déserte je ne sais pas qui
j'emporterai (enfin si : mon maillot de bain, sauf si c'est l'Islande...)

bon pendant ce temps, la grosse averse qui m'empêchait de rentrer chez
moi est finie et je quitte :-)


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour

Enfin de retour

Emmouscailler Terme souvent utiliser au 16ème et 17ème siecle dans la
marine

Pour embêter les jeunes "Mousse" on les forçait à écailler ( retirer les
écailles) des objets traînant dans l'eau

Je sais c'est pas ça, d'un côté cela me donne un air de quelqu'un qui a de
la culture
Et puis, c'est plus joli que le sens actuel dont le rapport avec des
coquillages et crustacés
est son synonyme "Bisque, bisque Râge!

Et puis si c'est pas encore ça, eh ben prrrrrrrrrrrt!

Fermons cet intermède culturel et passons au choses basment Excelliennes
Cela fonctionne parfaitement

Je suppose que les trois ; lui dise de compter le nombre de titre?
Parce que pour tester j'ai supprimer deux titres, et la plage est réduite de
deux colonnes

Definition du nom Customersheet
=OFFSET(Customers!$A$3;;;COUNTA(Customers!$A:$A)-1;COUNTA(Customers!$1:$1))
Et puis, j'ai fais ceci et je suis heureux


Merci a toi

And speak to you soon

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_Activate()
Range("Customersheet").Sort Key1:=Range("D2"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx








"Misange" a écrit dans le message de news:

c'est juste que j'ai le doigt qui va trop vite parfois et qu'il manque un
;
pour t'emmouscailler (tu connais ce mot ?) je te dirais bien cherche où
:-P
mais bon essaie plutôt ça et dis moi (n'oublie pas que toutes tes colonnes
doivent avoir une étiquette)

myrange=offset($A$1;;;countA($A:$A)-1;countA($1:$1))


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans l'espace
prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage "AH1
AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois
heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus grand
nombre d'éléments. Si ce n'est pas le cas et que par exemple certaines
lignes peuvent ne pas être remplies sur la colonne A, adapte en mettant
nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne
avec Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les colonnes
de A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement,
TVA, Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex
















Avatar
rthompson
Ben là!!!!!


Je suis comme le fromage
SOUFFLE !!

Je croyais que notre Modeste était un "explicateur" de première,
mais là, tu le dépasse

Je sais que dans ce genre de groupe, on ne dois pas trop causer privé
mais j'aimerais savoir ce que tu fais comme boulot

Si ce n'est pas le cas, tu devrais être dans la formation ou l'enseignement
Personnellement je suis dans le commerce de matériel éducatif
ce qui fait que je vends, mais je donne des formations etc...

Et ta façon d'expliquer est merveilleuse

Dommage que tu sois si loin, j'aurais aimé te rencontrer
lors d'une prochaine réunion du MPFE dans les environs de la Belgique
Et ici non plus tu ne prendrais pas ton maillot ;-)))

Encore merci et encore merci pour Excelabo

Et merci de garder encore et toujours ma petite contribution au "Grand
Perlier du MPFE"
(on l'aime dans toutes les langues) cela fait toujours plaisir

Merci

A bientôt

Rex

"Misange" a écrit dans le message de news:

hello
Ah si je pouvais causer english comme tu causes la france... :-)
(retiens pas cette formulation c'est très banlieue de par chez moi !)

décaler et ses ; qui n'ont rien à voir avec les titres :
5 arguments dans decaler
dacaler(départ;vers le bas;vers la droite;hauteur;largeur)

(voir aussi ici http://www.excelabo.net/excel/lexique.php#decaler )
1- d'où je pars : ici A1
2- je décale de combien de lignes vers le bas (si valeur positive ou vers
le haut si valeur négative. Ici tu ne peux pas aller plus haut que A1 ! Si
tu n'indiques rien ou 0, pas de décalage
3- je décale de combien de cellules vers la droite (ou vers la gauche si
valeur négative, ici encore en partant de A1 tu ne peux pas aller plus à
gauche !)Si tu n'indiques rien ou 0, pas de décalage

par exemple avec juste ces trois arguments
Þcaler(D5;1;-1) te fais partir de D5 descendre d'une ligne en D6 et
aller d'un cran vers la gauche donc en C6. Comme ça, ça ne parait pas
super malin ce truc : pourquoi ne pas écrire directement C6 ? Mais c'est
très malin dès que un des paramètres de la fonction décaler provient d'un
calcul et qu'au lieu d'écrire D5;1;-1 tu écris
decaler(macellulenommée;1;-1) par exemple ou decaler(D5;le résultat d'un
calcul supercompliqué; un autre résultat de calcul).


Si tu as de l'aspro sous la main, décortique ce genre de petit amusement
de ChrisV:
{=SI(ESTERR(INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2));"";INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2))}


Continuons avec les 2 derniers arguments de décaler :
avec les 3 premiers tu as Une cellule de sélectionnée. Si tu veux
sélectionner une plage, tu utilises les 2 derniers qui indiquent la
hauteur de la plage puis sa largeur.
Decaler(D5;1;-1;5;4) sélectionne une plage de 5 cellules de haut et de 4
cellules de large débutant en C6 (cellule en haut à gauche de la plage par
définition).



Donc dans ton "cas" (grave bien sur)
decaler($A$1;0;0;nbval($A:$A);nbval($1:$1))
te fait partir d'A1 et y rester, puis sélectionner une hauteur de plage
égale au nombre de cellules remplies dans ta colonne A et une largeur de
plages correspondant au nombre de cellules remplies sur la ligne 1.

Tu peux éviter d'écrire les 0,
ta formule devient alors decaler($A$1;;;nbval($A:$A);nbval($1:$1))
mais si tu oublies un ; le nbval (A:A) devient alors l'argument utilisé
pour décaler ta cellule de départ vers la droite et oeuf corse, ça va pas
où tu veux !

Si tu veux éliminer la ligne d'étiquettes, fais partir ta plage de A2 et
définis la hauteur par nbval($A:$A)-1. Le truc c'est qu'il ne faut RIEN
mettre d'autre sur cette feuille ! ou alors si tu as besoin impérativement
d'ajouter un truc, il faut que tu adaptes ta formule pour qu'elle tienne
compte de ces parasites.
L'énoooorme avantage c'est que ta formule compte toute seule le nombre de
lignes et de colonnes et que si tu décides d'ajouter une colonne par
exemple, crac le nom s'est automatiquement adapté. C'est un truc
indispensable pour définir les sources de données des tableaux croisés
dynamiques par exemple. Comme ça quand tu modifies tes données source, un
petit coup de refresh sur le tcd et les nouvelles valeurs sont prises en
compte immédiatement. Entre index/equiv, decaler et sommeprod,
franchement, si je devais partir sur une ile déserte je ne sais pas qui
j'emporterai (enfin si : mon maillot de bain, sauf si c'est l'Islande...)

bon pendant ce temps, la grosse averse qui m'empêchait de rentrer chez moi
est finie et je quitte :-)


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour

Enfin de retour

Emmouscailler Terme souvent utiliser au 16ème et 17ème siecle dans la
marine

Pour embêter les jeunes "Mousse" on les forçait à écailler ( retirer les
écailles) des objets traînant dans l'eau

Je sais c'est pas ça, d'un côté cela me donne un air de quelqu'un qui a
de la culture
Et puis, c'est plus joli que le sens actuel dont le rapport avec des
coquillages et crustacés
est son synonyme "Bisque, bisque Râge!

Et puis si c'est pas encore ça, eh ben prrrrrrrrrrrt!

Fermons cet intermède culturel et passons au choses basment Excelliennes
Cela fonctionne parfaitement

Je suppose que les trois ; lui dise de compter le nombre de titre?
Parce que pour tester j'ai supprimer deux titres, et la plage est réduite
de deux colonnes

Definition du nom Customersheet

=OFFSET(Customers!$A$3;;;COUNTA(Customers!$A:$A)-1;COUNTA(Customers!$1:$1))
Et puis, j'ai fais ceci et je suis heureux


Merci a toi

And speak to you soon

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_Activate()
Range("Customersheet").Sort Key1:=Range("D2"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx








"Misange" a écrit dans le message de news:

c'est juste que j'ai le doigt qui va trop vite parfois et qu'il manque
un ;
pour t'emmouscailler (tu connais ce mot ?) je te dirais bien cherche où
:-P
mais bon essaie plutôt ça et dis moi (n'oublie pas que toutes tes
colonnes doivent avoir une étiquette)

myrange=offset($A$1;;;countA($A:$A)-1;countA($1:$1))


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans l'espace
prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage "AH1
AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois
heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus
grand nombre d'éléments. Si ce n'est pas le cas et que par exemple
certaines lignes peuvent ne pas être remplies sur la colonne A,
adapte en mettant nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne
avec Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les
colonnes de A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement,
TVA, Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes
occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex


















Avatar
Misange
;-)
Non je ne suis pas dans l'enseignement, même s'il m'arrive d'enseigner,
mais dans la biologie... ou j'utilise excel tous les jours pour analyser
mes données.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Ben là!!!!!


Je suis comme le fromage
SOUFFLE !!

Je croyais que notre Modeste était un "explicateur" de première,
mais là, tu le dépasse

Je sais que dans ce genre de groupe, on ne dois pas trop causer privé
mais j'aimerais savoir ce que tu fais comme boulot

Si ce n'est pas le cas, tu devrais être dans la formation ou l'enseignement
Personnellement je suis dans le commerce de matériel éducatif
ce qui fait que je vends, mais je donne des formations etc...

Et ta façon d'expliquer est merveilleuse

Dommage que tu sois si loin, j'aurais aimé te rencontrer
lors d'une prochaine réunion du MPFE dans les environs de la Belgique
Et ici non plus tu ne prendrais pas ton maillot ;-)))

Encore merci et encore merci pour Excelabo

Et merci de garder encore et toujours ma petite contribution au "Grand
Perlier du MPFE"
(on l'aime dans toutes les langues) cela fait toujours plaisir

Merci

A bientôt

Rex

"Misange" a écrit dans le message de news:

hello
Ah si je pouvais causer english comme tu causes la france... :-)
(retiens pas cette formulation c'est très banlieue de par chez moi !)

décaler et ses ; qui n'ont rien à voir avec les titres :
5 arguments dans decaler
dacaler(départ;vers le bas;vers la droite;hauteur;largeur)

(voir aussi ici http://www.excelabo.net/excel/lexique.php#decaler )
1- d'où je pars : ici A1
2- je décale de combien de lignes vers le bas (si valeur positive ou vers
le haut si valeur négative. Ici tu ne peux pas aller plus haut que A1 ! Si
tu n'indiques rien ou 0, pas de décalage
3- je décale de combien de cellules vers la droite (ou vers la gauche si
valeur négative, ici encore en partant de A1 tu ne peux pas aller plus à
gauche !)Si tu n'indiques rien ou 0, pas de décalage

par exemple avec juste ces trois arguments
Þcaler(D5;1;-1) te fais partir de D5 descendre d'une ligne en D6 et
aller d'un cran vers la gauche donc en C6. Comme ça, ça ne parait pas
super malin ce truc : pourquoi ne pas écrire directement C6 ? Mais c'est
très malin dès que un des paramètres de la fonction décaler provient d'un
calcul et qu'au lieu d'écrire D5;1;-1 tu écris
decaler(macellulenommée;1;-1) par exemple ou decaler(D5;le résultat d'un
calcul supercompliqué; un autre résultat de calcul).


Si tu as de l'aspro sous la main, décortique ce genre de petit amusement
de ChrisV:
{=SI(ESTERR(INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2));"";INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2))}


Continuons avec les 2 derniers arguments de décaler :
avec les 3 premiers tu as Une cellule de sélectionnée. Si tu veux
sélectionner une plage, tu utilises les 2 derniers qui indiquent la
hauteur de la plage puis sa largeur.
Decaler(D5;1;-1;5;4) sélectionne une plage de 5 cellules de haut et de 4
cellules de large débutant en C6 (cellule en haut à gauche de la plage par
définition).



Donc dans ton "cas" (grave bien sur)
decaler($A$1;0;0;nbval($A:$A);nbval($1:$1))
te fait partir d'A1 et y rester, puis sélectionner une hauteur de plage
égale au nombre de cellules remplies dans ta colonne A et une largeur de
plages correspondant au nombre de cellules remplies sur la ligne 1.

Tu peux éviter d'écrire les 0,
ta formule devient alors decaler($A$1;;;nbval($A:$A);nbval($1:$1))
mais si tu oublies un ; le nbval (A:A) devient alors l'argument utilisé
pour décaler ta cellule de départ vers la droite et oeuf corse, ça va pas
où tu veux !

Si tu veux éliminer la ligne d'étiquettes, fais partir ta plage de A2 et
définis la hauteur par nbval($A:$A)-1. Le truc c'est qu'il ne faut RIEN
mettre d'autre sur cette feuille ! ou alors si tu as besoin impérativement
d'ajouter un truc, il faut que tu adaptes ta formule pour qu'elle tienne
compte de ces parasites.
L'énoooorme avantage c'est que ta formule compte toute seule le nombre de
lignes et de colonnes et que si tu décides d'ajouter une colonne par
exemple, crac le nom s'est automatiquement adapté. C'est un truc
indispensable pour définir les sources de données des tableaux croisés
dynamiques par exemple. Comme ça quand tu modifies tes données source, un
petit coup de refresh sur le tcd et les nouvelles valeurs sont prises en
compte immédiatement. Entre index/equiv, decaler et sommeprod,
franchement, si je devais partir sur une ile déserte je ne sais pas qui
j'emporterai (enfin si : mon maillot de bain, sauf si c'est l'Islande...)

bon pendant ce temps, la grosse averse qui m'empêchait de rentrer chez moi
est finie et je quitte :-)


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour

Enfin de retour

Emmouscailler Terme souvent utiliser au 16ème et 17ème siecle dans la
marine

Pour embêter les jeunes "Mousse" on les forçait à écailler ( retirer les
écailles) des objets traînant dans l'eau

Je sais c'est pas ça, d'un côté cela me donne un air de quelqu'un qui a
de la culture
Et puis, c'est plus joli que le sens actuel dont le rapport avec des
coquillages et crustacés
est son synonyme "Bisque, bisque Râge!

Et puis si c'est pas encore ça, eh ben prrrrrrrrrrrt!

Fermons cet intermède culturel et passons au choses basment Excelliennes
Cela fonctionne parfaitement

Je suppose que les trois ; lui dise de compter le nombre de titre?
Parce que pour tester j'ai supprimer deux titres, et la plage est réduite
de deux colonnes

Definition du nom Customersheet

=OFFSET(Customers!$A$3;;;COUNTA(Customers!$A:$A)-1;COUNTA(Customers!$1:$1))
Et puis, j'ai fais ceci et je suis heureux


Merci a toi

And speak to you soon

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_Activate()
Range("Customersheet").Sort Key1:=Range("D2"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx








"Misange" a écrit dans le message de news:

c'est juste que j'ai le doigt qui va trop vite parfois et qu'il manque
un ;
pour t'emmouscailler (tu connais ce mot ?) je te dirais bien cherche où
:-P
mais bon essaie plutôt ça et dis moi (n'oublie pas que toutes tes
colonnes doivent avoir une étiquette)

myrange=offset($A$1;;;countA($A:$A)-1;countA($1:$1))


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans l'espace
prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage "AH1
AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois
heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus
grand nombre d'éléments. Si ce n'est pas le cas et que par exemple
certaines lignes peuvent ne pas être remplies sur la colonne A,
adapte en mettant nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs colonne
avec Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les
colonnes de A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement,
TVA, Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes
occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex





















Avatar
rthompson
Merci ;-))


"Misange" a écrit dans le message de news:

;-)
Non je ne suis pas dans l'enseignement, même s'il m'arrive d'enseigner,
mais dans la biologie... ou j'utilise excel tous les jours pour analyser
mes données.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Ben là!!!!!


Je suis comme le fromage
SOUFFLE !!

Je croyais que notre Modeste était un "explicateur" de première,
mais là, tu le dépasse

Je sais que dans ce genre de groupe, on ne dois pas trop causer privé
mais j'aimerais savoir ce que tu fais comme boulot

Si ce n'est pas le cas, tu devrais être dans la formation ou
l'enseignement
Personnellement je suis dans le commerce de matériel éducatif
ce qui fait que je vends, mais je donne des formations etc...

Et ta façon d'expliquer est merveilleuse

Dommage que tu sois si loin, j'aurais aimé te rencontrer
lors d'une prochaine réunion du MPFE dans les environs de la Belgique
Et ici non plus tu ne prendrais pas ton maillot ;-)))

Encore merci et encore merci pour Excelabo

Et merci de garder encore et toujours ma petite contribution au "Grand
Perlier du MPFE"
(on l'aime dans toutes les langues) cela fait toujours plaisir

Merci

A bientôt

Rex

"Misange" a écrit dans le message de news:

hello
Ah si je pouvais causer english comme tu causes la france... :-)
(retiens pas cette formulation c'est très banlieue de par chez moi !)

décaler et ses ; qui n'ont rien à voir avec les titres :
5 arguments dans decaler
dacaler(départ;vers le bas;vers la droite;hauteur;largeur)

(voir aussi ici http://www.excelabo.net/excel/lexique.php#decaler )
1- d'où je pars : ici A1
2- je décale de combien de lignes vers le bas (si valeur positive ou
vers le haut si valeur négative. Ici tu ne peux pas aller plus haut que
A1 ! Si tu n'indiques rien ou 0, pas de décalage
3- je décale de combien de cellules vers la droite (ou vers la gauche si
valeur négative, ici encore en partant de A1 tu ne peux pas aller plus à
gauche !)Si tu n'indiques rien ou 0, pas de décalage

par exemple avec juste ces trois arguments
Þcaler(D5;1;-1) te fais partir de D5 descendre d'une ligne en D6 et
aller d'un cran vers la gauche donc en C6. Comme ça, ça ne parait pas
super malin ce truc : pourquoi ne pas écrire directement C6 ? Mais c'est
très malin dès que un des paramètres de la fonction décaler provient
d'un calcul et qu'au lieu d'écrire D5;1;-1 tu écris
decaler(macellulenommée;1;-1) par exemple ou decaler(D5;le résultat d'un
calcul supercompliqué; un autre résultat de calcul).


Si tu as de l'aspro sous la main, décortique ce genre de petit amusement
de ChrisV:
{=SI(ESTERR(INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2));"";INDEX(Zn;TRANSPOSE(PETITE.VALEUR(SI(DECALER(Zn;;;;1)=$A2;1+LIGNE(Zn)-2);LIGNE(INDIRECT("1:"&LIGNES(Zn)))));2))}


Continuons avec les 2 derniers arguments de décaler :
avec les 3 premiers tu as Une cellule de sélectionnée. Si tu veux
sélectionner une plage, tu utilises les 2 derniers qui indiquent la
hauteur de la plage puis sa largeur.
Decaler(D5;1;-1;5;4) sélectionne une plage de 5 cellules de haut et de 4
cellules de large débutant en C6 (cellule en haut à gauche de la plage
par définition).



Donc dans ton "cas" (grave bien sur)
decaler($A$1;0;0;nbval($A:$A);nbval($1:$1))
te fait partir d'A1 et y rester, puis sélectionner une hauteur de plage
égale au nombre de cellules remplies dans ta colonne A et une largeur de
plages correspondant au nombre de cellules remplies sur la ligne 1.

Tu peux éviter d'écrire les 0,
ta formule devient alors decaler($A$1;;;nbval($A:$A);nbval($1:$1))
mais si tu oublies un ; le nbval (A:A) devient alors l'argument utilisé
pour décaler ta cellule de départ vers la droite et oeuf corse, ça va
pas où tu veux !

Si tu veux éliminer la ligne d'étiquettes, fais partir ta plage de A2 et
définis la hauteur par nbval($A:$A)-1. Le truc c'est qu'il ne faut RIEN
mettre d'autre sur cette feuille ! ou alors si tu as besoin
impérativement d'ajouter un truc, il faut que tu adaptes ta formule pour
qu'elle tienne compte de ces parasites.
L'énoooorme avantage c'est que ta formule compte toute seule le nombre
de lignes et de colonnes et que si tu décides d'ajouter une colonne par
exemple, crac le nom s'est automatiquement adapté. C'est un truc
indispensable pour définir les sources de données des tableaux croisés
dynamiques par exemple. Comme ça quand tu modifies tes données source,
un petit coup de refresh sur le tcd et les nouvelles valeurs sont prises
en compte immédiatement. Entre index/equiv, decaler et sommeprod,
franchement, si je devais partir sur une ile déserte je ne sais pas qui
j'emporterai (enfin si : mon maillot de bain, sauf si c'est
l'Islande...)

bon pendant ce temps, la grosse averse qui m'empêchait de rentrer chez
moi est finie et je quitte :-)


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour

Enfin de retour

Emmouscailler Terme souvent utiliser au 16ème et 17ème siecle dans la
marine

Pour embêter les jeunes "Mousse" on les forçait à écailler ( retirer
les écailles) des objets traînant dans l'eau

Je sais c'est pas ça, d'un côté cela me donne un air de quelqu'un qui a
de la culture
Et puis, c'est plus joli que le sens actuel dont le rapport avec des
coquillages et crustacés
est son synonyme "Bisque, bisque Râge!

Et puis si c'est pas encore ça, eh ben prrrrrrrrrrrt!

Fermons cet intermède culturel et passons au choses basment
Excelliennes
Cela fonctionne parfaitement

Je suppose que les trois ; lui dise de compter le nombre de titre?
Parce que pour tester j'ai supprimer deux titres, et la plage est
réduite de deux colonnes

Definition du nom Customersheet

=OFFSET(Customers!$A$3;;;COUNTA(Customers!$A:$A)-1;COUNTA(Customers!$1:$1))
Et puis, j'ai fais ceci et je suis heureux


Merci a toi

And speak to you soon

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxx
Private Sub Worksheet_Activate()
Range("Customersheet").Sort Key1:=Range("D2"),
Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx








"Misange" a écrit dans le message de news:

c'est juste que j'ai le doigt qui va trop vite parfois et qu'il manque
un ;
pour t'emmouscailler (tu connais ce mot ?) je te dirais bien cherche
où :-P
mais bon essaie plutôt ça et dis moi (n'oublie pas que toutes tes
colonnes doivent avoir une étiquette)

myrange=offset($A$1;;;countA($A:$A)-1;countA($1:$1))


Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Oups sorry, oups sorry, oups sorry


J'veux bien te pardonner pour une fois
Vu que tu fais un boulot que beaucoup des nouveaux ignore

Et j'en profite pour te féliciter et te remercier

MAIS

J'ai un souci

Si je mets ta formule comme déclaration de nom

C'est-à-dire "insert - Name - Define"

Je donne un nom "Customersheet" et je colle ta formule dans
l'espace prévu
Je clique sur "Add"

Et quand je reselectionne Customersheet il me sélectionne la plage
"AH1 AH23"

Et là, moi j'y comprends rien

Je dois filer sur Liège maintenant donc je serai parti pendant trois
heures

Si tu as une idée je suis preneur
Mais t'auras pas de réponse avant 16h Belge

A bientôt

Rex



"Misange" a écrit dans le message de news:
%
oups, so sorry my dear,
myrange=offset($A$1;;countA($A:$A)-1;countA($1:$1)) :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Misange a écrit :
bonjour REx
Si ta plage commence en A1
maplageÞcaler($A$1;;nbval($A:$A);nbval($1:$1)) te sélectionne
l'ensemble de la plage
avec la restriction que la colonne A est celle contenant le plus
grand nombre d'éléments. Si ce n'est pas le cas et que par exemple
certaines lignes peuvent ne pas être remplies sur la colonne A,
adapte en mettant nbval($C:$C) par exemple...
Tu peux enlever la ligne d'étiquettes si tu n'en veux pas :
maplageÞcaler($A$1;;nbval($A:$A)-1;nbval($1:$1))

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
Bonjour à toutes et tous


Comment fait-on pour définir une plage nommée sur plusieurs
colonne avec Offset

Exemple
=OFFSET(Customers!$H$1;2;0;COUNTA(Customers!$A:$A)-1;1)

Ceci me donne toutes les cellules occupées de la colonne H

Je voudrais sélectionner toutes les lignes occupées pour les
colonnes de A à Z

J'ai essayé
=OFFSET((Customers!$H$1:$Z$1);2;0;COUNTA(Customers!$A)-1;1))
sans succès

J'essssspliiiikkkkk

J'ai une feuille "Clients"
Dans cette feuille une serie de colonne style Nom, Etablissement,
TVA, Rue, etc

Je voudrais créer une macro qui, à chaque ouverture de cette
feuile,
me trie le tout sur le nom de l'établissement

Donc je me suis dis que le plus facile était de créer un nom
avec avec toutes les colonnes réglée sur le nombre de lignes
occupées

J'ai essayé plusieurs variantes sans succès

Si quelqu'un peux m'aider

Merci et à bientôt

Rex