Bonjour,
Est-il possible d'utiliser dans une formule standard le numéro d'une feuille plutôt que son nom
Je voudrai écrire quelque chose comme :
sheets(2)!C4
au lieu de
feuil2!C4
Ce n'est bien sûr pas du VBa.
Bonjour,
Est-il possible d'utiliser dans une formule standard le numéro d'une feuille plutôt que son nom
Je voudrai écrire quelque chose comme :
sheets(2)!C4
au lieu de
feuil2!C4
Ce n'est bien sûr pas du VBa.
Bonjour,
Peux - tu nous dire quel est ton objectif ?
Je vois pas l'intérêt sans tes précisions.
Tes feuilles Excel comment elles sont nommées ?
Hum, un peu compliqué à expliquer...
J'ai une dizaines de feuilles de définition (tableaux avec diverses informations).
Par contre, dans certaines feuilles, un tableau n'existe pas.
Je lance ensuite une macro qui donne aux feuilles leur numéro d'ordre quand elles ont ce tableau:
feuil1 avec tableau - 1
feuil2 avec tableau - 2
feuil3 sans tableau - 2
feuil4 avec tableau - 3
...
Je me sers ensuite d'une autre feuille avec des formules pour construire du code au format XML. C'est pour ces formules que je voudrai utiliser le numéro d'ordre trouvé précédemment (ou bien le nom de la feuille, écrit dans une cellule bien spécifique).
En fait, c'est une sorte d'indirection qu'il me faut:
indiquer dans une cellule le numéro (ou le nom) de feuille qui doit être utilisé par la formule.
Dans mon ex, les formules de la feuil3 doivent pointer sur feuil2.
Suis-je assez clair?
Mes noms de feuilles sont bien sûr spécifiques (feuilX était pour l'exemple) et ne peuvent pas spécialement servir...
Bonjour,
il est possible d'appeler la feuille par son numéro ou indice, mais je ne connais pas de fonction de feuille de calcul qui le permette.
Il faut d'abord créer une fonction VB
ensuite dans la feuille on appelle la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Function NomDeFeuille(Indice As Integer) As String On Error GoTo erreur If Indice < 1 Then GoTo erreur If Indice > ActiveWorkbook.Sheets.Count Then GoTo erreur NomDeFeuille = ActiveWorkbook.Sheets(Indice).Name GoTo EndNomDeFeuille erreur: MsgBox "la feuille n'existe pas" NomDeFeuille = "" EndNomDeFeuille: End Function
=NomDeFeuille(2) & "!A4"
l'adresse de la cellule est bien
=NomDeFeuille(2) & "!A4"
mais pour lire la valeur de la cellule il faut
=INDIRECT(NomDeFeuille(2) & "!B29")
Voilà!
Bon courage
Merci titi de l'Hérault...
J'utilise effectivement des fonctions pour compléter les formules d'excel.
Pour mon pb cela ne s'appliquait malheureusement pas, car le champ de la formule sous excel est un champ variable qui me permet de générer du code XML.
J'ai quand même trouvé la solution, un peu comme je faisais déjà auparavant.
J'écris dans chaque feuille le nom de feuille voulu dans 'A1' et la macro VB vient remplacer le nom de feuille de la formule par le texte de cette cellule.
Peut-être pas très propre, mais c'est efficace...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager