Export du contenu d'un fichier Excel vers un autre
Bonjour à tous,
Je vous présente le problème.
Je travailles actuellement sur un fichier Excel qui comprend plusieurs Sheets.
Dans ce fichier, il y a plusieurs macro de filtrage en VBA.
L'objectif est de copier le contenu du fichier d'origine vers un nouveau fichier en conservant le format mais en ne gardant que les données non filtrées (c'est à dire en excluant toutes les données en Visible = 0).
Pour cela j'ai fait une macro qui fonctionne seulement quand des Sheets sont cachées mais quand des lignes ou colonnes sur certaines Sheets sont cachées, j'ai un soucis de mémoire qui apparait : "la mémoire est insuffisante pour effectuer cette action" (je suis sous Excel 32 bits).
Le fichier n'est pas lourd au point d'atteindre les limites de Excel (du moins je ne pense pas). Du coup je pense que c'est un soucis dans mon code.
Voici mon code :
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
| Sub fonction_de_copie()
Dim name As String
Dim Export As String
Dim newWorkbook As Workbook
Dim tab_Count As Integer
Dim itab As Integer
name = "Nom_du_fichier.extension"
Export = ActiveWorkbook.Name
tab_Count = ActiveWorkbook.Sheets.Count
Set newWorkbook = Workbook.Add
For itab = 1 To tab_Count
If Workbooks(Export).Worksheets(itab).Visible = -1 Then
Workbooks(Export).Worksheets(itab).Cells.SpecialCells(xlCellTypeVisible).copy
newWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count())
newWorkbook.ActiveSheet.Name = Workbooks(Export).Worksheets(itab).Name
selection.PasteSpecial xlPasteAll ' l'idéal serait de pouvoir récupérer les liens hypertextes (donc de récupérer les noms donnés aux cellules si c'est possible)
Else
End If
Next itab
Application.CutCopyMode = False
newWorkbook.SaveAs name, 52
End Sub |
J'espère que vous pourrez m'aider.
Je vous remercie par avance pour vos réponses.