Macro excel 2003

eko -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour j'aurais besoin d'un petit coup de pouce
J'ai une macro qui permet de découper un classeur excel en plusieurs différents classeurs excel en fonction des départements et des services et de les enregistrer sur le bureaux.
J'aurais aimer savoir comment changer ma macro pour pouvoir choisir le nom des fichiers à enregistrer sur le bureaux pour qu'il corresponde aux noms des département.
Merci d'avance
Voiçi la macro :
Option Explicit

Sub test()

Dim newWbk As Workbook
Dim dossierSauvegarde As String, colonneDepartement As String
Dim i As Long, ligneDebutCopie As Long, ligneFinCopie As Long

'dossier où seraont créés les fichiers (à la racine du classeur dans l'exemple)
dossierSauvegarde = ThisWorkbook.Path

colonneDepartement = "A"

With ThisWorkbook.Sheets("Feuil1")
'trier les données de la feuille par département
.Range(.Range("A2"), .Range("A2").End(xlToRight).End(xlDown)).Sort Key1:=.Range(colonneDepartement & "2"), Order1:=xlAscending

'boucler sur chaque entrée
For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
'récupérer la ligne de la première valeur du "département traité"
ligneDebutCopie = i
'tant que la ligne suivant concerne le département traité
While .Range(colonneDepartement & i).Text = .Range(colonneDepartement & i + 1).Text
'incrémenter i (passer à la ligne suivante)
i = i + 1
Wend
'récupérer la ligne de la dernière valeur du "département traité"
ligneFinCopie = i

'créer un nouveau classeur avec une seule feuille
Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)

'copier la ligne de titre
.Rows(1).Copy newWbk.Sheets(1).Range("A1")

'copier les valeurs du "département traité"
.Rows(ligneDebutCopie & ":" & ligneFinCopie).Copy newWbk.Sheets(1).Range("A2")

'sauver le nouveau classeur
newWbk.SaveAs dossierSauvegarde & "\" & .Range(colonneDepartement & i).Text

'fermer le nouveau classeur
newWbk.Close True
Next i
End With
End Sub
A voir également:

4 réponses

eko
 
un P'tit coup de main SVP !
0
sirefalas Messages postés 260 Statut Membre 8
 
tu peux regarder dans l'aide VB en rentrant comme recherche "workbook.saveas"
il te donne tous les paramètres que tu peux mettre.
Tu as le msdn aussi si tu veux des détails
https://www.microsoft.com/en-us/download/details.aspx?id=55984

expression.SaveAs(FileName, FormatFichier, MotDePasse, MotDePasseÉcritureRes, LectureSeuleRecommandée, CréerSauvegarde, ModeAccès, RésolutionConflits, AjouterAuxDerniersFichiersUtilisés, PageCodeTexte, MiseEnPageVisuelleTexte, Local)
0
eko
 
Ok merci ! c'est déjà un début ^^
Dsl d'insister mais n'aurais tu pas une idée sur comment modifier Cet macro pour obtenir le résultat voulue ??
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
bonjour,

dans ton code
'sauver le nouveau classeur 
newWbk.SaveAs dossierSauvegarde & "\" & .Range(colonneDepartement & i).Text

si tu veux changer le nom du classeur tu peux écrire
RetFnc=Application.Dialogs(xlDialogSaveAs).Show
' cela ouvre la boite de dialogue Enregistrer Sous...
tu peux aussi contrôler les paramètres de cette fonction
avec ça (voir dans l'aide).
xlDialogSaveAs (document_text, type_num, prot_pwd, backup, write_res_pwd, read_only_rec )
0