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.
Voilà, vous avez tout.
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
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
Partager