Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je découvre ce forum bien sympathique, et j'en suis ravi.
J'ai essayé de trouver - sans succès - la réponse à mon problème... je vous le soumet donc...
Je dispose d'un fichier de 50 onglets.
Sur chaque onglet je dispose de 2 zones : 'Budget' / 'Réalisé'
Je dispose également de 2 synthèses... la synthèse budget, et la synthèse réalisé (évidemment).
Bon à ce stade vous devriez avoir deviner la question...
Je souhaite imprimer toutes les zones 'Budget' de mes 50 onglets ou toutes les zones 'Réalisé' en un seul bloc de façon à avoir mon petit botin 'Budget' ou mon petit botin 'Réalisé' avec sa synthèse.
Il faudrait que tu mettes un fichier zippé moins de 50 ko, même si tu dois l'alléger (3 feuilles suffiront), afin que l'on puisse avoir une réflexion sur quelquechose de plus concret.
Car, même si l'on a déjà une idée de comment nous allons traité le problème, un support visuel et précis, nous fera gagner du temps.
j'imagine que par onglets tu veux dire 'feuilles' ?
Si c'est bien le cas et avant de poursuivre dis moi si la solution suivante te conviendrait :
- définir la plage ou la zone Budget de la feuille (chaue plage étant je présume identique entre tes 50 feuilles)
- faire de même avec la zone Réalisé
- la macro1 permettrait l'édition de la zone Budget, la macro2 l'édition de la zone Réalisé.
Avant d'aller plus loin, confirme moi que c'est bien ce que tu souhaites
Alors mon fichier actuel pèse 4 Mo... donc il faudrait que je reconstitue un truc pour l'exemple, mais peu importe je pense car Sylvie a bien cerné le problème...
50 feuilles effectivement... Peu importe leur contenu d'ailleurs : chaque feuille s'imprime sur deux pages (l'une à droite de l'autre ou l'une en dessous de l'autre peu importe), et l'objectif est d'imprimer le lot de 50 feuilles relatif à la première ou à la seconde partie des tableaux.
J'espère que ma demande est plus claire sinon je fait un petit modèle pour l'exemple. 😉
Oui ma zone d'impression est la même sur chacune des feuilles concernées...
Ta solution est interessante, je vais regarder ça... tite question quand même : comment limiter cette zone d'édition 3D, par exemple si je veux faire une édition partielle (39 onglets par exemple) ?
PS : je relis ta réponse et je me demandais, ton code c'est bien pour ta solution d'édition 3D ? Je me posais cette question car tu précises
Abel écrit:
Je crois qu'on peut nommer une plage en 3D.
...
Sinon, une autre solution...
Ce qu'il me faudrait maintenant c'est limiter l'impression à une sélection de feuilles...
du genre :
feuille 1 à 30
ou
feuille 1, 2, 3, 4, 5, ..., 30
Question : est il possible de paramétrer l'orientation du papier ?
Par exemple ma première macro lance des impressions sur un format portrait, tandis que la seconde serait un format paysage...
NB : le code utilisé est le suivant :
Sub Impression_budgets()
For Each ws In Worksheets
ws.PageSetup.PrintArea = '$P$1:$AI$60'
Next ws
ActiveWorkbook.PrintOut Copies:=1, Collate:=True
End Sub
S'il s'agit toujours des mêmes feuilles à imprimer de telle ou telle manière, range les dans l'ordre qu'il te convient dans le fichier.
Puis dans les macro, à la place de for each ws..., mets :
Code:
i = 0
For i = 1 To LeNombredeFeuilles
With Sheets(i).PageSetup
.PrintArea = 'la plage'
.Orientation = xlLandscape 'pour le format paysage
End With
Next i
ActiveWorkbook.PrintOut Copies:=1, Collate:=True
Pour l'autre format d'impression, tu fais pareil en partant de LeNomdeFeuilles + 1.
Excuse moi, je n'ai pas le temps de tester. S'il n'y a pas d'erreur, tant mieux. Sinon, la syntaxe doit tourner autour de ce que je te présente.
Regarde l'aide de VB.
Pour la question de la plage nommée en 3D, la solution macro que je présente est un ersatz pour la remplacer.
Il y a sûrement d'autres solutions.
Si les feuilles à imprimer sont réparties un peu 'n'importe où' dans le fichier, il faudra passer par une liste de choix dans un userform. Regarde les barbatrucs de Thierry, il y en a un (je ne sais plus lequel) d'il y a quelques mois où il y a un très bel exemple d'affichage des onglets dans un listbox avec sélection des onglets pour faire un traitement. Dans ton cas, de serait pour faire l'impression.
Il me semble que c'est vers le moment où on a commencé à appeler ses démo des barbatrucs.
Fais une recherche avec 'barbatruc'. Attention, liste risque d'être longue (hi hi !).
Salut Abel et encore merci pour tes réponses, surtout si tu n'a pas beaucoup de temps...
Je débute dans le domaine, je fouine pas mal sur le web pour me former, j'avance lentement ,mais surement...
J'ai quand même une question par rapport à ta remarque :
Abel écrit:
Si les feuilles à imprimer sont réparties un peu 'n'importe où' dans le fichier, il faudra passer par une liste de choix dans un userform.
Abel.[/quote]
En fait elles ne sont pas n'importe où... ce sont les feuilles 7 à 92 (j'en suis à près de 100 feuilles maintenant !)... Et les plages de feuilles seront toujours figées... donc si tu as une astuce pour sélectionner ces feuilles sans passer par une liste...
i = 0
For i = [color=#FF0000]7[/color] To [color=#FF0000]92[/color]
With Sheets(i).PageSetup
.PrintArea = 'la plage'
.Orientation = xlLandscape 'pour le format paysage
End With
Next i
ActiveWorkbook.PrintOut Copies:=1, Collate:=True ' cette instruction copie tout le classeur
Ca devrait le faire.
Abel.
ps : pas sur mon poste, d'où le visiteur. Et p'is comme ça, mon compteur avance moins vite. Arf !
lol vi bien vu évidemment... heu.. jcrois que j'y avais pensé... Nan en fait ce qui m'interesse ce serait une liste figée à l'avance par exemple : 7, 8, 9, 11, 15, 17, 18, 19 à 33, 37, 42, etc...
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.