OVH Cloud OVH Cloud

reprendre une partie de titre de feuille dans une cellule

12 réponses
Avatar
Angéla
bonjour,
est il possible de reprendre une partie de l'intitulé d'une feuille dans une
cellule. Par exemple, pour une feuille nommé "janvier folio N°1" je voudrais
que dans la cellule G1 il apparaisse "folio N°1".
Merci d'avance
Angéla

10 réponses

1 2
Avatar
Gaenonius
Une fonction perso VBA peut permettre ça. Par exemple (Excel 2000/2002/2003) :

Function NomPerso()
Dim S
Application.Volatile
S = Application.Caller.Parent.Name
NomPerso = Split(S)(1) & " " & Split(S)(2)
End Function

Et, dans une cellule de la feuille dont tu veux récupérer une partie du nom :

=NomPerso()

--
Gaenonius

bonjour,
est il possible de reprendre une partie de l'intitulé d'une feuille dans une
cellule. Par exemple, pour une feuille nommé "janvier folio N°1" je voudrais
que dans la cellule G1 il apparaisse "folio N°1".
Merci d'avance
Angéla




Avatar
Angéla
Merci de ta réponse mais ça ne marche pas.
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/
J'attribue le nom de la fonction, je coche "fonction", et pour la porté je
mets private.

Dans Excel, je saisis la ligne "NomPerso()" et la j'ai le message suivant
"#NOM"

Est ce que 'est ma manière de faire qui ne va pas???
"Gaenonius" a écrit dans le message news:

Une fonction perso VBA peut permettre ça. Par exemple (Excel
2000/2002/2003) :


Function NomPerso()
Dim S
Application.Volatile
S = Application.Caller.Parent.Name
NomPerso = Split(S)(1) & " " & Split(S)(2)
End Function

Et, dans une cellule de la feuille dont tu veux récupérer une partie du
nom :


=NomPerso()

--
Gaenonius

bonjour,
est il possible de reprendre une partie de l'intitulé d'une feuille dans
une


cellule. Par exemple, pour une feuille nommé "janvier folio N°1" je
voudrais


que dans la cellule G1 il apparaisse "folio N°1".
Merci d'avance
Angéla






Avatar
Pierre CFI [mvp]
bonjour
dans la cellule mets = devant ta function

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Angéla" a écrit dans le message de news:
Merci de ta réponse mais ça ne marche pas.
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/
J'attribue le nom de la fonction, je coche "fonction", et pour la porté je
mets private.

Dans Excel, je saisis la ligne "NomPerso()" et la j'ai le message suivant
"#NOM"

Est ce que 'est ma manière de faire qui ne va pas???
"Gaenonius" a écrit dans le message news:

Une fonction perso VBA peut permettre ça. Par exemple (Excel
2000/2002/2003) :


Function NomPerso()
Dim S
Application.Volatile
S = Application.Caller.Parent.Name
NomPerso = Split(S)(1) & " " & Split(S)(2)
End Function

Et, dans une cellule de la feuille dont tu veux récupérer une partie du
nom :


=NomPerso()

--
Gaenonius

bonjour,
est il possible de reprendre une partie de l'intitulé d'une feuille dans
une


cellule. Par exemple, pour une feuille nommé "janvier folio N°1" je
voudrais


que dans la cellule G1 il apparaisse "folio N°1".
Merci d'avance
Angéla










Avatar
Angéla
Bonjour Pierre
c'est vrai que dans ma réponse je ne l'ai pas mis mais dans la cellule je le
mets "= NomPerso()" et ça ne marche pas.
"Pierre CFI [mvp]" a écrit dans le message news:

bonjour
dans la cellule mets = devant ta function

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Angéla" a écrit dans le message de
news:

Merci de ta réponse mais ça ne marche pas.
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/
J'attribue le nom de la fonction, je coche "fonction", et pour la porté
je


mets private.

Dans Excel, je saisis la ligne "NomPerso()" et la j'ai le message
suivant


"#NOM"

Est ce que 'est ma manière de faire qui ne va pas???
"Gaenonius" a écrit dans le message news:

Une fonction perso VBA peut permettre ça. Par exemple (Excel
2000/2002/2003) :


Function NomPerso()
Dim S
Application.Volatile
S = Application.Caller.Parent.Name
NomPerso = Split(S)(1) & " " & Split(S)(2)
End Function

Et, dans une cellule de la feuille dont tu veux récupérer une partie
du



nom :

=NomPerso()

--
Gaenonius

bonjour,
est il possible de reprendre une partie de l'intitulé d'une feuille
dans




une
cellule. Par exemple, pour une feuille nommé "janvier folio N°1" je
voudrais


que dans la cellule G1 il apparaisse "folio N°1".
Merci d'avance
Angéla














