![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre du Club
![]() Date d'inscription: mars 2008
Messages: 97
|
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. |
|
|
|
|
|
#3 (permalink) |
|
Membre du Club
![]() Date d'inscription: mars 2008
Messages: 97
|
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... |
|
|
|
|
|
#4 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 8
|
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 Code :
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 Dernière modification par fring ; 25/09/2008 à 19h18 Motif: fusion de 2 messages + ajout des balises [code] |
|
|
|
|
|
#5 (permalink) |
|
Membre du Club
![]() Date d'inscription: mars 2008
Messages: 97
|
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... |
|
|
|
|
![]() |
![]() |
||
Utiliser le numéro de feuille plutôt que son nom
|
||
| Outils de la discussion | |
|
|