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
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
A voir également:
- Regrouper données de plusieurs feuilles Excel
- Liste déroulante excel - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Regrouper plusieurs pdf - Guide
- Formule excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
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
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
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
Modifié par Vaucluse le 26/04/2010 à 16:43
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.
26 avril 2010 à 17:35
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!
Modifié par Vaucluse le 26/04/2010 à 18:14
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
26 avril 2010 à 18:49
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?
Modifié par Vaucluse le 26/04/2010 à 19:11
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.