Bonjour,
Je vous présente l’objet de ma demande:
J’utilise un fichier excel qui contient plusieurs onglets, et parmi ces onglets l’un d’entre eux rassemble les informations d’une multitude de ces onglets dans un tableau récapitulatif (à partir de formules basiques).
Selon les différents critères remplis dans les autres onglets, certaines lignes du tableau sont automatiquement masquées par une macro.
Jusqu’ici tout fonctionne bien.
Ce que je souhaite pouvoir faire, c’est exporter certaines lignes de ce tableau vers un nouveau classeur Excel, en respectant les conditions suivantes :
- Seules les lignes “visibles” doivent être exportées
- Le format du tableau doit être conservé dans le nouveau classeur Excel
- Je souhaite exporter les données sous forme de valeur dans le nouveau tableau Excel (et non les formules qui permettent de calculer ces valeurs)
- L’enregistrement du nouveau classeur doit être obligatoirement effectué en format “Excel 97-2003 .xls” (SaveAs Filename:=xxx, FileFormat:=56)
- dans l’ideal, l’enregistrement du fichier serait automatique sans intervention de l’utilisateur.
De mon côté, j’ai déjà commencé à imaginer ça :
Option Explicit
Sub toto2()
Dim nom As String
Dim Export As String
nom = "test.xls"
Export = ActiveWorkbook.Name
Application.Workbooks.Add
With Workbooks(Export).ActiveSheet.Cells.SpecialCells(xlCellTypeVisible)
.Copy
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Application.DisplayAlerts = False
Workbooks(Export).SaveAs nom, 56
Application.DisplayAlerts = True
End Sub
Mais la fonction échoue au moment de la fonction PasteSpecial.
Des avis ?
Merci