Macro excel 2003

Fermé
eko - 28 juin 2012 à 14:53
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 28 juin 2012 à 15:52
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

un P'tit coup de main SVP !
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
28 juin 2012 à 15:04
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
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 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
28 juin 2012 à 15:52
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