PAPA WALKER
XLDnaute Junior
Bonjour à tous,
Je viens chercher quelques conseils ou pistes pour le point suivant.
A partir d'un fichier multi-onglet, je souhaite enregistrer la feuille courant dans un autre fichier en suivant un chemin défini.
Jusque là, j'ai pu faire et j'ai trouvé du code que j'ai pu adapter, mais se pose plusieurs points que je ne maîtrise pas:
1°) Le Fichier Source pèse 7916Ko ce qui en soi est déjà beaucoup à mon sens vu son contenu.
2°) J'ai passé des scripts différents de nettoyage sur le fichier mais sans grand succès
3°) Si je sauvegarde l'onglet seul, il pèse quasiment le même poids?
4°) Si je fais un copier coller des valeurs, oui une copie de mis en forme dans un classeur vierge, il pède à peine 10Ko
5°) il y a des images dans l'entête et si je les rajoute, on fasse à 25 ou 30 Ko donc il y a un écar considérable entre le c=fichier créé et ce qui devrait être en ne considérant que les datas et les images?
j'ai essayé les deux codes suivants
Sub ColleEtSauveII()
Dim D_WKB As Workbook, Chemin As String, NFic As String
Dim Depart, Nom, Code, NOM2
Dim S_WKB As Workbook: Set S_WKB = ThisWorkbook
Dim MaPlage As Range
Set MaPlage = S_WKB.Worksheets(1).Range("A1:W65")
Chemin = Range("Z2").Value
Depart = Range("b18").Value2
Nom = Range("d13").Value2
Code = Range("c11").Value2
NOM2 = Depart & "-" & Nom & "-" & Code & ".xls"
Application.ScreenUpdating = False
MaPlage.Copy
Set D_WKB = Workbooks.Add(xlWBATWorksheet)
With D_WKB.ActiveSheet
.Paste
With .UsedRange
.Value = .Value
End With
End With
Application.CutCopyMode = False
D_WKB.SaveAs Chemin & NOM2
D_WKB.Close True
Application.ScreenUpdating = True
End Sub
Ce code me génère un fichier de 36KO ce qui est bien, mais j'ai perdu toute la mise en page concernant les hauteurs de lignes et les largeurs de colonnes
----------------------------------------
ub copiexlsPRESTA()
Dim Chemin, Depart, Nom, Code, NOM2 As String
Chemin = Range("Z2").Value
Depart = Range("b18").Value2
Nom = Range("d13").Value2
Code = Range("c11").Value2
NOM2 = Depart & "-" & Nom & "-" & Code
ActiveSheet.Copy
With ActiveWorkbook
.Title = NOM2
.Subject = NOM2
.SaveAs Filename:=Chemin + "\" + NOM2 + ".xls"
End With
End Sub
ce code ma génèré un fichier de 7872 Ko
Le but final était de sauvegarder l'onglet actif:
1°) Dans un autre fichier en le nommant d'après de svariables
2°) De remplacer les formules par des valeurs
3°) De conserver la mise en forme de l'onglet sauvegardé
4°) De limiter la taille de la sauvegarde.
Est-ce possible?
Merci de votre attention et de vos conseils à venir.
Ma version d'Excel est la 2016
Je viens chercher quelques conseils ou pistes pour le point suivant.
A partir d'un fichier multi-onglet, je souhaite enregistrer la feuille courant dans un autre fichier en suivant un chemin défini.
Jusque là, j'ai pu faire et j'ai trouvé du code que j'ai pu adapter, mais se pose plusieurs points que je ne maîtrise pas:
1°) Le Fichier Source pèse 7916Ko ce qui en soi est déjà beaucoup à mon sens vu son contenu.
2°) J'ai passé des scripts différents de nettoyage sur le fichier mais sans grand succès
3°) Si je sauvegarde l'onglet seul, il pèse quasiment le même poids?
4°) Si je fais un copier coller des valeurs, oui une copie de mis en forme dans un classeur vierge, il pède à peine 10Ko
5°) il y a des images dans l'entête et si je les rajoute, on fasse à 25 ou 30 Ko donc il y a un écar considérable entre le c=fichier créé et ce qui devrait être en ne considérant que les datas et les images?
j'ai essayé les deux codes suivants
Sub ColleEtSauveII()
Dim D_WKB As Workbook, Chemin As String, NFic As String
Dim Depart, Nom, Code, NOM2
Dim S_WKB As Workbook: Set S_WKB = ThisWorkbook
Dim MaPlage As Range
Set MaPlage = S_WKB.Worksheets(1).Range("A1:W65")
Chemin = Range("Z2").Value
Depart = Range("b18").Value2
Nom = Range("d13").Value2
Code = Range("c11").Value2
NOM2 = Depart & "-" & Nom & "-" & Code & ".xls"
Application.ScreenUpdating = False
MaPlage.Copy
Set D_WKB = Workbooks.Add(xlWBATWorksheet)
With D_WKB.ActiveSheet
.Paste
With .UsedRange
.Value = .Value
End With
End With
Application.CutCopyMode = False
D_WKB.SaveAs Chemin & NOM2
D_WKB.Close True
Application.ScreenUpdating = True
End Sub
Ce code me génère un fichier de 36KO ce qui est bien, mais j'ai perdu toute la mise en page concernant les hauteurs de lignes et les largeurs de colonnes
----------------------------------------
ub copiexlsPRESTA()
Dim Chemin, Depart, Nom, Code, NOM2 As String
Chemin = Range("Z2").Value
Depart = Range("b18").Value2
Nom = Range("d13").Value2
Code = Range("c11").Value2
NOM2 = Depart & "-" & Nom & "-" & Code
ActiveSheet.Copy
With ActiveWorkbook
.Title = NOM2
.Subject = NOM2
.SaveAs Filename:=Chemin + "\" + NOM2 + ".xls"
End With
End Sub
ce code ma génèré un fichier de 7872 Ko
Le but final était de sauvegarder l'onglet actif:
1°) Dans un autre fichier en le nommant d'après de svariables
2°) De remplacer les formules par des valeurs
3°) De conserver la mise en forme de l'onglet sauvegardé
4°) De limiter la taille de la sauvegarde.
Est-ce possible?
Merci de votre attention et de vos conseils à venir.
Ma version d'Excel est la 2016