Regrouper données de plusieurs feuilles Excel

Résolu/Fermé
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 - Modifié par tibouuh le 26/04/2010 à 14:23
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 - 27 avril 2010 à 09:59
Salut,

j'ai un classeur (vous le trouverez ici) qui regroupe mes résultats.
au début, j'avais qu'une feuille, celle que j'ai appelé "Total".
mais, pour m'entraîner et m'améliorer sur Excel, je veux avoir une feuille pour chaque saison et une feuille qui regroupera toutes les saisons.
j'ai déjà créer les tableaux dans les feuilles pour chaque saison.
mais je n'arrive pas à faire la feuille Total (la future, celle que j'ai appelé "Total (modifié)").
au final, j'aimerais obtenir le tableau qu'il y a dans la feuille "Total".
j'espère que c'est clair? ça devrait l'être avec le fichier joint.

comme je connais pas trop le VBA, on va y aller par étape si ça vous dérange pas!
il faudrait déjà m'expliquer comment récupérer les noms des équipes pour avoir la liste sans doublon, et si possible dans l'ordre alphabétique.

merci d'avance pour votre aide.
Comme l'a dit le grand philosophe Mick Jagger : "Tu ne peux pas toujours avoir ce que tu veux"
Help me to help you!
A voir également:

1 réponse

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
26 avril 2010 à 16:35
Bonjour Thibouuuh

j'ai regardé votre fichier et je ne pense pas qu'il y ait besoin de VB2A seulement si vous appliquez les formules que vous avez utilisées à plusieurs feuilles, ça va être coton!!!
ce que je vous propose, c'est déjà de revoir votre tableau de total avec quelque chose de beaucoup plus , après vous verrez, ça ira beaucoup mieux.
Donc pour éclaircir les formules,
1°) on nomme les champs
pour l'exemple on peut utiliser CH_1;CH_2;CH_3 et CH_4 respectivement pour $A$3:$G$21 ; $A$27$G$45 ; $A$51:$G$69 ; $A$75:$G$93
pour nommer (je ne connais pas votre excel_)mais vu la tartine de SI dans vos formules ça doit être 2007:
sur 2007 onglet formule et Définir un nom
Avant 2007 barre d'outil /insertion /nom et Définir:
avant de sélectionner cet outil, sélectionnez le champ à nommer
dans la fenêtre qui s'affiche, vous avez le champ affiché tel qu'écrit ci dessus dans le bas du menu

en haut, rentrez le nom CH_1 (tiret bas indispensable si vous utilisez une valeur numérique dans le nom.)
une fois que vos quatre champs sont nommés,, on passe à beaucoup plus simple comme formule:
a essayer d'abord sur la feuille TOTAL on verra ensuite pour séparer les saisons:
en B99 la formule:
=SI(ESTERREUR(RECHERCHEV(A99;CH_1;6;0));0;RECHERCHEV(A99;CH_1;6;0))+SI(ESTERREUR(RECHERCHEV(A99;CH_2;6;0));0;RECHERCHEV(A99;CH_2;6;0))+SI(ESTERREUR(RECHERCHEV(A99;CH_3;6;0));0;+RECHERCHEV(A99;CH_3;6;0))+SI(ESTERREUR(RECHERCHEV(A99;CH_4;6;0));0;RECHERCHEV(A99;CH_4;6;0))
à tirer sur la hauteur de la colonne B de 99 à 123
Même chose sur colonne C, mais remplacer le 6 par 7
Pas trop simple, mais quand même plus court que la votre et surtout ça permet la suite...!

Je ne sais pas très bien ce que vous faites avec les colonnes D et E mais je pense que plutôt que la tartine de SI que vous avez placé, vous devriez vous en sortir avec une formule du genre:
=B99/SI(ESTERREUR(RECHERCHEV(A99;CH_1;1;0);0;2)+... etc avec CH_2 et CH_3 CH_4

Une fois que vous aurez mis cela au point dans la feuille total, ça devient plus simple...!

il suffit de créer vos feuilles séparées et de nommer comme précédemment les champs sur chaque feuille, vous pouvez alors supprimer les tableaux sur TOTAL car les formules se rattachent aux noms où que soient les champ sur d'autres feuilles.

je pourrais vous monter le fichier avec ces options, mais j'ai cru comprendre que le but pour vous était aussi de vous entrainer sur Excel
N'hésitez pas à revenir pour complément d'explication si besoin.
Bon courage, mais on vous fait confiance sur le sujet
Bien cordialement

Ps pour info seulement les formules pourraient être encore plus simples si vos 4 tableaux comportaient chacun tous les noms des clubs. Cela éviterait l'item SI(ESTERREUR(... dans chaque section des formules en B et C
-1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 26/04/2010 à 16:43
Re je donne suite au message précédent pour ce qui est de la récupération et classement de la liste sans doublon:
sur la colonne A de votre feuille Total modifié
copier / Coller les quatre listes de vos tableaux les unes au dessous des autres
sélectionnez cette liste et:
Onglet Données /outil de données / Supprimer les doublons
la liste ne comprendra plus qu'un exemplaire de chaque nom
ensuite pour la classer par ordre alphabétique
toujours sélectionner la liste et
Données Trier Avers Z ou Z vers A comme vous voulez.
A + bonne soirée :-)
Par ailleurs je me répète, mais d'une part VBA n'est pas utile sur ce genre de sujet et il faut pour l'optimiser, avancer un peu plus loin dans votre maitrise des solutions excel.
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
26 avril 2010 à 17:35
Salut Vaucluse,

