[VBA] [E-03] copie conforme
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:
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:
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.:D
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