excel]Utiliser un nom de feuille dans une formule...[Résolu]

excel]Utiliser un nom de feuille dans une formule...[Résolu] - Logiciels - Windows & Software

Marsh Posté le 07-05-2004 à 08:44:59    

La synthaxe pour utiliser une cellule d'une autre feuille dans une formule EXCEL est la suivante:

Code :
  1. ='Autre feuille'!D36


 
Or, je voudrais stocker le nom Autre feuille dans une cellule afin de créer:

  • une colonne A avec des noms de feuilles.
  • une colonne B avec la valeur de la cellule D36 de la feuille nommée dans A.


Mais la synthaxe

Code :
  1. =A1!D36

ne marche pas... :cry: et l'aide est muette sur ce sujet.
 
Quelqu'un a une idée SVP???     :hello:


Message édité par strawfield le 10-05-2004 à 15:24:39

---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 07-05-2004 à 08:44:59   

Reply

Marsh Posté le 07-05-2004 à 16:54:42    

[:atreyu]
 
Pas d'idées???
 
Pour l'instant, je copie ma formule par plages et je change le nom des feuilles avec la fonction "Remplacer...".  
 
Mais avec ca je ne peut pas faire une appli poue des novices d'excel...


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 07-05-2004 à 17:28:24    

La seule solution que tu auras est très certainement de passer par le VBA plutôt que les formules de calcul

Reply

Marsh Posté le 08-05-2004 à 11:22:08    

EnZ0 a écrit :

La seule solution que tu auras est très certainement de passer par le VBA plutôt que les formules de calcul


 
Merci...ca complique beaucoup pour pas grand chose.  
C'est quand même bête qu'on puisse faire ce genre d'opérations avec des cellules et pas les feuilles. :heink:  
 
Lundi j'my mets....


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 09-05-2004 à 19:50:10    

ouais, impossible via le module simple... faut passer par vba pour stocker le nom des feuilles dans des variables
 
t'es sûr que tu ne peux pas mettre tes infos dans une même feuille?

Reply

Marsh Posté le 10-05-2004 à 08:17:56    

minikisskool a écrit :

 t'es sûr que tu ne peux pas mettre tes infos dans une même feuille?


 
Ben je pourrais, mais ce serait beaucoup moins lisible:
 
J'ai des données de prod pour différentes machines...donc chaque responsables de machine saisi ses bidules sur sa feuille sans risque de mettre le bazar et il y a une feuille de synthèse imprimable pour l'afficher.
 
Je vais donc prendre l'option VBA...
 
Merci les gens   :jap:


Message édité par strawfield le 10-05-2004 à 08:19:17

---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 10-05-2004 à 09:04:02    

je crois que tu auras une solution ici:
http://www.cathyastuce.com/excel/astuces.php#onglet

Reply

Marsh Posté le 10-05-2004 à 09:40:24    

ouah, génial ce truc

Reply

Marsh Posté le 10-05-2004 à 09:51:07    

Mais ca affiche le nom de la feuille dans laquelle la cellule qui contient la formule se trouve...C'est pas ce que je voulais faire.  :cry:  
 
Mais c'est un bon début: ca fait 10min que je la tord dans tout les sens pour essayer d'en faire ce que je veut... :pt1cable:


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 10-05-2004 à 12:01:50    

excuse j'étais parti.
la formule de Cathy est : =STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;32)
tu remplaces par =STXT(CELLULE("nomfichier";'autrefeuille'!A1);TROUVE("]";CELLULE("nomfichier";A1))+1;32)
et ça doit marcher.

Reply

Marsh Posté le 10-05-2004 à 12:01:50   

Reply

Marsh Posté le 10-05-2004 à 12:03:07    

excuse j'étais parti.
la formule de Cathy est : =STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;32)
tu remplaces par =STXT(CELLULE("nomfichier";'autrefeuille'!A1);TROUVE("]";CELLULE("nomfichier";A1))+1;32)
et ça doit marcher.

Reply

Marsh Posté le 10-05-2004 à 12:27:05    

en même temps, c'est vrai qu'avec le recul, je ne vois toujous pas comment il va pouvoir s'en servir dans une formule...
 
le résultat qu'il obtient n'est qu'un élément texte et pas une référence liée aux feuilles de calcul
 
il va pouvoir afficher le nom de toutes ses feuilles de calcul là où il veut mais il sera toujours bloqué lorsqu'il essayera de créer une formule qui en reprendra le résultat... :(
 
je crois qu'une solution simple serait de créer une feuille de synthèse qui regrouperait toutes les infos voulues grâce à des collages avec liaison
 
