Edition commande

Mickmagmicmac

XLDnaute Nouveau
Bonjour,

j'ai créé une feuille listant ligne par ligne (page / nom / référence / montant unitaire / quantité / montant total) tous les produits d'un catalogue susceptibles d'être achetés.

je voudrais :

- soit directement imprimer que ceux sélectionnés (quantité différente de 0),

- soit recopier la ligne de chaque produit sélectionné dans une nouvelle feuille que j'imprimerai,

- soit une meilleure idée !!!

Mais voilà, hyper débutant, je sèche !
J'ai recherché sur le forum mais je n'ai trouvé actuellement qu'une macro qui recopie sur une nouvelle feuille l'intégralité des celllules d'une plage donnée.

Pour info, il s'agit d'automatiser l'édition des commandes pour un labo de physique.
Merci pour l'aide ou simplement pour m'avoir lu.

Mick
 

Brigitte

XLDnaute Barbatruc
Re : Edition commande

Et voici ma petite tentative...
On pourrait y inclure un défiltrage à la fin de l'impression.

Et aussi bien sûr le paramétrage de la zone d'impression peut être fait avant pour que tout soit bien propre (titre, pagination, date en bas, bordurage, centrage tableau, etc). Là j'ai fait court.
 

Pièces jointes

  • Mick impression.xls
    29 KB · Affichages: 107

Mickmagmicmac

XLDnaute Nouveau
Re : Edition commande

Re !

Je viens de tester ton fichier !
Impressionnant !

J'essaie d'adapter en conséquence mon fichier...

Je le posterai ensuite si ça intéresse quelqu'un...

Puis il faudra que je cherche comment clore cette discussion.

MERCI MERCI MERCI !
Pas bien de crier... mais je suis super content !

Merci mille fois Brigitte.
Bonne continuation.

Mick
 

Brigitte

XLDnaute Barbatruc
Re : Edition commande

Re,

Je n'ai pas fait grand chose, il te suffit de copier la macro qui se trouve dans le fichier que j'ai mis et de l'adapter...