Avatar
Gaenonius
La portée doit être publique (c'est la valeur par défaut).

Par ailleurs, tu peux te passer de cette méthode de déclaration (même si elle
est tout à fait correcte). Il suffit, dans un module ordinaire, que tu fasses un
copier/coller du code, depuis Function jusqu'à End Function. C'est plus rapide
et Excel s'y retrouvera très bien :)

Enfin, comme signalé par Pierre CFI, n'oublie pas le signe = avant le nom de la
fonction dans la feuille de calcul.

--
Gaenonius

Merci de ta réponse mais ça ne marche pas.
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/
J'attribue le nom de la fonction, je coche "fonction", et pour la porté je
mets private.

Dans Excel, je saisis la ligne "NomPerso()" et la j'ai le message suivant
"#NOM"

Est ce que 'est ma manière de faire qui ne va pas???
"Gaenonius" a écrit dans le message news:


Une fonction perso VBA peut permettre ça. Par exemple (Excel


2000/2002/2003) :

Function NomPerso()
Dim S
Application.Volatile
S = Application.Caller.Parent.Name
NomPerso = Split(S)(1) & " " & Split(S)(2)
End Function

Et, dans une cellule de la feuille dont tu veux récupérer une partie du


nom :

=NomPerso()

--
Gaenonius


bonjour,
est il possible de reprendre une partie de l'intitulé d'une feuille dans



une

cellule. Par exemple, pour une feuille nommé "janvier folio N°1" je



voudrais

que dans la cellule G1 il apparaisse "folio N°1".
Merci d'avance
Angéla











Avatar
Starwing
Mais Non! Mais Non!
Elle n'est pas folle...
Elle sait bien qu'il faut mettre le signe "=" avant de taper sa formule
perso... ;-)

Le problème est là:
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/ ???????
J'attribue le nom de la fonction, je coche "fonction", et pour la porté
je

mets private.


En faisant Insertion/Procédure, tu places ton code dans la feuille...
Tout débutant doit savoir que pour faire fonctionner une FUNCTION, on dois
la placer dans un module...sinon ça ne fonctionne pas!

Starwing

Avatar
Angéla
Tout débutant doit savoir que pour faire fonctionner une FUNCTION, on dois
la placer dans un module...sinon ça ne fonctionne pas!


Ca semble tellement évident...
Et en plus ça marche
Merci à tous.
Angéla
"Starwing" a écrit dans le message news:
OR#
Mais Non! Mais Non!
Elle n'est pas folle...
Elle sait bien qu'il faut mettre le signe "=" avant de taper sa formule
perso... ;-)

Le problème est là:
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/ ???????
J'attribue le nom de la fonction, je coche "fonction", et pour la porté
je

mets private.


En faisant Insertion/Procédure, tu places ton code dans la feuille...
Tout débutant doit savoir que pour faire fonctionner une FUNCTION, on dois
la placer dans un module...sinon ça ne fonctionne pas!

Starwing





Avatar
Angéla
Par contre, je ne voudrai pas abuser mais pourriez vous m'expliquer le code
que je viens de copier??? J'aimerai le comprendre et j'avoue que...:)))
Merci encore
"Starwing" a écrit dans le message news:
OR#
Mais Non! Mais Non!
Elle n'est pas folle...
Elle sait bien qu'il faut mettre le signe "=" avant de taper sa formule
perso... ;-)

Le problème est là:
Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/ ???????
J'attribue le nom de la fonction, je coche "fonction", et pour la porté
je

mets private.


En faisant Insertion/Procédure, tu places ton code dans la feuille...
Tout débutant doit savoir que pour faire fonctionner une FUNCTION, on dois
la placer dans un module...sinon ça ne fonctionne pas!

Starwing





Avatar
Gaenonius
Caller représente la cellule qui "appelle" la fonction (celle où tu as écrit
=NomPerso()).
Application.Caller.Parent.Name récupère le nom de l'objet parent de cette
cellule. L'objet parent d'une cellule étant la feuille de calcul), on obtient
donc, par exemple, "janvier folio N°1".
Ce nom est ensuite découpé par la fonction Split avec son délimiteur par défaut
(l'espace). Cette fonction est un tableau, qui contient donc ici 3 éléments
(janvier, folio, N°1), dont on n'a besoin que des deux derniers (indices 1 et 2,
le premier élément d'un tableau étant par défaut d'indice 0), qui sont
concaténés pour fournir le résultat demandé :
NomPerso = Split(S)(1) & " " & Split(S)(2)

--
Gaenonius

Par contre, je ne voudrai pas abuser mais pourriez vous m'expliquer le code
que je viens de copier??? J'aimerai le comprendre et j'avoue que...:)))
Merci encore
"Starwing" a écrit dans le message news:
OR#

Mais Non! Mais Non!
Elle n'est pas folle...
Elle sait bien qu'il faut mettre le signe "=" avant de taper sa formule
perso... ;-)

Le problème est là:

Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/ ???????
J'attribue le nom de la fonction, je coche "fonction", et pour la porté


je

mets private.


En faisant Insertion/Procédure, tu places ton code dans la feuille...
Tout débutant doit savoir que pour faire fonctionner une FUNCTION, on dois
la placer dans un module...sinon ça ne fonctionne pas!

Starwing










Avatar
Gaenonius
J'ai oublié une dernière chose : Application.Volatile permet la mise à jour du
résultat de la fonction si le nom de la feuille est changé (en double cliquant
sur son onglet par exemple).

--
Gaenonius

Par contre, je ne voudrai pas abuser mais pourriez vous m'expliquer le code
que je viens de copier??? J'aimerai le comprendre et j'avoue que...:)))
Merci encore
"Starwing" a écrit dans le message news:
OR#

Mais Non! Mais Non!
Elle n'est pas folle...
Elle sait bien qu'il faut mettre le signe "=" avant de taper sa formule
perso... ;-)

Le problème est là:

Je suis sous Excel 2000.
Dans VB, Je vais dans Insertion/Procédure/ ???????
J'attribue le nom de la fonction, je coche "fonction", et pour la porté


je

mets private.


En faisant Insertion/Procédure, tu places ton code dans la feuille...
Tout débutant doit savoir que pour faire fonctionner une FUNCTION, on dois
la placer dans un module...sinon ça ne fonctionne pas!

Starwing










1 2