Bonjour à tous et à chacun,

Voilà, Je suis en possession d'un tableau excessivement imposant (en taille: nb de lignes, nb de colonnes) et je cherche à pouvoir l'éditer (entendez imprimer) par morceaux, lisibles.

Je me suis d'abord penché sur des zones d'impressions, mais c'est peine perdue: Excel interdit les "zone d'impression" multiples.

C'est donc tout naturellement, après lecture de différents discussions sur ce forum que j'ai pensé à faire une "copie temporaire" des parties de tableau m'intéressant.
Le tout, dans autant de feuille temporaire qu'il y a de tableau, puis faire imprimer automatiquement chacun de ces sous-tableaux sur l'imprimante par défaut du poste et enfin, faire supprimer automatiquement les feuilles temporaires créées pour l'occasion.

Ha! Oui! Petite précision: le déclenchement de l'opération d'édition se fait par un bouton présent sur la feuille du tableau a éditer.


Mais là où ça coince, pour l'instant c'est à cet endroit dans mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Set FL1 = ThisWorkbook.Sheets.Add
FL1.Name = FL.Name & " Edit 1"
FL.Range("AE1:BH86").Copy
'Soucis!!!! lui (l'ordi) y en a pas comprendre!
FL1.Range("A1:AC86")PasteSpecial Paste:=xlPasteFormats


Je vous joins aussi l'ensemble du squelette de ma fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
Option Explicit
 
Public Sub Editer()
 
Dim FL As Worksheet, FL1 As Worksheet, FL2 As Worksheet, FL3 As Worksheet, FL4 As Worksheet
 
'Faire un test: si autre feuille active que tableau comparatif alors désactiver les feuilles sauf le tableau.
 
'Set FL = ActiveSheet
Set FL = Worksheets("Tableau Comparatif").Name
 
 
'Je crée une copie de la feuille éditée
Set FL1 = ThisWorkbook.Sheets.Add
FL1.Name = FL.Name & " Edit 1"
FL.Range("AE1:BH86").Copy
'Soucis!!!! lui (l'ordi) y en a pas comprendre!
FL1.Range("A1:AC86")PasteSpecial Paste:=xlPasteFormats
FL1.PasteSpecial Paste:=xlPasteColumnWidths
FL1.PasteSpecial Paste:=xlValues
 
 
Set FL2 = ThisWorkbook.Sheets.Add
FL2.Name = FL.Name & " Edit 2"
 
Set FL3 = ThisWorkbook.Sheets.Add
FL3.Name = FL.Name & " Edit 3"
 
Set FL4 = ThisWorkbook.Sheets.Add
FL4.Name = FL.Name & " Edit Tout"
 
'A la place du message qui suit, je vais m'amuser à faire apparaître une msgBox avec un chtit choix (radio button)
'et si clic ok alors hop: impression des feuilles qui vont bien sur l'imprimante par défaut.
 
MsgBox ("Feuilles crées... Appuyer sur OK pour les effacer ")
 
Application.DisplayAlerts = False
FL1.Delete
FL2.Delete
FL3.Delete
FL4.Delete
Application.DisplayAlerts = True
End Sub
Voilà, vous avez tout.

En espérant que vous arriviez à me "décoincer" sur ce point.

Si il vous manque quoi que ce soit demandez le moi, de mon côté je m'y remets,

Cordialement,
JB