comme ça, les utilisateurs pourraient continuer à rentrer ou modifier leurs infos dans leur fiche habituelle et ça serait mis à jour automatiquement dans la feuille de synthèse
 
évidemment, il ne faut pas qu'il y ait un trop grand nombre d'infos à synthétiser...

Reply

Marsh Posté le 10-05-2004 à 14:05:46    

Malheureusement, il y a pas mal d'infos...
 
Pour l'instant j'ai créé une colonne type qui synthétise chaque feuille que je peut copier/coller volonté. Et je change les références de chaque colonne en la sélectionnant puis en utilisant la commande remplacer pour modifier toutes les occurences du nom de feuille dans les formules.
 
Ca marche, mais si quelqu'un d'autre que moi doit un jour modifier la forme de la colonne de base ce ne sera pas très convivial...
 

Citation :

[nom]erwy[/nom] excuse j'étais parti.  
la formule de Cathy est : =STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;32)  
tu remplaces par =STXT(CELLULE("nomfichier";'autrefeuille'!A1);TROUVE("]";CELLULE("nomfichier";A1))+1;32)  
et ça doit marcher.


 
En fait ca ne change rien au problême....je dois toujours écrire "autre feuille" à la main. Merci quand même!!!
 
 
J'illustre mon désir en simplifié:
 
      |A          |B                                          |C
1    |feuille:    |nom1                                        |nom2
2    |Résultat:  |valeur de la cellule A1 de la feuille nom1 |valeur de la cellule A1 de la feuille nom2
 
 
Avec un truc comme ca, quand on rajoute une feuille, on rajoute son nom à la suite de la ligne 1 puis on tire la formule de la ligne 2 et on peut comparer les valeurs de toutes les feuilles d'un coup d'oeuil...


Message édité par strawfield le 10-05-2004 à 14:08:20

---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 10-05-2004 à 14:55:39    

=INDIRECT(+B1&"!a1" )
çà te va ? :)  

Reply

Marsh Posté le 10-05-2004 à 15:20:56    

Yesssssssssssssss!!!!!!!!!!!!!
 
La synthaxe exacte est:

Code :
  1. =INDIRECT("'" & B1 & "'" & "!a1" )


 
Merci beaucoup!!!
 
:jap:  :jap:  :jap:  :jap:  :jap:


---------------
Ils ne savaient pas que c'était impossible, alors ils l'ont fait.   Mark Twain
Reply

Marsh Posté le 22-06-2010 à 13:00:16    

Je déterre ce topic car j'ai un problème du genre.

 

En fait, ma formule est : =NB.SI('Lancon D'!B4:B8;1)
J'aimerais remplacer le nom de l'onglet pas le nom de l'onglet se trouvant dans une cellule : ici, le nom de l'onglet se trouve dans la cellule a36 de la page active

 

Merci, car je patauge un peu !!


Message édité par steff84 le 22-06-2010 à 13:00:33
Reply

Marsh Posté le 23-06-2010 à 10:07:47    

Euh tu n'as qu'a lever les yeux tout est noté dans ce topic...
 
Aller un peu d'aide.
 
Toi, tu veux remplacer 'lancon D' par ce qu'il y a en A36
Les cotes ( ' ) sont la car tu as un espace dans le nom de ton onglet. Donc pour prévoir le cas où tu aurais des espaces dans les noms de tes onglets il faut les prévoir. (Cote = Apostrophe)
 
La fonction indirect te permet de renvoyer une reference (Nom d'onglet, cellule etc.) en saisissant une chaine (du texte quoi). Donc elle est capable de transformer ta chaine en A36 par une reference a un onglet.
Indirect(A36) te renverrait la reference du nom de l'onglet saisi en A36.
 
Idem, Indirect("B4:B8" ) te renverrais la reference de la plage de cellule B4:B8. On le met entre doubles cotes ( " ) car c'est une chaine qu'on veut transformer en reference, et une chaine se met entre doubles cotes. (Doubles cotes = guillemets)
 
Pour concatener sous Excel on utilise & (on peut utiliser la fonction CONCATENER() mais perso je trouce ca tres chiant)
 
 
Donc pour renvoyer la reference de B4:B8 de notre onglet saisi en A36 ca donnerait :
=Indirect(A36 & "!B4:B8" )
 
On oublie pas les cotes au cas où il y ai un espace dans le nom de l'onglet
=Indirect("'" & A36 & "'" & "B4:B8" )
ou
=Indirect("'" & A36 & "'B4:B8" )
 
là, logiquement ton NB.SI ne devrait plus te poser de souci ;)
 
 
 


Message édité par SuppotDeSaTante le 23-06-2010 à 10:15:40

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed