Copier-Coller valeurs sous condition avec impression de la page

Bonjour à tous,

J'ai cherché sur différents forums et sujets mais rien ne répond totalement à mon besoin. C'est pourquoi je cherche vraiment de l'aide sur ce sujet.

Je cherche à réaliser une boucle qui en fonction de critères va me transposer les données d'un onglet à l'autre et imprimer la page une fois le remplissage est terminée et faire la même chose jusqu'à la fin de lecture des données.

Je vous mets en PJ le fichier en question.

Sur le fichier joint vous avez 2 onglets :

1er onglet : resume (c'est la base de données)

2ème onglet : impression (l'onglet où les données doivent être coller via la base de données de l'onglet "resume")

Je vais essayer d'expliquer clairement le fonctionnement de la macro.

Il démarre sur l'onglet "resume", il va prendre les données de la ligne 2 et copier coller les données sur l'onglet "impression"

Onglet "impression" de la colonne A (ligne 5) = Onglet "resume" de la colonne C (ligne 2 pour le démarrage de la macro)

Onglet "impression" de la colonne C (ligne 5) = Onglet "resume" de la colonne M (ligne 2 pour le démarrage de la macro)

Onglet "impression" de la colonne E (ligne 5) = Onglet "resume" de la colonne K (ligne 2 pour le démarrage de la macro)

Onglet "impression" de la colonne I (ligne 5) = Onglet "resume" de la colonne D (ligne 2 pour le démarrage de la macro) + la colonne E (ligne 2 pour le démarrage de la macro)

Puis (il y a une première condition)

Onglet "impression" en E1

SI l'onglet "résume" de la colonne G (ligne 2) = Vide

alors Onglet "impression" en E1 = Onglet "resume" de la colonne I (ligne 2 pour le démarrage de la macro)

SI l'onglet "résume" de la colonne G (ligne 2) différent de Vide

alors Onglet "impression" en E1 = Onglet "resume" de la colonne G (ligne 2 pour le démarrage de la macro)

Puis

Onglet "impression" en G1 = Onglet "resume" de la colonne H (ligne 2 pour le démarrage de la macro)

Onglet "impression" en I1 = Onglet "resume" de la colonne F (ligne 2 pour le démarrage de la macro)

Une fois qu'il a fini de faire cela, il va recommencer la boucle mais cette fois-ci il va comparer les données constamment à travers 2 conditions

Sur l'onglet "resume", il va sur la ligne suivante (en occurrence la ligne 3),

Condition SI :

SI Sur la colonne A, si la cellule de la ligne 2 = la cellule de la ligne 3,

alors il va sur la colonne B, SI la cellule de la ligne 2 = la cellule de la ligne 3,

Donc il va copier coller les données à la suite des données coller précédemment sur l'onglet "impression".

Mais SI

Sur la colonne A, si la cellule de la ligne 2 = la cellule de la ligne 3,

alors il va sur la colonne B, si la cellule de la ligne 2 est différente de la cellule de la ligne 3,

Donc il va redémarrer le collage après la ligne avec la bordure (ici en ligne 11 voir fichier)

Sinon SI

Sur la colonne A, si la cellule de la ligne 2 est différente la cellule de la ligne 3, alors il va lancer l'impression de la page de l'onglet "impression" en demandant avec un msgbox OUI ou NON nous souhaitons lancer l'impression.

En sachant, avant d'imprimer, en E1 Onglet "impression", la date doit être la date au plus tôt selon la colonne G et I.

Une fois que la page est imprimée il va continuer en boucle les lignes suivantes jusqu'à la fin.

Normalement, les données que je dois imprimer pour la première feuille ce sont exclusivement les données des lignes ayant le pack coulée 1 (voir Onglet "resume" colonne A), puis la boucle de remplissage se refait, je dois imprimer à la suite les données ayant le pack coulée 2 et ainsi de suite

Je vous ai mis sur le fichier sur l'onglet "impression" ce que je suis censé imprimer quand la macro est réalisé pour la première boucle.

J'espère avoir été explicite sur ce que je demande et que cela vous soit possible de réaliser.

En tout cas, je remercierai infiniment la personne qui pourra répondre à mon besoin.

Bien à vous

Namco

15impressions.xlsx (20.07 Ko)

Salut,

Je trouve ta manière d’expliquer les choses très personnelle – tu n’utilises pas les références habituelles aux objets Excel - et hyper emberlificotée.

Je veux malgré tout tenter de t’aider et de propose d’y aller étape par étape.

Essaie de t’inspirer de mon texte ci-dessous pour continuer la discussion et utilise la numérotation de mes questions afin d’y répondre.

J’ai compris que tu veux traiter les données par bloc, en fonction de la numérotation de la colonne A de la feuille ‘’resume’’. Ainsi, pour ta première page à imprimer, tu traites les données des lignes 2 à 12 de la feuille ‘’resume’’ car il s’agit d’un seul et même ‘’Pack coulé’’, selon le numéros inscrit dans la plage A2:A12 de cette feuille. Si ceci est bien correct, je comprends que sur la deuxième page à imprimer, on va traiter les lignes 13 à 16 de la feuille ‘’resume’’ car il y a le chiffre 2 dans la colonne A, etc. Question 1) Si ceci est bien exact, comment traiter les données de la ligne 43 ? Le ‘’Pack coulé’’ 4q est il un pack à lui tout seul ou fait-il partie du pack 4 ?

Tu dis que si pour un même pack, il y a le même ‘’Pack Rgbt’’ dans la colonne B de la feuille ‘’Resume’’, il faut grouper ces données sur la feuille ‘’impression’’. Ainsi j’ai compris que pour les lignes 6 à 8 de la feuille ‘’resume’’, comme il y a toujours le ‘’Pack Rgbt’’ 5 dans la colonne B, ces trois objets ont été regroupés aux lignes 29 à 31 sur la feuille ‘’impression’’. Question 2) Mais alors, pourquoi les lignes 11 et 12 de la feuille ‘’resume’’ sont regroupées aux lignes 47 et 48 de la feuille ‘’impression’’, puisque le ‘’Pack Rgbt n’est pas identique ? Est-ce une erreur de ta part ou n’ai-je pas compris ta logique ?

Question 3) C’est bien correct que lorsque les données du ‘’Pack coulée’’ 1 sont imprimées, les données des lignes 5 à 9, 11 à 15, 17 à 21, etc. de la feuille ‘’impression’’ doivent être effacées afin de laisser la place aux données du ‘’Pack coulée’’ 2 et ainsi de suite ?

Question 4) En ce qui concerne le date dans la cellule E1 de la feuille ‘’impression’’, tu dis qu’il faut aller voir dans la colonne G de la feuille ‘’resume’’ s’il y a une date d’inscrite - dans ce cas il faut l’inscrire en E1 de la feuille ‘’impression’’ - autrement il faut prendre la date de la colonne I. Mais que ce passe-t-il – comme pour ta ‘’Pack coulée’’ 1 – lorsqu’il y a une date dans la colonne G au bout de quelques lignes (dans cet exemple en G4) et qu’il y a plusieurs dates dans la colonne I (dans cet exemple dans la plage I2:I12) ?

Il y aurait encore beaucoup d’autres questions à poser, mais allons-y par étape.

A te relire.

Bonjour Yvouille,

Pour débuter, je te remercie d'avoir pris part à mon problème. Je m'excuse également sur la manière d'expliquer les choses, je tâcherai de faire de mon mieux pour te répondre et expliquer les choses.

Pour la référence habituelle, je suis navré , je pensais avoir cliqué sur les bonnes références.

Oui je veux traiter les données par bloc en fonction de la numérotation de la colonne A, feuille "resume". Pour la première page à imprimer, la deuxième et ainsi de suite c'est bien la logique expliquée dans tes propos.

Question 1) Si ceci est bien exact, comment traiter les données de la ligne 43 ? Le ‘’Pack coulé’’ 4q est il un pack à lui tout seul ou fait-il partie du pack 4 ?

Réponse 1) Le "Pack coulé" 4q de la ligne 43 est un pack tout seul. Si la valeur est différente des autres alors c'est un pack à lui tout seul.

Question 2) Mais alors, pourquoi les lignes 11 et 12 de la feuille ‘’resume’’ sont regroupées aux lignes 47 et 48 de la feuille ‘’impression’’, puisque le ‘’Pack Rgbt n’est pas identique ? Est-ce une erreur de ta part ou n’ai-je pas compris ta logique ?

Réponse 2) Tu as tout à fait saisie la logique des choses, c'est une erreur de ma part sur le copie colle des données.

Je te remet en PJ le fichier avec les bonnes données et le bon nombre de cellules.

Question 3) C’est bien correct que lorsque les données du ‘’Pack coulée’’ 1 sont imprimées, les données des lignes 5 à 9, 11 à 15, 17 à 21, etc. de la feuille ‘’impression’’ doivent être effacées afin de laisser la place aux données du ‘’Pack coulée’’ 2 et ainsi de suite ?

Réponse 3) Oui c'est bien cela, il faudra les effacer pour laisser places aux données du "Pack coulee" 2 et ainsi de suite.

Question 4) En ce qui concerne le date dans la cellule E1 de la feuille ‘’impression’’, tu dis qu’il faut aller voir dans la colonne G de la feuille ‘’resume’’ s’il y a une date d’inscrite - dans ce cas il faut l’inscrire en E1 de la feuille ‘’impression’’ - autrement il faut prendre la date de la colonne I. Mais que ce passe-t-il – comme pour ta ‘’Pack coulée’’ 1 – lorsqu’il y a une date dans la colonne G au bout de quelques lignes (dans cet exemple en G4) et qu’il y a plusieurs dates dans la colonne I (dans cet exemple dans la plage I2:I12) ?

Réponse 4) S'il y a une date en colonne G de la feuille "resume" (dans mon exemple en G4), on choisie cette date. Je dis, on choisie cette date car normalement sauf erreur du système, cette date est toujours la date au plus tôt. Le but est de prendre la date au plus tôt contenu dans le "Pack coulee" 1, puis "Pack coulee" 2 et ainsi de suite. Je pense que les dates sur la colonne I de la feuille "resume" sont toujours supérieures aux dates de la colonne G de la feuille "resume". Par contre s'il y a plusieurs dates différentes sur la colonne G de la feuille "resume" du même "Pack coulee", il faut prendre la date au plus tôt. Si dans le "Pack coulee" qui est en train de traiter, il n'y a pas de date mentionnée sur la colonne G de la feuille "resume", il va chercher parmi les dates proposées de la colonne I de la feuille "resume" et choisie la date au plus tôt et colle cette dernière sur la cellule "E1" de la feuille "impression".

En somme, s'il y a une date en colonne G de la feuille "resume", il choisie cette date. S'il y a plusieurs dates en colonne G de la feuille "resume", il prend la date au plus tôt soit le min. S'il n'y a pas de date en colonne G de la feuille "resume", il va choisir la date au plus tôt dans la colonne I de la feuille "resume" pour ainsi remplir la cellule E1 de la feuille "impression".

Question 5) Est-ce que tu avais vu que le copie colle des données sur la feuille "impression" se faisait toujours après les lignes avec des bordures ? Il y a toujours 5 cases de libres après les lignes avec bordure.

J'espère avoir pu répondre clairement à tes questions. Mais tu as tout à fait saisie la logique de cette macro.

Merci par avance de ton aide ^^.

Namco

14impressions.xlsx (19.11 Ko)

Salut,

Je pense avoir fait un bon pas en avant.

Dans le fichier ci-joint, j’ai ajouté un bouton ‘’Impression’’ sur la feuille homographe et tu pourras tester l’avancée.

Concernant ta question 5, j’avais bien compris cela, puisque à ma question 2 je te parle de regroupement aux lignes 11 et 12, 29 à 31, etc.

En réponse à ma question 1, comme il te manquait un ‘’groupe de lignes’’ sur la feuille ‘’impression’’, tu en a simplement rajouté un manuellement aux lignes 52 à 57. Tu as donc maintenant 9 groupes de lignes à la place des 8 groupes précédemment. Mais s’il se peut qu’il y ait la nécessité de plus de 9 groupes de lignes, rien n’est prévu dans mon code.

Question 6) Est-il dont possible qu’il y ait plus de 9 groupes de lignes ?

Concernant la feuille ‘’impression’’

En C1, comme j’ai pensé que cette information devait être actualisée en fonction de la date en E1, j’ai mis une formule qui indique l’année de E1 ainsi que le numéro de semaine de cette même date. La fonction NO.SEMAINE() est un peu différente de la fonction NO.SEMAINE.ISO(), par exemple pour la numérotation des semaines en début d’année, et il se peut que tu préfères l’une à l’autre. De plus, je présume que chacune des ces deux fonctions propose des variantes, donc à toi de chercher un peu. Et si ce n’est absolument pas ce que je pensais, remets donc ton texte en place.

Pour la date en E1, ma macro cherche la première date dans les colonnes G et I de la feuille ‘’resume’’ pour le bloc de lignes concerné par le ‘’Pack x’’. Si tu avais donc une date plus ancienne dans la colonne I que celle indiquée dans la colonne G, c’est cette plus ancienne date qui serait prise.

En G1 et I1, je pense avoir trouvé ce que tu souhaitais. A contrôler.

Tu n’as pas partout la même mise en forme sur cette feuille. Par exemple la plage C5:I5 est en italique alors que les autres cellules en-dessous ne le sont pas.

Concernant la feuille ‘’resume’’

A la ligne 39, tu as une ligne ‘’(vide)’’ (donc cette ligne n’est pas vide pour Excel ). S’il fallait ignorer ce genre de lignes, il faut me l’indiquer. Pour l’instant, une feuille est imprimée également pour ce ‘’Pack’’.

Ma macro tourne tant qu’elle ne trouve pas le texte ‘’Total général’’. Il faut donc absolument que ce texte se trouve dans la colonne A à la toute dernière ligne de cette feuille. Sinon on devra trouver une autre solution.

Voilà, j’espère n’avoir rien oublié. J’attends ton retour, notamment pour la question 6.

Chaleureusement.

10impressions-v1.xlsm (31.11 Ko)

Salut Yvouille,

Je ne sais pas quoi dire, c'est juste magnifique ce que tu as fait ^^.

Tu as répondu à toute mes problématiques.

Question 6) Est-il dont possible qu’il y ait plus de 9 groupes de lignes ?

Réponse 6) Il se peut que cela aille jusqu'à 11 groupes de lignes mais cela m'étonne beaucoup. En tout cas, ce que je peux faire, c'est réduire le nombre de groupe de lignes sur la feuille "impression", au lieux de laisser 5 lignes vides après la ligne en bordure, je mettrais 4 lignes pour tout contenir sur la même page.

Concernant la feuille ‘’impression’’

C'est parfait niveau date, j'ai vérifié.

Oui je n'ai pas encore mis en forme, j'attendais le tout pour le faire.

Concernant la feuille "resume" La ligne n°39 de la feuille "resume" , il y a écrit (vide).

Cette information risque d'être présente, car le tableau est un tableau de croisée dynamique à l'origine. Le fichier que j'ai fourni est un copier coller des informations que j'ai récupéré sur mon fichier original. Je pense qu'il faudra inclure l'information. Si (vide) alors passer à la suivante ou ne pas comptabiliser.

Oui le texte "Total général" sera présente car mes données suivent la forme du tableau croisée dynamique ^^.

Question 7) Au moment de cliquer sur le bouton impression, peut-on actualiser les données de la feuille "resume" avant que la macro fasse ce que j'ai demandé ?

Question 8) Est-ce possible de me marquer dans la programmation des commentaires pour que je puisse comprendre ton programme (si cela est trop demandé, ce n'est pas grave, j'essayerai de me débrouiller pour comprendre, c'est juste au cas ou je dois modifier quelques choses, je ne vienne pas t'embêter davantage pour m'aider, tu en as déja beaucoup fait ^^)

J'ai pris l'initiative de changer Sheets("impression").PrintPreview au lieu de Sheets("impression").Printout comme tu l'as mis.

Voici en PJ le fichier.

En tout cas, merci encore pour ta grande aide ^^

Namco

Re Yvouille,

Je viens d'apercevoir un problème.

Quand j'ai actualisé mon tableau de croisé dynamique, sur la colonne "Pack Rgpt", il est apparu 8 valeurs identiques au lieu de 5.

Question 9) Sais-tu si je peux ajouter 3 lignes de plus dans la feuille "impression" pour que cela fasse 8 lignes d'espace libres au lieu de 5 lignes après les bordures ?

Question 10) Si question 9 = OUI, est-ce possible de voir Si c'est au delà de 9 "Pack coulee", il me recale le reste sur un autre onglet avec le même format pour avoir l'impression des 2 feuilles du même pack coulee. On aura une feuille d'impression avec 1 pack coulee et la suite du pack sur une deuxième feuille, genre Feuille 1/2 et Feuille 2/2 ?

Si ce n'est pas possible tout cela, je vais essayer de trouver un autre moyen.

Merci pour ton retour ^^

Namco

J’ai transformé ma macro afin que ça n’imprime pas si le texte en colonne A de la feuille ‘’resume’’ est ‘’(vide)’’.

Je ne comprends pas l’idée de choisir un aperçut d’impression plutôt que l’impression immédiate : lorsque l’aperçut est visible à l’écran, tu ne peux de toute façon pas modifier la feuille concernée !

Il y aurait une possibilité de gagner de la place tout en prévoyant les choses en grand. Je m’explique : Il faudrait que tu puisses dire avec assez précision quel est le maximum de ‘’Pack’’ qu’il peut y avoir en colonne A de la feuille ‘’resume’’ (tu as indiqué un maximum de 11 groupes de lignes) et qu’on en compte quelques-uns de plus pour la sécurité. Il faudrait en plus que tu puisses dire avec assez de précision le maximum possible de valeurs identiques ‘’Pack Rgbt’’ (tu as indiqué qu’il pouvait y avoir 8 valeurs) et qu’on en compte quelques-uns de plus pour la sécurité.

On modifierait alors la feuille ‘’impression’’ en fonction de ces nouvelles valeurs et un complément de macro masquerait soit les lignes inutiles d’un groupe, soit les groupes inutilisés dans leur entièreté. Ceci économiserait énormément de place et je pense qu’une impression sur deux pages serait alors inutile. Si non, on verra plus tard afin d’imprimer sur deux pages.

Les modifications de la macro en fonction de ces modifications de la feuille ‘’impression’’ sont assez conséquentes. Il vaudrait donc mieux partir sur une base exagérée plutôt que d’être trop vite à nouveau coincé. Si je te propose 20 groupes de 20 lignes, est-ce que ça te parait suffisant ? Dans le fichier ci-joint, la feuille ‘’impression’’ a des lignes masquées comme le serait la page avant l’impression (j’ai laissé une ligne vide à la fin de chaque groupe pour plus de clarté).

Afin d’afficher les lignes masquées, tu cliques sur le triangle à l’intersection des numéros de lignes et de colonnes de la feuille (ça sélectionne toutes les cellules) puis tu fais un clic-droit sur un numéro de ligne et tu choisis l’option ‘’Afficher’’.

Pour ta question 7, je répondrais non ! Une fois que la macro est lancée, on ne peut plus l’arrêter. Si tu dois modifier quelque chose entre le moment où la feuille ‘’impression’’ a été préparée et son impression, je ne vois qu’une possibilité : au lieu d’imprimer chaque feuille, on en crée une copie. Puis tu reprends les feuilles ainsi nouvellement créées, tu les modifies puis les imprimes manuellement. Il faudrait alors encore supprimer ces feuilles nouvellement créées afin de ne pas en avoir 36000 au bout d’un moment.

Mais si ce que tu souhaites modifier de cette manière peut être résolu par macro, alors ça vaut la peine de le faire.

Question 8 : c’est très difficile de réaliser ton souhait. Ne sachant pas ton niveau en VBA, si je commence à commenter mes codes, je vais en faire soit trop, soit pas assez. Il vaut donc mieux que tu me poses les questions que tu souhaites, ce sera plus ciblé. De toute façon, dans un premier temps, tant que ton fichier ne tourne pas correctement, je n’aime pas trop que tu modifies des choses de ton côté et moi du miens. Autrement je ne sais pas tout ce que tu as modifié et ça peut rapidement être très embêtant. Pour l’instant, je pars donc toujours de la dernière version fournie afin de t’en proposer une nouvelle. Cette fois, je t’envoie la Version 2 (_V2).

Laisse-toi bien le temps de réfléchir à tous avant de répondre. Ca évite des compléments qui contredisent les premières réponses.

Le nom exact de l'objet Excel dont tu parles est ''Tableau croisé dynamique" et non pas ''Tableau de croisé dynamique"

10impressions-v2.xlsm (31.20 Ko)

Salut Yvouille,

Merci encore pour ton aide.

Pour l'aperçu d'impression

L'idée c'est de visionner la page à imprimer avant impression. Et mettre après chaque page à imprimer un msgbox avec option Oui ou Non, Oui cela imprimer, Non il passe au suivant.

Concernant le pack coulee et Pack Rgpt

On peut partir de 15 pack de chaque. 15 coulee et 15 Rgpt.

Ca serait génial de faire ce que tu m'as décrit.

