Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1074 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  [help] Aide sous Excel: données de feuils vers cellules

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[help] Aide sous Excel: données de feuils vers cellules

n°2589164
docdino
Posté le 07-12-2006 à 09:42:53  profilanswer
 

Voila je voudrais donc quelques méthodes pour un petit travail sous excel
 
Le fichier comprend des formules simples: sommes, comparaisons de totaux sous graphique.
 
Là ou je suis coincé:
Plusieurs feuilles ( beacoup de feuilles ).Un exemple: un nom sur chaque feuille, si je veux que ces nom (toujours dans la meme case de chaque feuille) apparaisent en ligne ou en colone sur une feuille de récapitulation, de même pour des case chiffrés, comment fait t'on.
 
Merci.


Message édité par docdino le 07-12-2006 à 11:20:22
mood
Publicité
Posté le 07-12-2006 à 09:42:53  profilanswer
 

n°2589166
BettaSplen​dens
Tout cul tendu mérite son dû
Posté le 07-12-2006 à 09:51:12  profilanswer
 

Tu peux utiliser la fonction VBA Worksheet(x).name je pense.. en faisant varier x

n°2589176
docdino
Posté le 07-12-2006 à 10:13:36  profilanswer
 

Peut tu donner un exemple de formule complet?

n°2589219
docdino
Posté le 07-12-2006 à 10:52:54  profilanswer
 
n°2589270
docdino
Posté le 07-12-2006 à 12:00:38  profilanswer
 

?

n°2589293
Papy Octet
Posté le 07-12-2006 à 12:20:45  profilanswer
 


 
 :hello:  docdino.
 
Pour ton problème, il y a plusieurs solutions dont celles-ci :
1. Tu vas lier chaque cellule qui doit contenir les valeurs de la cellule de chaque page avec cette cellule ! Dur dur, comme tu dois bien t'en rendre compte  :pt1cable:  
 
2. Plus pratique : un peu de code VBA.
- Tu vas dans l'éditeur VBA Alt+F11 ou bien Menu "Outils/Macro/Visual Basic Editor".
- Une fois dans l'éditeur, tu trouves sur la gauche une fenêtre avec l'arborescence de ton classeur.
- Tu double-cliques sur le nom de la feuille où tu veux créer ta liste.
- Tu vois apparaitre dans la grande fenêtre de droite une page blanche. C'est la zone d'édition de VBA POUR CETTE FEUILLE-LA.
- Tu y recopies ce code :
 
Sub ListerCellA1()
Dim J
 
For J = 1 To ThisWorkbook.Sheets.Count
 ThisWorkbook.Sheets(1).Cells(J, 2) = ThisWorkbook.Sheets(J).Cells(1, 1)
Next J
 
End Sub

 
Ce code va lire chacune de tes feuilles (avec comme limite 65535 feuilles seulement  :pt1cable: ) puis il va récupérer le contenu de la cellule "A1" :
 ThisWorkbook.Sheets(J).Cells(1, 1)  
et il va aller l'écrire dans la cellule ... (suis moi bien !) dont le numéro de ligne correspond au numéro d'index de la feuille lue :
ThisWorkbook.Sheets(1).Cells(J, 2).
 
Bien entendu, tu peux adapter facilement ce code à tes besoins :
 ThisWorkbook.Sheets(J).Cells(1, 1) ==> Cells(1,1) =  cellule A1 donc tu lis la cellule A1, si tu veux lire la cellule C1, tu remplaces Cells(1,1) par Cells(3,1) car les paramètres de cette instruction sont : Cells(Numéro de Ligne, Numéro de Colonne).
 
ThisWorkbook.Sheets(1).Cells(J, 2) ==> Tu places la valeur lue dans la cellule qui se trouve à la ligne "J" et à la colonne 1.
Donc pour la première feuille, tu lis la cellule A1 et tu écris la valeur dans la Cellule A1 de la première feuille; pour la valeur lue dans la seconde feuille, tu écris la valeur dans la cellule J (qui vaut 2 maintenant), dans la colonne 1; etc. jusqu'à ce que toutes tes feuilles soient lues.
 
Si dans une de tes feuilles, la cellule A1 est vide, tu auras une cellule vide dans ta liste.
 
