Petit astucien | Salut les amis je travaille sur une macro dans le tableau de scolarité de l’année prochaine Je souhaite créer une macro afin de préparer le tableau de scolarité de l’année prochaine pour cela dans le tableau de scolarité de l’année actuelle je saisi dans les cellules des résultats de fin d’année : A : pour les admis R : pour les non admis Le but de cette macro est de réorganiser les élèves de chaque niveau scolaire pour l’année prochaine Exemple : les élèves non admis de la 4AP et les admis de la 3AP de l’année actuelle devront être regroupé dans le tableau de scolarité de la 4AP de l’année prochaine Le classeur est compose de 6 feuilles de la 1AP à 6AP Les admis de la 6AP ne devront plus exister dans le classeur de l’année prochaine car ils iront au collège
Aider moi pour importer les données du classeur année actuelle vers le classeur année prochaine et merci infiniment vous trouverez le deux fichiers en fichier joint : | |||||||
Publicité | ||||||||
![]() ![]() | Bonsoir, Petite question : à quoi correspondent les numéros (colonne à droite), on les ignore pour transférer ? Cordialement. | |||||||
Petit astucien | Ce sont des numéros d'ordre uniquement on peut les ignorer si on veut | |||||||
![]() ![]() | Et cadrage des données à tranférer : colonnes F à X ? | |||||||
Petit astucien | l'important c'est d'importer les noms et prénoms , date de naissance et si possible num de scolarité | |||||||
![]() ![]() | Tu devras attendre (à moins que quelqu'un d'autre s'y colle) car tes cellules fusionnées bloquent toute possibilité de tri. Par conséquent l'opération ne peut plus être bouclée avec la macro de 20 lignes (déjà écrite) et devient infiniment plus compliquée, car au lieu d'avoir deux blocs par feuille il va falloir monter des tableaux alimentés élève par élève... Ce que je n'ai nulle intention de poursuivre à cette heure... Cordialement. | |||||||
![]() ![]() | Peut-être pas finalement. J'ai fait 2 macros de plus, une pour défusionner, une pour fusionner. J'essaierai ça demain dès que j'ai un moment. | |||||||
Petit astucien | Merci Ferrand | |||||||
![]() ![]() | Bonjour, http://www.cjoint.com/c/FExgw3lvxHy Classeur "année prochaine" qui contient les macros. Un bouton sur la feuille 1 Finalement, l'adaptation a bien fonctionné : on défusionne les 2 classeurs au départ et on les refusionne à la fin. Mais cela ne semble pas très logique de fusionner ainsi des listes de ce type sur lesquelles on a en principe besoin d'opérer des tris. Le transfert insère les "A" du niveau inférieur de l'année préc. en tête de liste (sauf pour la 1), suivis des "R" du même niveau année préc. J'ai rattrapé les bordures et le centrage pour l'ensemble des lignes. Bonne continuation. | |||||||
Publicité | ||||||||
Petit astucien | si la macro n'est pas si délicate et si on peut traiter le problème avec des formules ça marche pour moi | |||||||
Astucien ![]() | Bonjour, ferrand a accompli un véritable miracle avec sa macro dans ce fichier Excel bourré de cellules fusionnées. Je comprends même pas comment ça marche Le tableau des élèves est complètement "intriable" à cause des cellules fusionnées, et même si on reportait manuellement les élèves, il faudrait le faire dans l'ordre de tri sans pouvoir utiliser le tri d'Excel ! Il faut éviter les cellules fusionnées autant que possible dans les tableaux de données. Si j'ai un peu de temps je m'essaierai ce soir (juste pour voir un peu) comment se dépatouiller de ce truc avec un feuille intermédiaire sur laquelle j'ai pu faire et reporter le tri dans les feuilles d'origine en manuel. Cordialement, | |||||||
Petit astucien | merci ferrand vous êtes vraiment un pro | |||||||
Astucien ![]() | Une autre approche, plus empirique, mais dans un fichier Excel séparé. http://www.cjoint.com/c/FExm4sFgwAA Avant de procéder, il serait bon d'homogénéiser les bordures de la colonne "resu fin année" dans les différentes feuilles. En fait, une refonte de ce fichier lui ferait du bien :) | |||||||
Petit astucien | Merci Debrief ça fonctionne | |||||||
Astucien ![]() | Mouais, au format date près, faut que je voies. | |||||||
Astucien ![]() | Bon au final, c'était pas grand chose à modifier pour conserver le format d'origine des dates. Pour info j'ai fait le tri sur le numéro de scolarité: voir (ALT + F11) dans la macro Const ColonneTri = "V", pour trier sur le nom, changer en Const ColonneTri = "Q" Et pour le fun j'ai enjolivé un peu le dialogue du début pour la saisie des noms de fichiers et au passage rajouté un "save" du fichier résultat de l'année prochaine après valorisation. http://www.cjoint.com/c/FExvazrxi0A
Et juste au cas où tu voudrais utiliser un fichier plus simple et plus homogène tel que celui-là http://www.cjoint.com/c/FExwqLnnGEA, je peux te refaire la macro en conséquence. Cordialement, Modifié par Debrief le 24/05/2016 00:17 | |||||||
![]() ![]() | ||||||||
Publicité | ||||||||
Petit astucien ![]() | Bien que le sujet soit résolu, je souhaite apporter une information pour les utilisateurs d'Excel, en particulier pour noe2008, si quelqu'un lit encore ce sujet. En tant que formateur Excel (restons modeste, formateur à mon niveau, en interne dans mon entreprise), quand on utilise Excel en tableur, c'est à dire pour des calculs, la présentation étant secondaire, j'ai toujours conseillé fortement d'éviter les cellules fusionnées, c'est la galère dans les calculs. La plupart du temps, on fait la même présentation avec l'option "centrer sur plusieurs colonnes" pour les cellules "horizontales". Par contre, pour centrer plusieurs cellules "verticales" je n'ai pas de solution... | |||||||
Astucien ![]() | Bonjour PappyYves, En effet, ta remarque est judicieuse est c'est bien ce que les réponses précédentes ont mis en évidence. D'ailleurs, le 23/05/2016 à 22:30, j'ai envoyé (pour soulager ma conscience On trouve ce genre de fichier dans les administrations ou autres organisations, initialement fabriqués par des personnes non spécialement averties sur Excel et repris par d'autres personnes pour une utilisation qui va amener des transformations diverses. Le résultat final n'a d'Excel que la présentation visuelle sans les potentialités du tableur. Mais si cela répond aux besoins, why not... Surtout quand malgré cela, PC Astuces fournit les connaisseurs comme ferrand ou les bidouilleurs comme moi pour rattraper le coup Cordialement, Modifié par Debrief le 24/05/2016 20:07 | |||||||
Petit astucien | Bonjour le forum Le sujet est résolu, mais j'apporte une solution basée sur un raisonnement différent. C'est sûr qu'un tableau rempli de cellules fusionnées interdit toutes opérations de tri. le Tri est la solution première qui vient à l'esprit pour traiter ce genre de problème, seulement, dé-fusionner, filtrer, recopier chaque zone filtrée puis re-fusionner pour retrouver le tableau d'origine prend un temps énorme. Alors pourquoi ne pas récupérer les toutes données directement dans chaque cellule ciblée et restituer le tout dans le deuxième tableau avec le même principe. Résultat une rapidité d'exécution qui n'est pas comparable avec la solution par à la précédente. Proposition: Ouvrez les 2 fichiers (dans la même session Excel), allez sur la feuille1 de l'année actuelle et cliquez sur le bouton "Scolarité" http://www.cjoint.com/c/FEzbA52Sebw pour l'année actuelle http://www.cjoint.com/c/FEzbK6v46Nw pour l'année prochaine A tester Cordialement
| |||||||
Astucien ![]() | Bonjour LORENZO83, Du Var ? Alors voisins. C'est une autre solution qui fonctionne bien où tu choisis de manipuler les données individuellement plutôt que par lignes comme dans les options précédentes. Cependant tu ne fais pas de tri sur les feuilles de l'année prochaine, ce qui serait possible de faire directement dans tes tableaux en mémoire. Au niveau du temps apparent de construction de l'année prochaine, à un chouia près c'est la même chose (1 à 2 secondes) pour les 3 solutions, et en terme de temps CPU (colonne Temps processeur à ajouter dans le Gestionnaire de Tâches), c'est quasi-identique pour les 3, sur mon PC: Cordialement, Modifié par Debrief le 25/05/2016 09:34 | |||||||
Petit astucien | salut les amis je vous remercie tous pour vos efforts en ce qui concerne les cellules fusionnées on ne peut rien changer car il s'agit d'un classeur qui est exporté à partir d'un portail je souhaite que la macro une fois ouverte me demande a chercher l'emplacement du fichier année actuelle sans imposer des noms pour les deux classeur c'est à dire de cette façon : Sub scolarité()
Dim Fich As String
Fich = Application.GetOpenFilename Workbooks.Open (Fich) .................................... .......................................... ActiveWorkbook.Close ............................
| |||||||
Astucien ![]() | Salut noe2008, Dans le fichier que j'ai posté le 23/05/2016 à 22:30 http://www.cjoint.com/c/FExvazrxi0A la macro te demande le nom des fichiers. Cordialement, Modifié par Debrief le 25/05/2016 17:45 | |||||||
Petit astucien | je ne suis pas si fort en vba si tu peux me faire la modification ça sera tres gentil de ta part | |||||||
Astucien ![]() | Bon voilà une macro modifiée pour sélectionner les fichiers: http://www.cjoint.com/c/FEzsnn7M7jr Comme auparavant, le tri est fait sur le numéro de scolarité: voir (ALT + F11) dans la macro Const ColonneTri = "V". Si tu trouves un bug tu me le dis.... Cordialement,
Modifié par Debrief le 25/05/2016 20:13 | |||||||
Petit astucien | oui pour elle impose le chemin pour le fichier annee prochaine | |||||||
Publicité | ||||||||
| ||||||||
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|