Contrainte

Il me faudrait garder des lignes fixes qui ne bougeront pas, je parle des lignes avec bordures de la feuille "impression", je dois mettre des infos sur ces cellules qui sont liées à d'autres onglets.

Par Exemple : La ligne n° 20 avec bordure ne doit pas devenir la ligne n° 21.

Au niveau du fonctionnement de la macro.

Sur la feuille "impression", on mettra 20 lignes bordures (pour le nombre de "Pack Rgpt" ) et Apres chaque ligne avec bordure, il faut mettre 15 lignes libres (pour prevoir le nombre de valeurs identiques dans "Pack Rgpt") . Comme tu as bien expliqué,

On modifierait alors la feuille ‘’impression’’ en fonction de ces nouvelles valeurs et un complément de macro masquerait soit les lignes inutiles d’un groupe, soit les groupes inutilisés dans leur entièreté. Ceci économiserait énormément de place et je pense qu’une impression sur deux pages serait alors inutile.

Je n'avais pas envisagé cette solution mais c'est vraiment bien pensé de ta part.

C'est super !!! Seront affichées que les lignes ayant des informations, les autres vides seront donc masquées quand la macro est lancée (aussi bien les lignes bordures libres que les lignes laissées libres après.).

Je précise pour information qu'à l'intérieur des cellules des lignes avec bordures, les seules cellules avec des formules et informations sont les cellules de F à I. Les cellules de A à E seront vides. Je ne sais pas si cette information te sera d'une aide mais ne sait-on jamais

Franchement ta proposition est extra.

Je pense que si tu ajoutes juste la fonction affichage et cachées des lignes en fonction des données à apparaitre selon les informations de la feuille "resume" sur la feuille "impression". Tout sera résolu, il n'y aura plus aucun problème sur le fonctionnement de l'outil.

Réponse 7)

Aucun problème, je comprends.

Réponse 8)

Oui tu as bien raison, faisons comme tel. Je te poserait les questions en fonction du besoin.

Je ne changerais rien sur le fichier comme ça s'il y a des erreurs tu pourras les repérer plus facilement.

J'attendrais donc la version V3 si tu es toujours d'accord.

Merci beaucoup pour ton aide !!!!

Namco

Salut,

Effectivement que si tu veux choisir quelle page tu imprimes ou non, l’aperçu avant impression fait sens. J’ai donc mis l’instruction proposée de ta part dans le fichier ci-joint. Cependant je ne saurais pas réaliser ton idée de MsgBox ‘’Oui’’ ou ‘’Non’’ pour l’impression. Mais comme tu peux choisir – lorsque l’aperçu est ouvert – si tu veux imprimer ou non (en cliquant sur ‘’Fermer l’aperçu avant impression’’), ça revient au même.

capture

Dans le fichier ci-joint, j’ai, comme indiqué de ta part, placé 15 groupes de 15 lignes. Bizarrement, le premier Pack est préparé assez rapidement chez moi et le premier aperçu avant impression apparaît rondement. Mais je ne comprends pas que les suivants – pour lesquels le travail de ma macro est exactement le même – sont beaucoup plus lents. Sur ma machine, le prochain aperçu avant impression apparaît seulement après 1 à 2 minutes.

Je te prierais alors de bien vouloir tester mon travail sur ta machine et de me faire savoir comment ça va chez toi – si c’est aussi lent - et/ou de me dire si c’est acceptable que ça aille si long, le cas échéant.

Il me faudrait garder des lignes fixes qui ne bougeront pas,

Si tu avais bien observé mon fichier exemple avec des lignes masquées, tu aurais dû voir que la ligne x ne change jamais de numéro ; les lignes sont masquées ou non, mais toujours bien présentes et au même endroit.

Sur la feuille "impression", on mettra 20 lignes bordures (pour le nombre de "Pack Rgpt" ) et Apres chaque ligne avec bordure, il faut mettre 15 lignes libres (pour prevoir le nombre de valeurs identiques dans "Pack Rgpt") .

On peut partir de 15 pack de chaque. 15 coulee et 15 Rgpt.

Ces deux instructions se contredisent, mais je l’ai remarqué trop tard. Comme j’étais parti sur une base 15/15, je n’ai plus modifié.

Question-Réponse 7) En fait, avec ce système, la macro s’arrête provisoirement – le temps que tu consultes l’aperçu avant impression, mais n’est jamais arrêtée. Que tu imprimes la feuille ou que tu annule l’impression, la macro continue.

Pour la mise en page de la page ''Impression'', tu as enclenché l'option ''Ajuster sur 1 page en largeur et 1 page en hauteur''. Ainsi, même si tu as 100 ou 200 lignes à imprimer, ça le sera sur une seule page, mais avec des caractères réduits. Si c'est gênant car le texte devient trop petit, on pourra trouver une solution pour imprimer sur deux pages comme discuté précédemment.

capture

Amicalement.

14impressions-v3.xlsm (38.05 Ko)

Salut Yvouille,

Concernant l'aperçu avant impression

Aucun problème, je me débrouillerai.

Concernant le nombre de groupe et ligne

15 c'est parfait. Et oui en effet, je me suis mêlé les pinceaux hihi. Désolé ...

Concernant les lignes masquées

Sauf erreur de ma part; je n'ai pas vu de lignes masquées sur la V2.

En tout cas; aucun problème. Le fichier reçu répond à ma contrainte.

Concernant le temps d'attente avant aperçu

Ne te casse pas la tête avec ça, ce n'est pas vraiment un souci. Cela me convient. Plus vite c'est toujours mieux mais bon je ne vais pas t'embêter avec ce petit détail. En tout cas, au moins tu as détecté ce problème ^^

En somme, c'est parfait ^^ et grandiose.

J'ai testé sur un ordi perso mais non celui du boulot, je pourrais te dire cela en début de semaine sur la machine prévue. Si tu n'as aucun retour, considère que tout est OK ^^. Je vais toutefois clôturer en RESOLU la discussion. ^^

Encore Merci Yvouille le Bon Samaritain hihi

A+

Benam

Je pense pouvoir clôturer cette discussion.

Concernant l'aperçu avant impression

Aucun problème, je me débrouillerai.

Tu dis que tu te débrouilleras, mais les outils Excel répondent exactement à ton attente, non ?

Concernant les lignes masquées

Sauf erreur de ma part; je n'ai pas vu de lignes masquées sur la V2.

Effectivement, j'ai dû ''merder'' un peu au moment de l'enregistrement de la version exacte que je voulais t'envoyer

Si tu n'as aucun retour, considère que tout est OK

D'accord, à la prochaine.

Bonne continutation

Salut Yvouille,

Oui les attentes de l'outil excel répondent à mes attentes, c'est la raison pour laquelle j'ai dit que je me débrouillerai hihi ^^

Je n'ai pour le moment aucune requête qui devrait me pousser à te solliciter autant ^^ Tu as répondu à toutes mes attentes

En tout cas merci du fond du coeur pour ton aide si précieuse ^^

Namco

Bonjour Yvouille,

Comme discuté dans mon précédent mail, je devais revenir vers toi s'il y avait un problème.

1er problème : Je me suis aperçu que les données ne se supprimaient pas comme prévu. En effet, si un "pack coulee" fait 11 lignes et que le suivant en fait que 4 sur la feuille "resume", Sur la première impression tu as les 11 lignes du premier "pack coulee" et la deuxième impression tu as les 4 lignes du prochain "pack coulee" ainsi que les 8 autres du précédent. Normalement, je ne suis censé n'avoir que 4 lignes (soit 4 valeurs du "pack Rgpt").

2e problème : Les valeurs n'apparaissent pas correctement

Sur 1er pack coulee tu as 11 lignes, le deuxième 4 lignes, le troisième 11 lignes.

La première impression du pack coulee 1 = OK

La deuxième impression du pack coulee 2 = les 4 lignes apparaissent mais garde celle de la précédente

La troisième impression du pack coulee 3 = Sur ce "pack coulee" tu as un "pack Rgpt" identique (N°19), et je vois le "no_of" 190490181 mais pas ce "no_of" 190490182 sur la même ligne.

Voila ce que j'ai remarqué.

Encore une fois, merci par avance de ton aide,

Namco

Salut,

Je n'avais pas poussé mes tests assez loin et n'avais pas remarqué ce problème Celui-ci devrait maintenant être résolu

Je parle bien du problème, car selon moi il s'agit d'un seul et même problème.

Cordialement.

Salut Yvouille,

Oui tu as tout à fait raison, ce n'était qu'un problème. Tout est résolu

Question 10) Simplement si tu as le temps de le faire, sinon ne le fait pas du tout. Ce n'est qu'une dernière demande.