Maintenant, si tu veux créer une liste sur une ligne et non plus sur une colonne, il te suffit d'inverser J et 1 dans la partie :
ThisWorkbook.Sheets(1).Cells(J, 2) qui devient :
ThisWorkbook.Sheets(1).Cells(2, J).
 
C'est simple, non ? :pt1cable:  
 
Pour lancer cette procédure, tu vas dans la feuille Excel puis tu sélectionnes "Outils/Macros" et dans la liste des macros qui s'affiche, tu lances celle-ci :Macro:ListerCellA1().
 
J'espère t'avoir aidé  :jap:  
 
A+ :hello:


Message édité par Papy Octet le 07-12-2006 à 14:15:57
n°2589295
seniorpapo​u
Posté le 07-12-2006 à 12:24:22  profilanswer
 

Bonjour,
j'ai lu ton post et je ne comprends pas:  un nom sur chaque feuille?
 
c'est : chaque feuille porte un nom que l'on voit dans son onglet en bas? et tu veux récupèrer ce nom ?
          chaque feuille à, dans une cellule bien définie ( si oui, laquelle?),une valeur (numérique ou string) et tu veux récupèrer cette valeur?
Cordialement
 
Après validation je viens de lire la réponse de papy octet qui doit correspondre à ta demande

Message cité 1 fois
Message édité par seniorpapou le 07-12-2006 à 12:26:42
n°2589378
BettaSplen​dens
Tout cul tendu mérite son dû
Posté le 07-12-2006 à 13:54:19  profilanswer
 

oué, désolé, je bossais... bon la réponse donnée est ce que j'aurais dit... enfin, en mieux :)

n°2589395
Papy Octet
Posté le 07-12-2006 à 14:13:02  profilanswer
 

seniorpapou a écrit :

Bonjour,
j'ai lu ton post et je ne comprends pas:  un nom sur chaque feuille?
 
c'est : chaque feuille porte un nom que l'on voit dans son onglet en bas? et tu veux récupèrer ce nom ?
          chaque feuille à, dans une cellule bien définie ( si oui, laquelle?),une valeur (numérique ou string) et tu veux récupèrer cette valeur?
Cordialement
 
Après validation je viens de lire la réponse de papy octet qui doit correspondre à ta demande


 
Première question : Chaque feuille de ton classeur est nommée (onglet du bas dans le classeur Excel). Quand tu vas dans l'éditeur VBA, tu retrouves la liste des feuilles (leurs noms) dans la fenêtre de gauche de l'éditeur VBA.
Mais tu n'as pas besoin de récupérer ces noms puisque mon petit programme travaille avec le numéro d'index de chaque feuille.
J'explique : pour Excel, chaque feuille d'un classeur possède un numéro d'ordre, l'index qui est unique pour chaque feuille qui commence au 1 et s'incrémente de 1 à chaque nouvelle feuille : la 2° feuille a l'index 2, la 3° l'index 3, etc.
Si j'ai utilisé l'index, c'est piour ne pas devoir effectuer un comptage des feuilles pour déterminer la ligne sur laquelle on va inscrire la valeur lue dans la cellule.
 
Qustion 2 : la récupération du contenu de la cellule de chaque feuille se fait automatiquement dans la boucle For, sans tenir compte du contenu de celle-ci.
J'ai sous-entendu que le format de la cellule est "Standard", ce qui lui permet de recevoir aussi bien du texte que des nombres. Si ce n'est pas le cas, il faut soit modifier le format des cellules de la colonne qui recevra la liste des valeurs, soit introduire dans le code le formatage de la cellule avant d'y inscrire quoique ce soit.
La définition du numéro de cellule d'où on extrait les données doit être définie par l'utilisateur et, dans le cas présent, ce devra être LA MEME CELLULE DANS CHACUNE DES FEUILLES du classeur !

n°2589397
docdino
Posté le 07-12-2006 à 14:15:21  profilanswer
 

merci pour votre soutient, j' essai maintenant

mood
Publicité
Posté le 07-12-2006 à 14:15:21  profilanswer
 

n°2589403
BettaSplen​dens
Tout cul tendu mérite son dû
Posté le 07-12-2006 à 14:20:27  profilanswer
 