La mettre dans un module (alt/F11 ouvre l'éditeur vba, puis insertion module et mettre cette macro dedans).

Code:
Sub Mick()
'
' Mick Macro
' Macro enregistrée le 10/07/2009 par Mick
'
'
    Range("A1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="x"
    'Mettre les références de la plage à imprimer, ici Colonne B à G par exemple
ActiveSheet.PageSetup.PrintArea = Range("[COLOR=darkorange]B1:G"[/COLOR] & _
    Range("A65536").End(xlUp).Row).Address
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Si tu veux défiltrer à la fin, rajoute avant End sub :

Code:
  Range("A1").Select
    Selection.AutoFilter

J'ai utilisé l'enregistreur de macros automatique pour le début et un bout de code de Pierrot93 pour la fin (imprimer la zone définie jusqu'à la fin du tableau).

Et mets en forme souhaitée ton tableau avant tout ca (fichier entête pied de page pour mettre un titre, centrer...)
 
Dernière édition:

Mickmagmicmac

XLDnaute Nouveau
Re : Edition commande

Argh !

J'ai adapté mon fichier au tien ou l'inverse !

L'idée est plutôt de remplir les quantités (au lieu de cocher) et ensuite je sélectionne les cellules quantité non vides et j'imprime !
Génial !

Sauf que le comportement est bizarre quand j'imprime : disparition de mes sélections, disparitions des boutons de sélections, bref mon fichier n'est plus utilisable...

Je cherche mais en attendant je joins le fichier.
Merci encore.

Mick
 

Pièces jointes

  • CommandeMickpartiel.xls
    48 KB · Affichages: 59

Brigitte

XLDnaute Barbatruc
Re : Edition commande

Re,

Qu'entends tu par boutons de sélection ? et par disparition de sélections ?

Tu as juste copié / collé ma macro ? de ce fait, la plage n'est pas bonne, puisque dans la mienne, on prend la colonne A pointage, et dans la tienne il faut prendre la colonne E quantité... Il faut donc changer dans le code la référence.

Idem pour la ligne où se fait le filtrage... c'est pas la ligne 1 mais 3 dans Ton fichier. Je t'avais bien dit d'adapter...

Voici donc le code modifié :

Code:
Sub Mick()
'
' Mick Macro
' Macro enregistrée le 10/07/2009 par xxx
'
'
    Range("[COLOR=darkorange]A3[/COLOR]").Select
    Selection.AutoFilter
    Selection.[COLOR=darkorange]AutoFilter Field:=5, Criteria1:="<>"[/COLOR]
    ActiveSheet.PageSetup.PrintArea = Range("[COLOR=darkorange]A1:F[/COLOR]" & _
    Range("A65536").End(xlUp).Row).Address
[COLOR=green]'ActiveWindow.SelectedSheets.PrintOut Copies:=1[/COLOR]
    [COLOR=green]'Range("A1").Select[/COLOR]
[COLOR=green]'Selection.AutoFilter[/COLOR]
End Sub

J'ai mis volontairement une apostrophe devant la dernière ligne et devant le défiltrage afin que tu puisses faire des essais de définition de zone d'impression sans imprimer chaque fois.
Si ca te plait, fais ALT/F11 et enlève la, la ligne deviendra noire, au lieu de verte (commentaire) et ca imprimera.

Est ce que c'est mieux ? Est ce que ca répond à tes pbs ?
 

Pièces jointes

  • Mickpartiel(1).xls
    52 KB · Affichages: 85
  • Mickpartiel(1).xls
    52 KB · Affichages: 94
  • Mickpartiel(1).xls
    52 KB · Affichages: 91
Dernière édition:

Mickmagmicmac

XLDnaute Nouveau
Re : Edition commande

Merci.

Ben oui j'avais juste copié-collé, désolé de t'avoir fait perdre du temps.

Le fonctionnement est correct désormais.
Reste juste qu'après la première impression, les "flèches ?" telles celle de la case quantité disparaissent ! Une impression suivante puis j'annule et tout redevient normal !

Quoiqu'il en soit, ça fonctionne selon mes besoins, aussi encore un grand merci pour la précision, l'efficacité et la rapidité de tes réponses.

Très impressionné.

Michaël
 

Brigitte

XLDnaute Barbatruc
Re : Edition commande

Mickael,

Pas de souci, je ne voulais pas dire que tu m'avais fait perdre mon temps... mais comme j'avais dit "à adapter"... en raison du fait que mon premier fichier avait été fait sans le tien... je pensais que tu l'avais fait.

Alors pour les "flèches" comme tu dis, c'est en fait un filtrage. Ca filtre le tableau selon le critère déterminé, en l'occurence dans TON fichier, en fonction des quantités renseignées (si quantité, lignes sont ok, les autres se cachent : principe du filtrage).

Donc il est normal après l'impression que les flèches s'enlèvent car on l'a prévu dans la macro. Mais il suffit de l'enlever pour qu'elles restent.

Quand tu as les "flèches" en haut sur la ligne des titres, amuse toi (si tu ne connais pas) à cliquer dessus, tu verras que tu peux, à l'infini, choisir tel ou tel critère, par exemple, une fois que tu as choisi (à la main, car dans la macro, cela se fait tout seul) les quantités (non vides), tu peux par exemple prendre une seule référence, etc...

Tu vois ? dis moi si je ne suis pas claire... on a parfois tellement l'habitude des choses, qu'on ne les explique pas bien.

Revoici le fichier sans le "défiltrage" après.

Le code :

Code:
Sub Mick()
'
' Mick Macro
' Macro enregistrée le 10/07/2009 par Mick
'
    Range("A3").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=5, Criteria1:="<>"
    ActiveSheet.PageSetup.PrintArea = Range("A1:F" & _
    Range("A65536").End(xlUp).Row).Address
  [COLOR=blue]  ActiveWindow.SelectedSheets.PrintOut Copies:=1[/COLOR]
    Selection.AutoFilter Field:=5
 
End Sub

ET le fichier joint. Attention, ca va imprimer, car j'ai remis la ligne de code qui permet l'impression sans apostrophe, donc elle est ACTIVE...

Et on a ensuite de nouveau toutes les lignes... Si c'est bien ce que tu voulais, dis moi.
 

Pièces jointes

  • Mickpartiel(1).xls
    55 KB · Affichages: 86
  • Mickpartiel(1).xls
    55 KB · Affichages: 86
  • Mickpartiel(1).xls
    55 KB · Affichages: 86

Brigitte

XLDnaute Barbatruc
Re : Edition commande

Re,

Je te laisse regarder le post précédent ou suivant avec le nouveau fichier.

Et je te donne un petit cours sur le filtrage.

Sur tout tableau excel, tu peux, si tu as des entêtes de lignes, FILTRER, cela veut dire choisir les critères pour avoir l'affichage des lignes souhaitées.

Pour que les flèches de filtrage apparaissent dans les entêtes, il faut :

- se mettre dans la ligne des titres
- faire données/filtrer/filtre automatique (dans un premier temps, le plus simple)
- tu vas voir apparaître sur les entêtes les fameuses flèches
- clique en t'amusant sur certaines d'entre elles, tu as la liste des contenus
- tu fais un choix dans un titre
- tu fais un choix dans un autre titre (il faut bien sûr que ce soit compatible)
- nous on a choisi "non vide" (dans la macro pour ton impression)
- tu obtiens la liste FILTREE de ton tableau

filtrer.jpg

- tu peux alors l'imprimer, faire des calculs rapides...

C'est ce que fait la petite macro toute simple que j'ai faite.

Filtrage plus complexe :

Il faut que tu saches (pour une autre fois) que l'on peut aller plus loin dans le filtrage, et faire ce qui s'appelle :

- un filtrage personnalisé
- un filtrage élaboré

Pour faire un filtrage personnalisé, au lieu de cliquer sur un des contenus dans la liste (ou bien sur vide, non vide) tu cliques sur personnalisé et là apparaît une petite fenêtre te permettant par exemple pour une colonne de montants de choisir tous les enregistrements inférieurs à xxx et supérieurs à xxxx (plein de solutions).

Essaie, ca va t'amuser...

Pour faire un filtrage élaboré, c'est plus complexe, il faut faire Filtrer/filtre élaboré et définir une zone de critères. Je préfère ne pas t'embrouiller.

Mais le filtrage est une faculté très sympa d'excel. Ceci dit tu entendras aussi parler de TCD (tableaux croisés dynamiques) qui font la même chose et présentent le résultat sous forme de tableau très chouette.

Voilou.


Si tu souhaites d'autres explications, n'hésite pas. J'ai aussi MSN et skype si tu veux qu'on en cause plus en privé.
 
Dernière édition:

Mickmagmicmac

XLDnaute Nouveau
Re : Edition commande

Merci pour tout !
Je ne sais pas comment je pourrai te remercier ? Essayer de progresser et dire merci, c'est bien peu par rapport au temps que tu m'as consacré !

Concernant tes précédents messages,
Oui j'avais déjà vu le filtrage personnalisé avant de découvrir le filtre cellule non vide !
Concernant ton fichier, c'est parfait. Le fonctionnement est tel que je l'imaginais.


Je joins une partie du fichier actuel et t'expose deux des soucis qu'il me reste mais tu en as déjà fait beaucoup aussi je comprendrai que tu t'arrètes là :

- j'ai défini la zone d'impression couvrant toute la page jusqu'au montant total. Après impression, cette zone ne se réinitialise pas. Est-ce au moins possible ?

- mes lignes montant, frais de port, montant total n'apparaissent pas sur l'impression, or ces lignes ont bien des cellules non vides ! Je regarde la macro et je ne vois pas ce qui pose problème. Je me suis déjà fait avoir avec des lignes vides, j'ai vu que le filtre n'appréciait pas...

Quoiqu'il en soit, l'avancée est énorme et sans toi, je n'aurais qu'une petite liste minable !
Par contre, je me sens super motivé pour approfondir excell !

Bonne soirée.
J'espère que tu trouveras autant d'aide lorsque tu en auras besoin.

Mick
 

Pièces jointes

  • CommandePartielle.xls
    46.5 KB · Affichages: 56
  • CommandePartielle.xls
    46.5 KB · Affichages: 54
  • CommandePartielle.xls
    46.5 KB · Affichages: 49

Mickmagmicmac

XLDnaute Nouveau
Re : Edition commande

Un des deux problèmes est résolu : cela ne plaisait pas que mes cellules de la première colonne soient vides. J'ai contourné le problème en déplaçant Date en première colonne !

Il me reste à trouver comment réinitialiser la zone d'impression.

Je joins le fichier si cela intéresse quelqu'un.
C'est Brigitte qu'il faudra remercier !

Mick
 

Pièces jointes

  • CommandePartielle.xls
    46.5 KB · Affichages: 70
  • CommandePartielle.xls
    46.5 KB · Affichages: 78
  • CommandePartielle.xls
    46.5 KB · Affichages: 72

Mickmagmicmac

XLDnaute Nouveau
Re : Edition commande

Avec le problème précédent résolu, la zone d'impression est bien réinitialisée !
Plus de problème !

J'ai ajouté une troisième macro qui vient de cette page :
https://www.excel-downloads.com/threads/macro-pour-copier-feuille-a-feuille.108259/

Ainsi avant l'impression, je sauvegarde la commande dans une feuille précédemment créée (Sauv, sauv(2)...). J'ai défini comme raccourci pour cette macro CTRL+s
Après l'impression, la feuille se réinitialise mais j'ai sauvegardé ma commande en plus de l'impression papier ou virtuelle (doPDF par exemple).

Encore un grand merci à Brigitte pour toute l'aide et la patience dont elle a fait preuve.
Merci à Staple1600 pour la dernière macro.

Si par exemple vous êtes prof de collège en sciences physiques, et que le fichier complet vous intéresse : michael.samson@ac-rouen.fr

Mick
 

Pièces jointes

  • CommandePartielle.xls
    47.5 KB · Affichages: 78
  • CommandePartielle.xls
    47.5 KB · Affichages: 81
  • CommandePartielle.xls
    47.5 KB · Affichages: 84

Brigitte

XLDnaute Barbatruc
Re : Edition commande

Bonjour,

Super contente que tout se passe bien Mickaël... Je viens d'ouvrir ton fichier, c'est super !!!

La macro que tu utilises pour sauvegarder :

Code:
Sub SauvegardeAvantImpression()
Dim[COLOR=black] ADRS$[/COLOR]
Dim r As Range
Dim rr As Range
ADRS = "A1:AA380"
Set r = ActiveSheet.Range(ADRS)
Set rr = ActiveSheet.Next.Range(ADRS)
r.Copy rr
End Sub

Si tu changes quelque chose dans la feuille 1 (Jeulin), attention, ca ne garde pas la première sauvegarde, mais la remplace, est ce ce que tu veux ?

Car comme on réinitialise, ne peut on imaginer que tu fasses une première commande, qui se sauvegarde donc après impression, puis qq temps après une seconde commande (et non une modif de la première) qui elle, telle que fait, se sauvegarde sur la première en l'écrasant, est ce cela ?

Sinon pour sauvegarder, il y a encore plus simple, un recopie / collage spécial de la feuille, c'est ce que j'utilise actuellement dans une de mes grosses applications archives : un fichier de 8000 lignes, on a besoin de recopier les données d'une ligne sur une feuille par formules, puis on veut envoyer cette feuille par mail à qqun, donc je crée une copie de la feuille avec formules (qui utilise des recherches dans la première) sur une nouvelle feuille "en dur" (sans formule pour passer par mail sans qu'il y ait de liaisons)... et j'ai même un bouton : envoi par mail.

La macro pour cela :

Code:
Sub CopieValeurs1()
'
' CopieValeurs Macro
' Macro enregistrée le 14/09/2007 par Brigitte '
'
    Range("[COLOR=red]A1:AA43[/COLOR]").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Sheets("[COLOR=red]FICHE COMMUNICATION[/COLOR]").Select
    Sheets("[COLOR=red]FICHE COMMUNICATION[/COLOR]").Copy
    Application.WindowState = xlMinimized
 
    End Sub

Enfin, bravo pour control/s pour ta macro, mais pour t'embêter, il y a encore plus simple : un bouton comme celui de l'impression, non ?

Petite question :

Je ne comprends pas ton souhait (que tu sembles avoir réalisé, mais je vois pas ce que tu veux dire ) :

Il me reste à trouver comment réinitialiser la zone d'impression.


Tu es prof dans quel collège de l'académie de Rouen ? On a habité là pendant 7 ans (Mesnil Esnard)...

Une dernière chose :

Comment nous remercier de notre aide (si tant est que je t'ai assez aidé ;-) avec mes petits moyens !!) :

Tout simplement comme tu le fais : en restant enthousiaste, en le manifestant, en revenant sur le fil, en donnant les pistes trouvées (comme ici le lien vers la macro de jeanmarie, enfin staple1600 qui nous manque car absent depuis des mois), en progressant puis en revenant aider les autres à ton tour... Tu as 20/20 pour tout cela et crois moi, on est pas habitués à ce que tout le monde soit aussi "reconnaissant", ca fait très plaisir et c'est ce qui fait qu'on continue, tous, pour des gens comme toi, alors reste sur xld, ce sera notre récompense, merci à toi.

Bon we.
 
Dernière édition:

Statistiques des forums

Discussions
312 453
Messages
2 088 553
Membres
103 881
dernier inscrit
malbousquet