Améliorer une macro d'enregistrement "save as"

Angus

XLDnaute Junior
Bonjour à tous,

Je suis débutant en programmation.

Voilà j'ai créer une macro qui export des valeurs issuent de plusieurs pages sous une feuille simple

La macro se finit par une demande d'enregistrement.

Je voudrais faire quelques améliorations:

-Conserver le format de couleur et bordure des cellules
-Ne jamais faire apparaître la feuille nouvellement créer, seulement la sauvegarder. (Pour l'instant elle apparait au moment de la sauvegarde et rest ouverte ensuite.)
-Faire commencer par [Front] le nom de sauvegarde, mais laisser à l'utilisateur le nom final et l'adresse.

Voici le code et le fichier

Code:
Private Sub front_suspension_out_but_Click()

Dim F_choice As Single

F_choice = 1

Dim copie As Workbook

Application.ScreenUpdating = False

    Worksheets("Front suspension").Range("A1:H34").Copy
    Worksheets("Double A-Arm").Range("A1").PasteSpecial 12

If F_choice = 1 Then ' Front_U Macro
    Worksheets("ARB+Ref.pts+comments").Range("A3:H9").Copy
    Worksheets("Double A-Arm").Range("A35").PasteSpecial 12
       
    Worksheets("ARB+Ref.pts+comments").Range("A34:H53").Copy
    Worksheets("Double A-Arm").Range("A42").PasteSpecial 12
End If
 
If F_choice = 2 Then ' Front_T Macro
    Worksheets("ARB+Ref.pts+comments").Range("A11:H19").Copy
    Worksheets("Double A-Arm").Range("A35").PasteSpecial 12
           
    Worksheets("ARB+Ref.pts+comments").Range("A34:H53").Copy
    Worksheets("Double A-Arm").Range("A44").PasteSpecial 12
End If
    
If F_choice = 3 Then ' Front_T_3rd Macro
    Worksheets("ARB+Ref.pts+comments").Range("A21:H32").Copy
    Worksheets("Double A-Arm").Range("A35").PasteSpecial 12
    
    Worksheets("ARB+Ref.pts+comments").Range("A34:H53").Copy
    Worksheets("Double A-Arm").Range("A47").PasteSpecial 12
End If

Set copie = Workbooks.Add(xlWBATWorksheet)
ThisWorkbook.Worksheets("Double A-Arm").Copy Before:=copie.Sheets(1)
Application.DisplayAlerts = False
copie.Sheets(2).Delete
Application.DisplayAlerts = True

Application.ScreenUpdating = True

Application.Dialogs(xlDialogSaveAs).Show

End Sub
 

Pièces jointes

  • dev_save_as.xlsm
    82.8 KB · Affichages: 54
  • dev_save_as.xlsm
    82.8 KB · Affichages: 62
  • dev_save_as.xlsm
    82.8 KB · Affichages: 63

Angus

XLDnaute Junior
Re : Améliorer une macro d'enregistrement "save as"

Oui c'est çà, merci Staple.

Code:
 fileSaveName = Application.GetSaveAsFilename("(FRONT)", fileFilter:="Fichiers excel 97 2003 (*.xls),*.xls")
 If VarType(fileSaveName) <> vbBoolean Then
 Dim Pos%, Mot1$, Mot2$
 Pos = InStrRev(fileSaveName, "\")
 Mot1 = Left(fileSaveName, Pos)
 Mot2 = Right(fileSaveName, Len(fileSaveName) - Pos)
 'Mot2 = "Front_" & Mot2
 Application.DisplayAlerts = True
 ActiveWorkbook.SaveAs Mot1 & Mot2
 
 Application.DisplayAlerts = False
 ActiveWorkbook.Close

 End If
Application.DisplayAlerts = True

Application.ScreenUpdating = True

Avec ceci, il me demande la permission d’écrasé.

Maintenant le top du top, serait qu'en cas de "Annuler" au moment de la sauvegarde, on ne tombe pas sur la dernière feuille Double A-Arm.
 

Discussions similaires