j'avoue quand même que je ne vois pas trop trop l'intérêt de lister le nom des feuilles excel dans chacune des feuilles excel... ? tu peux nous expliquer ? (peut être que ce que tu veux faire peut être fait autrement de manière moins tordue et aussi pratique)

n°2589410
Papy Octet
Posté le 07-12-2006 à 14:25:24  profilanswer
 

BettaSplendens a écrit :

j'avoue quand même que je ne vois pas trop trop l'intérêt de lister le nom des feuilles excel dans chacune des feuilles excel... ? tu peux nous expliquer ? (peut être que ce que tu veux faire peut être fait autrement de manière moins tordue et aussi pratique)


 
Je crois que tu n'as pas bien compris : il veut récupérer la valeur contenue dans une cellule qui se trouve au même emplacement dans chacune des feuilles de son classeur, par exemple, il se trouve le nom d'un animal dans chaque cellule A1 de chaque feuille du classeur et notre ami veut en dresser la liste dans une feuille du classeur.
 
C'est ce que mon programme fait : il va lire la cellule A1 de chaque feuille et inscrit la valeur qu'il y a trouvée dans une cellule de la première feuille du classeur pour en faire une liste.
 
Je ne crois pas que c'est la liste des noms des feuilles qu'il veut récupérer.
 
A+

n°2589416
BettaSplen​dens
Tout cul tendu mérite son dû
Posté le 07-12-2006 à 14:29:17  profilanswer
 

ah... ok...
 
pour moi, il faudrait qu'il raisonne à l'inverse alors... avec une feuille "source" où il trouvera la liste des valeurs qu'il utilise (des noms d'élève par exemple)...  
et dans chacune de ses feuilles, il fait alors référence à un indice de cette liste...
 
enfin, ça me parait être le plus propre, et au final le plus proche d'une BDD

n°2589426
Papy Octet
Posté le 07-12-2006 à 14:34:52  profilanswer
 

Là, je suis d'accord avec toi, mais rien ne dit ce qu'il veut faire avec sa liste de valeur ! Il a peut-être simplement besoin d'avoir la liste pour l'imprimer tout simplement.

n°2589446
BettaSplen​dens
Tout cul tendu mérite son dû
Posté le 07-12-2006 à 14:58:06  profilanswer
 

c bien ça le pb... il nous en dit pas bcp... ;)

n°2589449
seniorpapo​u
Posté le 07-12-2006 à 15:00:55  profilanswer
 

Bonsoir Papy Octet,
 
mon post de 12h24 posait des questions à Docdino et non pas à toi. lol
 
Néanmoins tes explications sont très claires j'aimerais pouvoir en faire autant.
Cordialement

n°2589552
docdino
Posté le 07-12-2006 à 17:06:34  profilanswer
 

Sur un fichier test ça marche, sur le vrai fichier ça ne fonctionne pas. Je vais essayer à nouveau.

n°2589562
BettaSplen​dens
Tout cul tendu mérite son dû
Posté le 07-12-2006 à 17:12:32  profilanswer
 

vérifie via VBA les indices de tes feuilles... je suis pas sûr qu'il les renumérote
(en gros, si tu as supprimé la feuille 2, il te reste la feuille 1 et la feuille 3 (indice 1 et 3)... enfin, à vérifier !)

n°2589571
docdino
Posté le 07-12-2006 à 17:24:26  profilanswer
 

La feuille de récapitulation doit etre premier dans l' indexe pour que ça fonctionne, je doit pouvoir me débrouiller maintenant, encore MERCI.
Est-il possible (sans trop de complication) d' exclure une des feuilles qui sert pour des tableaux intermédiaires.

n°2589589
docdino
Posté le 07-12-2006 à 17:51:12  profilanswer
 

Encore une chose, j' ai besoin que ce récapitulatif se mette à jour, il y a t il une meilleure solution qu' un lien hypertexte vers les macros?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  [help] Aide sous Excel: données de feuils vers cellules

 

Sujets relatifs
Erreur d'affichage, aide souhaitée.[Excel] Ce que je veux faire, est-il possible ?
Excel - Recupérer valeurs cellules dans différents fichiersproblème excel 2003
Windows lent au démarrage ! Besoin de conseils[Excel] Faire un Graphique à 3 dimensions
Plus de sujets relatifs à : [help] Aide sous Excel: données de feuils vers cellules


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR