OVH Cloud OVH Cloud

nom de feuille

6 réponses
Avatar
oliver
Bonjour,
comment récupérer le nom de la feuille dans une cellule
Merci


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 01/09/03

6 réponses

Avatar
MacBob
Salut oliver6


Petite recherche rapide sur Excelabo et voici la réponse (et même plus):

Nom du classeur, de la feuille du chemin... dans une cellule
Comment faire apparaître dans une cellule de la feuille le nom d'un onglet,
d'un classeur, d'un répertoire ...?
1. Chemin d'accès complet :
ÎLLULE("filename";A1)

2. Répertoire:
=GAUCHE(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))-2)

3. Nom du classeur seul:
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROU
VE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)

4. Nom de la feuille:
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)

5. Répertoire + classeur:
=SUBSTITUE(GAUCHE(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))-
1);"[";"")


6. Nom du classeur et de la feuille:
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1));300)
Laurent Longre

MacBob 8°)))


Le 22/12/03 20:37, dans 3fe747e7$0$19299$, « oliver »
a écrit :

Bonjour,
comment récupérer le nom de la feuille dans une cellule
Merci


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 01/09/03




Avatar
Frédéric Sigonneau
Bonsoir,

Une solution VBA ?

Function NomOnglet()
Application.Volatile
NomOnglet = Application.Caller.Parent.Name
End Function

Après avoir recopié ce code dans un module standard du classeur qui t'intéresse,
tu peux utiliser dans une feuille de calcul :

=NomOnglet()

La fonction renvoie le nom de la feuille qui contient la cellule où elle est
appelée. Elle est mise à jour si la feuille change de nom. Par contre, elle
n'est pas utilisable en l'état dans du code VBA.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,
comment récupérer le nom de la feuille dans une cellule
Merci

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 01/09/03


Avatar
sabatier
ce nom de feuille me fait te demander, bernard, si tu tiens de l'épicéa ou du
nordmann : en effet, comme tu n'apparaît que vers mi-décembre, c'est une
question que j'étais en droit de me poser...
jps

MacBob wrote:

Salut oliver6

Petite recherche rapide sur Excelabo et voici la réponse (et même plus):

Nom du classeur, de la feuille du chemin... dans une cellule
Comment faire apparaître dans une cellule de la feuille le nom d'un onglet,
d'un classeur, d'un répertoire ...?
1. Chemin d'accès complet :
ÎLLULE("filename";A1)

2. Répertoire:
=GAUCHE(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))-2)

3. Nom du classeur seul:
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROU
VE({"[";"]"};CELLULE("filename";A1))*{-1;1})-1)

4. Nom de la feuille:
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)

5. Répertoire + classeur:
=SUBSTITUE(GAUCHE(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))-
1);"[";"")

6. Nom du classeur et de la feuille:
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1));300)
Laurent Longre

MacBob 8°)))

Le 22/12/03 20:37, dans 3fe747e7$0$19299$, « oliver »

Bonjour,
comment récupérer le nom de la feuille dans une cellule
Merci


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 01/09/03






Avatar
MacBob
Vu mon nom et ma position géographique, je tirerais plutôt vers l'olivier
mais j'accepte la comparaison (si elle ne cache pas une félonie du style:
"Tu sens le sapin!!").

Et puisque tu m'affubles d'épines cher jps, un message d'oliver t'es
personnellement adressé à 22h58. Il cherche un fichier pour le suivi de
consommation de liquide (délicat euphémisme n'est-il pas ?).

Attention aux fêtes prochaines: consommer avec modération pour ne pas se
retrouver en IV65536...

MacBob 8°)))



Le 22/12/03 22:47, dans , « sabatier »
a écrit :

ce nom de feuille me fait te demander, bernard, si tu tiens de l'épicéa ou du
nordmann : en effet, comme tu n'apparaît que vers mi-décembre, c'est une
question que j'étais en droit de me poser...
jps


Avatar
Daniel.M
Salut Frédéric,

... Par contre, elle n'est pas utilisable en l'état dans du code VBA.


Je l'ai transformée pour pouvoir l'appeler également de VBA directement.
Elle retourne le nom de la feuille de la cellule active (quoi d'autre?).

Une petite routine test VBA suit.
Ça fonctionne aussi lorsqu'on appelle NomOnglet() d'un UserForm.

Salutations,

Daniel M.

Function NomOnglet()
Application.Volatile
If TypeOf Application.Caller Is Range Then
NomOnglet = Application.Caller.Parent.Name
Else
NomOnglet = ActiveCell.Parent.Name
End If
End Function

Sub TestNomOngletDepuisVBA()
MsgBox "L'onglet de la cellule courant est " & NomOnglet()
End Sub

Avatar
Frédéric Sigonneau
Salut Daniel,

J'avais cette approche légèrement différente en réserve (je sais que tester
l'erreur n'est pas toujours d'une grande élégance, mais ça reste une option
souvent précieuse :)

Function NomOnglet2()
Application.Volatile
On Error GoTo Fin
NomOnglet2 = Application.Caller.Parent.Name
Exit Function
Fin:
NomOnglet2 = ActiveWorkbook.ActiveSheet.Name
End Function 'fs

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Salut Frédéric,

... Par contre, elle n'est pas utilisable en l'état dans du code VBA.


Je l'ai transformée pour pouvoir l'appeler également de VBA directement.
Elle retourne le nom de la feuille de la cellule active (quoi d'autre?).

Une petite routine test VBA suit.
Ça fonctionne aussi lorsqu'on appelle NomOnglet() d'un UserForm.

Salutations,

Daniel M.

Function NomOnglet()
Application.Volatile
If TypeOf Application.Caller Is Range Then
NomOnglet = Application.Caller.Parent.Name
Else
NomOnglet = ActiveCell.Parent.Name
End If
End Function

Sub TestNomOngletDepuisVBA()
MsgBox "L'onglet de la cellule courant est " & NomOnglet()
End Sub