Sur la partie suppression des données :

For i = 5 To 229 Step 16

Worksheets("impression").Range("A" & i & ":I" & i + 14).ClearContents

Next i

Peut-on faire un clearcontents de la cellule A à F et H à I puis laisser la colonne G libre ? J'aimerai mettre une formule manuelle sur ces cellules G4:G243.

Merci beaucoup Yvouille

Namco

Si je t'ai bien compris, tu ne veux pas effacer les données de la colonne G, mais uniquement des colonnes A à F et H à I.

Tu dois donc remplacer la ligne entre For i = 5 To 229 Step 16 et Next i par :

Worksheets("impression").Range("A" & i & ":F" & i + 14 & " , H" & i & ":I" & i + 14).ClearContents

Amicalement.

Salut Yvouille,

Oui c'est bien cela.

Merci beaucoup pour toi ^^

Tout est nickel !!!

Namco

Salut Yvouille, Bonjour le Forum

Je me permets de relancer le post.

En effet, je voulais obtenir une information sur certaines lignes, et je me rends compte que les informations n'apparaissent pas.

Je me suis permis d'ajouter 2 colonnes en N et O sur l'onglet resume.

J'ai ajouté 2 lignes de codes vba pour faire un copier coller des données de l'onglet resume vers l'onglet impression.

 
 Sheets("impression").Range("J" & Compteur_1 + Compteur_2) = .Range("N"& i) 
 Sheets("impression").Range("K" & Compteur_1 + Compteur_2) = .Range("O"& i) 
 

1) Les données de la colonne N et O de l'onglet resume n'apparaissent pas toutes sur les colonnes J et K de l'onglet impression. Si vous lancer directement la macro en cliquant sur le bouton impression, vous verrez que sur la ligne 5, en colonne J et K, il n'y a rien alors qu'il y est censé contenir des informations sur ces cellules.

En effet, à partir du 2ème Pack Rgbt, tout apparaît comme il le faut.

Pour rappel rapide :

Onglet resume :

Colonne A chaque chiffre identique représente un bloc, dans ce bloc apparaît des sous-blocs (colonne B), dans ce sous-bloc contient des regroupements si valeur identique. Chaque sous-bloc est réuni ensemble et copier coller sur l'onglet impression.

Je remets le fichier en question avec l'apparition des 2 lignes de codes que j'ai ajouté. Je n'arrive pas à comprendre pourquoi.

Merci par avance de votre aide,

Namco

Salut,

Ce sujet est assez ancien (tout est relatif, mais effectivement que je ne me souvient plus de tout et je n'ai pas trop cherché à re-comprendre non plus) et je ne sais plus pourquoi j'ai placé le remplissage de la première ligne - la ligne 5 - séparément, mais c'est comme ça et puis c'est tout

Alors, si tu as bien complété la partie de la macro qui rempli les lignes suivantes, tu dois encore modifier la partie s'occupant de la ligne 5.

J'ai tenté la modification ci-dessous (les deux lignes de code après ''Rajout nécessaire'') mais ne l'ai pas testée. A toi de le faire.

    Sheets("impression").Range("E1") = Application.WorksheetFunction.Min(.Range("G" & Première_Ligne & ":G" & Dernière_Ligne), .Range("I" & Première_Ligne & ":I" & Dernière_Ligne), .Range("G" & Première_Ligne & ":G" & Dernière_Ligne))
    Sheets("impression").Range("G1") = .Range("H" & Première_Ligne)
    Sheets("impression").Range("I1") = .Range("F" & Première_Ligne)
    Sheets("impression").Range("A5") = .Range("C" & Première_Ligne)
    Sheets("impression").Range("C5") = .Range("M" & Première_Ligne)
    Sheets("impression").Range("E5") = .Range("K" & Première_Ligne)
    Sheets("impression").Range("I5") = .Range("D" & Première_Ligne)

    ' Rajout nécessaire
    Sheets("impression").Range("J5") = .Range("N" & Première_Ligne)
    Sheets("impression").Range("K5") = .Range("O" & Première_Ligne)

Amicalement.

13impressions-v7.xlsm (39.23 Ko)

Salut Yvouille,

Oui Cela fonctionne correctement.

Merci beaucoup pour ton aide.

Namco

Rechercher des sujets similaires à "copier coller valeurs condition impression page"