| ||||||||
Petit astucien | Bonjour, j'ai besoin d'un petit coup de main pour une macro. Cette macro doit fonctionner sur excel 2003 et 2010.
Dans un classeur de ce type je voudrais effacer les lignes qui ne contiennent pas d'entrées ni de sorties. Une fois terminé je veux qu'il me reste uniquement les lignes coloré en jaune, trier par ordre alphabétique. macro1 que j'ai pour trier
macro 2 pour effacer les lignes vides sans saisie
Modifié par jmsch le 28/08/2014 22:12 | |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonsoir, Proposition : Sub EffacerTrier() Non testée en l'absence de classeur modèle... | |||||||
Petit astucien | Merci pour le test. Fonctionne pas. | |||||||
Astucien | jmsch a écrit : En quoi ? Quelles commandes ? Erreurs d'exécution ou non ?... Une image ne peut remplacer un classeur... On suppose à ton texte que les colonnes A à D sont utilisées, à partir de la ligne 1. Je n'utilise pas les colorations dans la macro, mais uniquement le contenu de C et D, supposées contenir une valeur ou rien, pour supprimer les lignes ne contenant aucune valeur en C et D, et trier ensuite sur le contenu de D. Il faut évidemment que ces actions soient bien celles que tu souhaites et que le classeur réponde à ces spécifications... | |||||||
Petit astucien | salut voilà le lien du classeur http://cjoint.com/?0HDo54MoK3C Pour info c'est dans l'onglet saisie. La macro qui fonctionne sous 2010 mais pas sous 2003 c'est trier. Y a plusieurs autre macro qui elles fonctionnent.
Modifié par jmsch le 29/08/2014 14:56 | |||||||
Petit astucien | Bonsoir tout le monde. @ferrand, ta macro fonctionne parfaitement après correction d'un petit oubli : le point devant le second UsedRange. Sub EffacerTrier() Par contre, n prends la valeur 9700, classeur fait en dépit du bon sens… et temps d'exécution considérable. Modifié par corinthien le 29/08/2014 20:33 | |||||||
Astucien | Dans l'immédiat, j'ai juste ajusté la dernière macro proposée pour qu'elle fonctionne, conformément me semble-t-il à ce que tu souhaitais : effacement (au lieu de suppression) des lignes sans saisie et tri dans la foulée. Je regarde le reste dès que j'ai un moment... | |||||||
Astucien | Normal que la macro trie ne fonctionne pas sous 2003. A réécrire (une seule ligne suffit) : Range("A2:D200").Sort key1:=Range("B2"), order1:=xlAscending, Header:=xlNo Mais j'ai l'impression que beaucoup de macros se recoupent et font "doublon". Il me semble qu'il faudrait revoir l'ensemble en fonction de ta procédure d'utilisation (complète). NB: Quand je dis complète, c'est que par exemple en suivant tes instructions écrites, si je lance prepare, je vais renouveler la liste par copier-coller sans avoir effacé l'existant... le résultat ne sera pas forcément celui souhaité (et rien ne m'empêche de le faire). | |||||||
Astucien | Bonjour, J'ai jeté un oeil sur ton appli. Un certain nombre d'éléments me laissent dubitatif sur la procédure que tu souhaites mettre en place. Si je comprends bien le maillon qui te préoccupe actuellement, on procède à la saisie des entrées et sorties sur la feuille Saisie, puis (en fin de journée ?) les saisies du jour sont transférées sur la feuille EntréesSorties. Dans cette hypothèse, tu peux sélectionner sur liste les éléments pour lesquels tu as à saisir des entrées ou sorties, procédure qui fait double-emploi avec la recopie de la liste complète sur Saisie (laquelle ne peut que compliquer la saisie). La méthode la plus simple (et efficace) consiste à utiliser la sélection sur liste pour procéder à la saisie, une macro de validation en fin de journée opère le transfert sur EntréesSorties, y insère la date, retrie selon les critères retenus... La suite est moins claire : il semble que tu envisages l'alimentation de récap à partir d'EntréesSorties sans limite de temps, à partir de formules. Ce n'est pas une solution que j'envisagerais car le classeur sera assez vite très lourd et de moins en moins facile à gérer. L'apurement des EntréesSorties sur une périodicité mensuelle (ou variable, peu importe) peut aussi bien par macro : consolidation des données sur récap... Avec une récap sur plusieurs années, tu conserves un classeur léger puisque sans formules, ce qui te laisse une grande marge pour sophistiquer ta gestion de stocks... Cordialement. | |||||||
Petit astucien | Bonjour, en effet tu résumes assez bien la démarche que j'envisage de mettre en place. J'ai opté pour faire les saisies sur une page qui contient la liste complète car cette opération devrait se faire 1 à 2 fois par semaine et donc la saisie sera facilité et plus rapide si la liste complète se trouve sur la page. Faire le choix à chaque fois de l'article, dans une liste déroulante, avant de saisir les entrées-sorties sera je pense plus lent. Effectivement pour le calcul je suis parti avec des formules et là je sais que le classeur sera lent voir très lent à terme mais je fais avec mes connaissances et possibilités à moi. Merci à toi pour l'aide
| |||||||
Astucien | Bonjour, Suggestion pour ce qui concerne la saisie : http://cjoint.com/?DHFmzVvzwYP Une seule macro attachée au bouton "Finaliser...", elle opère l'épuration de la liste des saisies, tri et datation, copie valeurs et tri sur EntreeSortie, effacement et réinitialisation liste saisie. NB- Une macro enregistrée en vaut une autre... à condition de la réécrire ! Compléments : nom Matériel redéfini en champ dynamique (voir dans le gestionnaire de noms) ; ajout d'un spinbutton sur saisie pour dater et ajuster la date (permet faire varier date du jour de +ou- 30jours [contrôle activeX car son équivalent formulaire ne prend pas de valeur négative]). Pour la suite, il semble que tu veuilles conserver les EntreeSortie de façon permanente. Il serait souhaitable cependant de limiter à un an (archivage et renouvellement de la feuille), en correspondance avec une colonne de recap. Un bouton (analogue à celui de saisie) pourrait lancer la mise à jour de recap (la date en A1 sur EntreeSortie pourrait être l'indicateur de la date de mise à jour précédente...). | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|