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

4 réponses

  1. 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
  2. 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
  3. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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