J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 17/12/21 Í 16:22, Apitos a écrit :
Bonjour, J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation. Merci.
Bonjour, Pour trouver le nom de la feuille active Í partir d'une formule, tu as ceci. Cela fonctionne seulement si le fichier a été enregistré. =STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;255) Dans la formule les 2 "A1" sont utilisés pour faire référence Í la feuille active. Pour obtenir le nom de la "Feuil2" en Feuil1, on pourrait écrire : =STXT(CELLULE("nomfichier";Feuil2!A1);TROUVE("]";CELLULE("nomfichier";Feuil2!A1))+1;255) Les 2 "A1" ont été remplacés par une cellule de la feuille : Feuil2!A1 J'avoue que ce n'est pas très génial... ;-)) En vba, c'est très simple, sans un module standard, tu copies cette fonction. Le résultat de la fonction "SheetName" retourne un tableau (array) Suppose que tu as 10 feuilles dans ton classeur, A ) tu sélectionnes 10 cellules de A1 Í A10 B ) utilise la touche F2, la cellule A1 va passer en mode édition C ) Tu valides la formule en utilisant la combinaison des touches Ctrl + Maj + enter. D ) Tu vas obtenir la liste des 10 feuilles de ton classeur. '--------------------------- Function SheetName() Dim Sh As Worksheet, A As Long, T() For Each Sh In Worksheets A = A + 1 ReDim Preserve T(1 To A) T(A) = Sh.Name Next SheetName = Application.Transpose(T) End Function '--------------------------- Une variante Í la fonction précédente : On écrit seulement dans une cellule =sheetname(LIGNE(A1)) Et on peut recopier automatiquement vers le bas et obtenir la liste de tous les noms des feuilles. '-------------------------------- Function SheetName(X As Long) Dim Sh As Worksheet, A As Long, T() For Each Sh In Worksheets A = A + 1 ReDim Preserve T(1 To A) T(A) = Sh.Name Next SheetName = Application.Index(T, X) End Function '-------------------------------- On pourrait faire une simple petite procédure qui ferait la même chose au lieu d'utiliser la fonction. MichD
Le 17/12/21 Í 16:22, Apitos a écrit :
Bonjour,
J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation.
Merci.
Bonjour,
Pour trouver le nom de la feuille active Í partir d'une formule, tu as
ceci. Cela fonctionne seulement si le fichier a été enregistré.
Les 2 "A1" ont été remplacés par une cellule de la feuille : Feuil2!A1
J'avoue que ce n'est pas très génial... ;-))
En vba, c'est très simple, sans un module standard, tu copies cette
fonction. Le résultat de la fonction "SheetName" retourne un tableau (array)
Suppose que tu as 10 feuilles dans ton classeur,
A ) tu sélectionnes 10 cellules de A1 Í A10
B ) utilise la touche F2, la cellule A1 va passer en mode édition
C ) Tu valides la formule en utilisant la combinaison des touches
Ctrl + Maj + enter.
D ) Tu vas obtenir la liste des 10 feuilles de ton classeur.
'---------------------------
Function SheetName()
Dim Sh As Worksheet, A As Long, T()
For Each Sh In Worksheets
A = A + 1
ReDim Preserve T(1 To A)
T(A) = Sh.Name
Next
SheetName = Application.Transpose(T)
End Function
'---------------------------
Une variante Í la fonction précédente :
On écrit seulement dans une cellule
=sheetname(LIGNE(A1))
Et on peut recopier automatiquement vers le bas et
obtenir la liste de tous les noms des feuilles.
'--------------------------------
Function SheetName(X As Long)
Dim Sh As Worksheet, A As Long, T()
For Each Sh In Worksheets
A = A + 1
ReDim Preserve T(1 To A)
T(A) = Sh.Name
Next
SheetName = Application.Index(T, X)
End Function
'--------------------------------
On pourrait faire une simple petite procédure qui ferait la même chose
au lieu d'utiliser la fonction.
Bonjour, J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation. Merci.
Bonjour, Pour trouver le nom de la feuille active Í partir d'une formule, tu as ceci. Cela fonctionne seulement si le fichier a été enregistré. =STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;255) Dans la formule les 2 "A1" sont utilisés pour faire référence Í la feuille active. Pour obtenir le nom de la "Feuil2" en Feuil1, on pourrait écrire : =STXT(CELLULE("nomfichier";Feuil2!A1);TROUVE("]";CELLULE("nomfichier";Feuil2!A1))+1;255) Les 2 "A1" ont été remplacés par une cellule de la feuille : Feuil2!A1 J'avoue que ce n'est pas très génial... ;-)) En vba, c'est très simple, sans un module standard, tu copies cette fonction. Le résultat de la fonction "SheetName" retourne un tableau (array) Suppose que tu as 10 feuilles dans ton classeur, A ) tu sélectionnes 10 cellules de A1 Í A10 B ) utilise la touche F2, la cellule A1 va passer en mode édition C ) Tu valides la formule en utilisant la combinaison des touches Ctrl + Maj + enter. D ) Tu vas obtenir la liste des 10 feuilles de ton classeur. '--------------------------- Function SheetName() Dim Sh As Worksheet, A As Long, T() For Each Sh In Worksheets A = A + 1 ReDim Preserve T(1 To A) T(A) = Sh.Name Next SheetName = Application.Transpose(T) End Function '--------------------------- Une variante Í la fonction précédente : On écrit seulement dans une cellule =sheetname(LIGNE(A1)) Et on peut recopier automatiquement vers le bas et obtenir la liste de tous les noms des feuilles. '-------------------------------- Function SheetName(X As Long) Dim Sh As Worksheet, A As Long, T() For Each Sh In Worksheets A = A + 1 ReDim Preserve T(1 To A) T(A) = Sh.Name Next SheetName = Application.Index(T, X) End Function '-------------------------------- On pourrait faire une simple petite procédure qui ferait la même chose au lieu d'utiliser la fonction. MichD
MichD
J'allais oublier la fonction la plus simple : Dans un module standard : '----------------------- Function SheetName(X As Long) SheetName = Worksheets(X).Name End Function '----------------------- Dans la feuille, tu inscris : =sheetname(ligne(A1)). La formule peut être recopiée automatiquement sur une plage de cellules. MichD
J'allais oublier la fonction la plus simple :
Dans un module standard :
'-----------------------
Function SheetName(X As Long)
SheetName = Worksheets(X).Name
End Function
'-----------------------
Dans la feuille, tu inscris : =sheetname(ligne(A1)).
La formule peut être recopiée automatiquement sur une plage de cellules.
J'allais oublier la fonction la plus simple : Dans un module standard : '----------------------- Function SheetName(X As Long) SheetName = Worksheets(X).Name End Function '----------------------- Dans la feuille, tu inscris : =sheetname(ligne(A1)). La formule peut être recopiée automatiquement sur une plage de cellules. MichD
Apitos
Bonjour MichD, Toujours en formule, j'ai lu qu'il y a une fonction qui retourne tous les noms des feuilles du classeur, Í savoir GET.WORKBOOK. Peut-on l'utiliser dans notre cas ? Merci.
Bonjour MichD,
Toujours en formule, j'ai lu qu'il y a une fonction qui retourne tous les noms des feuilles du classeur, Í savoir GET.WORKBOOK.
Bonjour MichD, Toujours en formule, j'ai lu qu'il y a une fonction qui retourne tous les noms des feuilles du classeur, Í savoir GET.WORKBOOK. Peut-on l'utiliser dans notre cas ? Merci.
MichD
Le 18/12/21 Í 16:31, Apitos a écrit :
Bonjour MichD, Toujours en formule, j'ai lu qu'il y a une fonction qui retourne tous les noms des feuilles du classeur, Í savoir GET.WORKBOOK. Peut-on l'utiliser dans notre cas ? Merci.
Bonjour, Cela fait référence Í des macros xl4. À cette adresse, tu as des explications, sur la manière de procéder. Ces commandes sont en français si ta version d'Excel est française. Tu vas devoir ajouter une feuille "Macro Ms Excel 4.0". Je n'ai pas d'expérience dans ces commandes. http://www.gaboly.com/MPFE/LireClasseur1.html Ici, tu as un vidéo sur YouTube qui décrit comment procéder : https://www.youtube.com/watch?v=PgYyECq7trs Ces fonctions de macro Xl 4 ne peuvent pas être utilisé directement dans la feuille de calcul. Tu crées un "NOM" avec ces dernières. Maintenant, tu en sais autant que moi sur ce sujet! MichD
Le 18/12/21 Í 16:31, Apitos a écrit :
Bonjour MichD,
Toujours en formule, j'ai lu qu'il y a une fonction qui retourne tous les noms des feuilles du classeur, Í savoir GET.WORKBOOK.
Peut-on l'utiliser dans notre cas ?
Merci.
Bonjour,
Cela fait référence Í des macros xl4. À cette adresse, tu as des
explications, sur la manière de procéder. Ces commandes sont en français
si ta version d'Excel est française. Tu vas devoir ajouter une feuille
"Macro Ms Excel 4.0". Je n'ai pas d'expérience dans ces commandes.
http://www.gaboly.com/MPFE/LireClasseur1.html
Ici, tu as un vidéo sur YouTube qui décrit comment procéder :
https://www.youtube.com/watch?v=PgYyECq7trs
Ces fonctions de macro Xl 4 ne peuvent pas être utilisé directement dans
la feuille de calcul. Tu crées un "NOM" avec ces dernières.
Maintenant, tu en sais autant que moi sur ce sujet!
Bonjour MichD, Toujours en formule, j'ai lu qu'il y a une fonction qui retourne tous les noms des feuilles du classeur, Í savoir GET.WORKBOOK. Peut-on l'utiliser dans notre cas ? Merci.
Bonjour, Cela fait référence Í des macros xl4. À cette adresse, tu as des explications, sur la manière de procéder. Ces commandes sont en français si ta version d'Excel est française. Tu vas devoir ajouter une feuille "Macro Ms Excel 4.0". Je n'ai pas d'expérience dans ces commandes. http://www.gaboly.com/MPFE/LireClasseur1.html Ici, tu as un vidéo sur YouTube qui décrit comment procéder : https://www.youtube.com/watch?v=PgYyECq7trs Ces fonctions de macro Xl 4 ne peuvent pas être utilisé directement dans la feuille de calcul. Tu crées un "NOM" avec ces dernières. Maintenant, tu en sais autant que moi sur ce sujet! MichD
MichD
Le 17/12/21 Í 16:22, Apitos a écrit :
Bonjour, J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation. Merci.
J'ai joint un fichier .doc qui te montre le langage des macros d'avant le vba que l'on connait depuis 1997. C'est seulement un aperçu. C'est un autre langage totalement différent. À toi maintenant de t'amuser, tu as un examen sur ce sujet la semaine prochaine! ;-)) https://www.cjoint.com/c/KLtxtIyW0FJ Voici une méthode qui fonctionne. Tu crées un "NAME" Í l'aide du menu "Formule / définir un nom" Le nom du "NAME" : NomOnglets utilise la formule pour ce "NAME" =TRANSPOSE(DROITE(LIRE.CLASSEUR(1);NBCAR(LIRE.CLASSEUR(1))-TROUVE("]"; LIRE.CLASSEUR(1)))) Dans la colonne A1:A4 en supposant que tu as 4 feuilles dans ton classeur, tu inscris les chiffres de 1 Í 4 Dans la colonne B1 tu inscris cette formule : =INDEX(NomsOnglets;A1) que tu recopies jusqu'Í B4 Cela devrait te donner les noms des 4 feuilles du classeur. Une autre manière d'arriver au même résultat sans utiliser la colonne A1:A4 . Évidemment, le "NAME" NomOnglets doit être déjÍ défini comme dans le premier cas. A ) Sélectionne les 4 cellules de la plage C1:C4 B ) Enfonce la touche F2, la cellule C1 va passer en mode édition C ) Tu saisis la formule suivante toujours en C1 =NomsOnglets D ) Tu dois valider cette formule en utilisant la combinaison des touches Ctrl + Maj + Enter . Le nom des feuilles devrait apparaÍ®tre. Pour modifier la formule matricielle, tu dois toujours la plage C1:C4 et passer en mode édition. Lorsque tu valides la formule, cela affecte toutes les formules des cellules. Impossible de modifier seulement une cellule de la plage C1:C4 Amuse-toi bien. MichD
Le 17/12/21 Í 16:22, Apitos a écrit :
Bonjour,
J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation.
Merci.
J'ai joint un fichier .doc qui te montre le langage des macros d'avant
le vba que l'on connait depuis 1997. C'est seulement un aperçu.
C'est un autre langage totalement différent. À toi maintenant de
t'amuser, tu as un examen sur ce sujet la semaine prochaine! ;-))
https://www.cjoint.com/c/KLtxtIyW0FJ
Voici une méthode qui fonctionne.
Tu crées un "NAME" Í l'aide du menu "Formule / définir un nom"
Le nom du "NAME" : NomOnglets
utilise la formule pour ce "NAME"
=TRANSPOSE(DROITE(LIRE.CLASSEUR(1);NBCAR(LIRE.CLASSEUR(1))-TROUVE("]";
LIRE.CLASSEUR(1))))
Dans la colonne A1:A4 en supposant que tu as 4 feuilles dans ton
classeur, tu inscris les chiffres de 1 Í 4
Dans la colonne B1 tu inscris cette formule :
=INDEX(NomsOnglets;A1) que tu recopies jusqu'Í B4
Cela devrait te donner les noms des 4 feuilles du classeur.
Une autre manière d'arriver au même résultat sans utiliser la colonne
A1:A4 . Évidemment, le "NAME" NomOnglets doit être déjÍ défini comme
dans le premier cas.
A ) Sélectionne les 4 cellules de la plage C1:C4
B ) Enfonce la touche F2, la cellule C1 va passer en mode édition
C ) Tu saisis la formule suivante toujours en C1 =NomsOnglets
D ) Tu dois valider cette formule en utilisant la combinaison des
touches Ctrl + Maj + Enter . Le nom des feuilles devrait apparaͮtre.
Pour modifier la formule matricielle, tu dois toujours la plage C1:C4 et
passer en mode édition. Lorsque tu valides la formule, cela affecte
toutes les formules des cellules. Impossible de modifier seulement une
cellule de la plage C1:C4
Bonjour, J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation. Merci.
J'ai joint un fichier .doc qui te montre le langage des macros d'avant le vba que l'on connait depuis 1997. C'est seulement un aperçu. C'est un autre langage totalement différent. À toi maintenant de t'amuser, tu as un examen sur ce sujet la semaine prochaine! ;-)) https://www.cjoint.com/c/KLtxtIyW0FJ Voici une méthode qui fonctionne. Tu crées un "NAME" Í l'aide du menu "Formule / définir un nom" Le nom du "NAME" : NomOnglets utilise la formule pour ce "NAME" =TRANSPOSE(DROITE(LIRE.CLASSEUR(1);NBCAR(LIRE.CLASSEUR(1))-TROUVE("]"; LIRE.CLASSEUR(1)))) Dans la colonne A1:A4 en supposant que tu as 4 feuilles dans ton classeur, tu inscris les chiffres de 1 Í 4 Dans la colonne B1 tu inscris cette formule : =INDEX(NomsOnglets;A1) que tu recopies jusqu'Í B4 Cela devrait te donner les noms des 4 feuilles du classeur. Une autre manière d'arriver au même résultat sans utiliser la colonne A1:A4 . Évidemment, le "NAME" NomOnglets doit être déjÍ défini comme dans le premier cas. A ) Sélectionne les 4 cellules de la plage C1:C4 B ) Enfonce la touche F2, la cellule C1 va passer en mode édition C ) Tu saisis la formule suivante toujours en C1 =NomsOnglets D ) Tu dois valider cette formule en utilisant la combinaison des touches Ctrl + Maj + Enter . Le nom des feuilles devrait apparaÍ®tre. Pour modifier la formule matricielle, tu dois toujours la plage C1:C4 et passer en mode édition. Lorsque tu valides la formule, cela affecte toutes les formules des cellules. Impossible de modifier seulement une cellule de la plage C1:C4 Amuse-toi bien. MichD
MichD
Le 20/12/21 Í 10:26, MichD a écrit :
Le 17/12/21 Í 16:22, Apitos a écrit :
Bonjour, J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation. Merci.
Bonjour, Si tu veux obtenir le nombre de feuilles dans le classeur : A ) Tu crées un "NAME" : FEUILLES B ) Tu lui associes la formule suivante : =POSER.NOM("lesfeuilles";LIRE.CLASSEUR(1)) Et dans la cellule de ton choix, tu inscris la formule : þUILLESS() Cependant, si tu ajoutes des feuilles après avoir créé cette formule, tu devras demander un nouveau calcul de la feuille pour mettre Í jour la formule. MichD
Une correction orthographique, ce n'est pas þUILLESS() mais bien : þUILLES() MichD
Le 20/12/21 Í 10:26, MichD a écrit :
Le 17/12/21 Í 16:22, Apitos a écrit :
Bonjour,
J'aimerais créer une liste de validation de données, qui répertorie
tous les noms de feuilles dans le classeur, par formule, Í l'exception
du nom de la feuille o͹ se trouve la liste de validation.
Merci.
Bonjour,
Si tu veux obtenir le nombre de feuilles dans le classeur :
A ) Tu crées un "NAME" : FEUILLES
B ) Tu lui associes la formule suivante :
=POSER.NOM("lesfeuilles";LIRE.CLASSEUR(1))
Et dans la cellule de ton choix, tu inscris la formule :
þUILLESS()
Cependant, si tu ajoutes des feuilles après avoir créé cette formule, tu
devras demander un nouveau calcul de la feuille pour mettre Í jour la
formule.
MichD
Une correction orthographique, ce n'est pas
þUILLESS()
Bonjour, J'aimerais créer une liste de validation de données, qui répertorie tous les noms de feuilles dans le classeur, par formule, Í l'exception du nom de la feuille o͹ se trouve la liste de validation. Merci.
Bonjour, Si tu veux obtenir le nombre de feuilles dans le classeur : A ) Tu crées un "NAME" : FEUILLES B ) Tu lui associes la formule suivante : =POSER.NOM("lesfeuilles";LIRE.CLASSEUR(1)) Et dans la cellule de ton choix, tu inscris la formule : þUILLESS() Cependant, si tu ajoutes des feuilles après avoir créé cette formule, tu devras demander un nouveau calcul de la feuille pour mettre Í jour la formule. MichD
Une correction orthographique, ce n'est pas þUILLESS() mais bien : þUILLES() MichD
Apitos
Bonjour MichD, Ci-joint un petit fichier, résumant les méthodes suggérées : https://www.cjoint.com/c/KLywN01XCYk :)
Bonjour MichD,
Ci-joint un petit fichier, résumant les méthodes suggérées :
Bonjour MichD, Ci-joint un petit fichier, résumant les méthodes suggérées : https://www.cjoint.com/c/KLywN01XCYk :)
MichD
Le 26/12/21 Í 16:01, Apitos a écrit :
Bonjour, Peut-on utiliser la plage nommée "NomsOnglets" pour définir une liste de validation sans passer par une colonne intermédiaire?
Je ne crois pas. NomOnglets n'est pas une liste, mais une fonction qui retourne une matrice des noms des feuilles. Suppose que la liste des feuilles débute en A1, tu définis la plage nommée de cette manière : Nom = MaListe Fait référence Í ÞCALER($A$1;;;NBVAL(A:A);) Et ta liste de validation : Liste formule :=MaLIste VoilÍ ! MichD
Le 26/12/21 Í 16:01, Apitos a écrit :
Bonjour,
Peut-on utiliser la plage nommée "NomsOnglets" pour définir une liste de validation sans passer par une colonne intermédiaire?
Je ne crois pas. NomOnglets n'est pas une liste, mais une fonction qui
retourne une matrice des noms des feuilles.
Suppose que la liste des feuilles débute en A1,
tu définis la plage nommée de cette manière :
Nom = MaListe
Fait référence Í ÞCALER($A$1;;;NBVAL(A:A);)
Et ta liste de validation : Liste formule :=MaLIste
Bonjour, Peut-on utiliser la plage nommée "NomsOnglets" pour définir une liste de validation sans passer par une colonne intermédiaire?
Je ne crois pas. NomOnglets n'est pas une liste, mais une fonction qui retourne une matrice des noms des feuilles. Suppose que la liste des feuilles débute en A1, tu définis la plage nommée de cette manière : Nom = MaListe Fait référence Í ÞCALER($A$1;;;NBVAL(A:A);) Et ta liste de validation : Liste formule :=MaLIste VoilÍ ! MichD