merci de t'arrêter sur mon problème. si j'avais pas eu de réponse, je t'aurais sans doute demandé de venir y jeter un coup d'oeil. ^^

effectivement, tes formules sont plus simples que les miennes! lol
j'avais galéré pour les faire avec tous ces SI... -_-'
et encore ça se serait aggraver avec les saisons supplémentaires!

c'est bon j'ai réussi à tout faire sans problème. et j'ai tout compris qui plus est! ^^

trier sans doublon avec le tableur, je sais faire. j'avais demandé pour le faire en VBA, mais comme c'est pas nécessaire...

en revanche, comment faire pour automatiser la chose?
à chaque saison, il y aura une ou deux nouvelles équipes qu'il faudra ajouter dans la feuille "Total" et trier dans l'ordre alphabétique.
je pourrais sans problème le faire manuellement, mais bon c'est toujours pour le côté "je cherche à pratiquer et à m'améliorer sur Excel".

merci déjà pour ton aide. les formules sont bien plus simples maintenant!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 26/04/2010 à 18:14
bien, bravo thibouuu ça marche!

pour automatiser la chose:
deux options:
soit avec une liste incrémentée par formule, là je te donnerais un exemple avec explications car c'est un peu pointu à expliquer en texte pur et il n'y aura pas de possibilité de classement par ordre alphabétique, sauf avec un copier coller valeur, ce qui n'avance donc à rien.

Soit par VBA,mais il y a un moyen simple d'écrire des macros sans le savoir:
_Tu repères bien les manip que tu fais pour mettre ton tableau à jour
_ une fois que tu es bien rodé, tu vas dans l'onglet" affichage" et tu cliques complètement à droite sur Macro
_ tu choisis enregistrer une macro, tu lui donnes un nom (court et clair si possible)
_tu fais toutes tes manip
pour que l'enregistrement soit le plus simple possible, sélectionne tous tes champs avant de copier en maintenant la touche crtl enfoncé, comme cela tu ne colles qu'une fois.de même fait bien un collage valeur seule pour éviter de reformater
ensuite retour au bouton macro et arrêter l'enregistrement (ne pas oublier sinon c'est la panique)

Ensuite cette macro peut s'exécuter:
soit au clavier si tu as retenu une touche en option dans la fenêtre de lancement
soit avec insertion d'un bouton ou même d'une image (clic droit sur l'image / Affecter une macro et choisir la macro.)

bien sur cette macro est un peu lourde car elle reprend toutes tes manip , mais tu peux la simplifier et aussi masquer son fonctionnement pour éviter les clignotements désagréables de l'écran qui reproduit le chemin.

la simplifier:
Macro / Afficher les macros, la choisir et pas à pas détaillé:
supprimer tous les smalscrol down, up etc... qui ne représentent que les déplacements fait à la souris pour atteindre les champs.

masquer son fonctionnement:
entrer en 1° ligne sous le titre:
Application.Screenupdating=False

Tu verras quand tu connais et que tu sais reprendre un peu les libellés obtenus, c'est sympa ça permet de traiter pas mal de problèmes.

bonne chance, n'hésite pas si besoin de complèment
Bonne soirée
0
tibouuh Messages postés 2686 Date d'inscription lundi 30 juin 2008 Statut Contributeur Dernière intervention 9 février 2017 647
26 avril 2010 à 18:49
cette méthode j'avais justement essayé de l'utiliser! pour les choses simples ça va. pour les choses compliquées, il me faut du temps!
je le ferais et si j'ai des problèmes je viendrais te demander conseil.

mais avant, j'aimerais bien créer une macro qui me permettrait de créer une nouvelle feuille contenant déjà toutes les formules et mise en page, ayant le nom de la saison suivante.
comme ça, je n'aurais plus qu'à remplir le tableau avec le nom des équipes et les scores pour chaque match.
j'ai utilisé la méthode que tu as décrite, mais ça bogue!
voilà le script VBA :
Sub Créer_feuille_nouvelle_saison()
'
' Créer_feuille_nouvelle_saison Macro
'

'
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Feuil2").Select
Sheets("Feuil2").Name = "Saison 2013"
Sheets("Feuille Vierge").Select
Cells.Select
Selection.Copy
Sheets("Saison 2013").Select
ActiveSheet.Paste
Range("A2").Select
End Sub


je comprends pas pourquoi il me met "Feuil2"?!
comment nommer automatiquement la nouvelle feuille avec l'année de la dernière feuille + 1?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 26/04/2010 à 19:11
Re re
on peut peut être faire plus simple,et plus sur; soit copier directement la feuille vierge et la renommer.

sub nouvelle_feuille()
Sheets("Feuille vierge").Select
Sheets("Feuille vierge").Copy Before:=Sheets(2)
Sheets("Feuille vierge (2)").Select
Sheets("Feuille vierge (2)").Name = "Saison 2013"
range("A2"). Select
End sub
Nota, cette macro, comme la tienne ne peut s'appliquer qu'une fois. Si une feuille est déjà nommée elle renvoi son nom de copie soit Feuil2 dans ton cas et feuille vierge (2) dans le mien
A noter toutefois que cette macro n'avance pas beaucoup par rapport à la copie de la feuille vierge en manip à la souris et à la renommée puisque de toutes les façons il faudra modifier la macro à chaque saison?

Crdlmnt

Ps on peut si tu veux affecter à une cellule de la feuille vierge l'année d'édition et je te donnes une macro qui l'intègre dans le nom de la feuille, ainsi la macro pourrait:
êtres lancées automatiquement (sans bouton)en entrant l'année dans la cellule de la feuille vierge et affecter tout aussi automatiquement le nom correspondant.
0