Voilà j'ai besoin de votre aide pour créer une macro spéciale.
Je vous explique. Chaque mercredi matin, je vais chercher un document sur internet pour mon travail. Il comporte toujours les mêmes titres de colonnes et essentiellement les mêmes données. Mon problème survient parce que j'ai besoin que la macro choisisse des lignes vide dans certaines colonnes et non seulement la sélection que je fais lors de l'enregistrement de la macro. J'ai essayé d'insérer une image pour vous montrer mais, il semble que ça ne fonctionne pas pour la coller ici (ou je ne sais pas comment faire autrement que ctrl+v! )
Je vous explique donc ce que je dois faire, que j'aimerais automatiser:
Je crée 2 nouveau onglets que je nomme H et S. Je sélection le rapport complet et je le copie/colle dans la feuille S. Dans la feuille S, je supprime les lignes 1 à 3. Je fais un tri par Supplier Style afin de supprimer toutes les lignes sans Supplier Style. Je coupe/colle les styles 9-19-22-23 et 25 dans la feuille H. À nouveau dans la feuille S, je fais un tri par Activity Type afin de supprimer toutes les lignes san Activity Type. J'insère quelques lignes entre les Demand et les Replenishment Order car on ne veux pas ces derniers (mais on ne veut pas les supprimer non plus.) Je sélectionne toutes les des Demand et Customer Order (ils ont un Activity Type) et je fais un tri par Dock Date. Puis j'insère 4 lignes pour diviser les semaines (du dimanche au lundi) de la semaine courante et les 3 prochaines et ainsi faire le total de chaque semaine.
On refait la même chose avec la feuille H.
Bon je sais que ça ne semble pas clair , mais en le faisant pas à pas, on comprend mieux. Là mon problème c'est que je ne sais pas comment vous mettre des images ou le fichier en entier ici. Alors bref, si quelqu'un veux bien m'aider écrivez moi à carolyne0105..at..gmail.com et je vous enverrai le fichier. Svp Svp
Quand je fais moi même la macro et que je supprime les lignes sans supplier style ou activity type, le système enregistre seulement les lignes que je supprime ... et non le fait qu'elle soit vide dans cette colonne spécifique.
Merci beaucoup! J'attend vos réponses avec impatience. Au travail, on m'a répondu que ce n'était pas une priorité.
l'enregistreur de macro est une base de travail dans ton cas (enfin, dans tous les cas).
Il faut allez nettoyer son code (bha oui, il est pas toujours optimisé (les .Select en autres) et le modifier pour qu'il fasse exactement ce que tu veux.
pour mettre un fichier expemple a disposition, utilise par exemple des service comme rapidshare ...
(J'ai supprimé le @ de ton adresse mail, histoire que tu ne te fasses pas spammer.)
Il ne me semble pas que ce soit bien compliqué. Les conseils de KangOl sont avisés : utilise l'enregistreur de macro. Juste une précision, ce que tu appelles un tri est en fait un filtre. Je me trompe ?
Plutôt que ton fichier et/ou des copies d'écrans, publie le code de ta macro, on l'optimisera ensemble.
Merci pour vos conseils! En fait je ne sais pas s'il y a vraiment une différence, mais bon j'utilise dans Excel "données""trier" et là je choisi par quoi je veux trier.
Alors comme je disais précédemment, mon problème c'est que la macro enregistre le fait que je supprime les cellules X à Z au lieu du fait qu'elle soient vide lors des tri par Supplier Style, Activity Type et Dock Date. Le système voit seulement Rows("1049:1109" ).select
Bon je vous laisse m'aider!
Voici le code de ma macro. (Comme je n'y connais rien, si vous la modifier, pouvez vous svp la réinscrire ici au complet?Comme ça je n'aurai qu'à copier/coller. merci!)
Code :
Sub MacroTestReport()
'
' MacroTestReport Macro
' Macro enregistrée le 2007-08-06 par CAROLYNE0105
L'étape 3 est correcte. Je veux faire le tri et supprimer les lignes sans Activity Type.
Ce que je comprend du code décrit c'est qu'il supprimera les lignes 1639 à 2170.
Mon problème c'est que la semaine suivante ce ne sera peut-être pas juste ces lignes là qui seront sans Activity Type... vous me suivez? La quantité de lignes sans Activity Type (ou Supplier Style) est variable.
Et puis sinon c'est l'étape suivante que je ne veux pas supprimer des lignes; celles de Replenishment Order. C'est pourquoi j'insère une ligne entre les Replenishment Order et Demand.
Mais même si ça n'allait pas plus loin que d'insérer une ligne noire entre les RO et les demand... mon travail serait déjà tellement facilité. Vraiment! C'est formidable ce que vous faites ici.
Je te relis et je me dis : Et si tu parcourrais les lignes de "Over Under Report" une par une et que pour chacune tu vérifiais si ActivityTruc ouy SupplierMachin correspond ?
Code :
Dim H As Worksheet
Dim ligneH As Long
ligneH = 1
Set H = Worksheets.Add
H.Name = "H"
For Each ligne In Worksheets("Over Under Report" ).Range("4:65535" ).Rows
If ligne.Cells(1, 1).Value = "ActivityTruc" And ligne.Cells(1, 5).Value = "SupplierMachin" Then
Il faudrait avoir un moyen pour que je puisse vous montrer le document de départ et ce à quoi j'arrive à la fin. Parce qu'en fait, cette procédure de tri, coupage et collage, ce n'est pas moi qui l'ai écrite... alors il faudrait vraiment s'assurer qu'au final, le résultat soit le même, peut importe la façon que la macro est écrite.
Bof. Je veux bien t'aider à comprendre comment faire des choses, pas à les faire pour toi. Si tu finis par bien comprendre, ce sera pour moi une satisfaction et pour toi, l'assurance de savoir vérifier par toi-même si le résultat obtenu est celui escompté.
Si tu sais ce que tu veux faire, on va t'aider à l'obtenir.
Si tu ne sais que ce que tu veux obtenir, on ne va pas te le faire.
Bah alors de ce que je comprends, je crois qu'il serait préférable de garder toutes les étapes précédentes de la macro... sauf le bout où on lui dit de supprimer les lignes X à Z. On pourrait remplacer cette étapes par le dernier truc que tu disais.. lui faire chercher ligne par ligne les cellules vides et ensuite les supprimer. Ça reviendrait à faire ce que je parlais au début et donnerait un bon résultat vu qu'on ne change pas le reste de la procédure...