Macro SaveCopyAs avec options...

Fermé
infqm - Modifié par jordane45 le 1/12/2015 à 01:13
 infqm - 4 janv. 2016 à 18:12
Bonjour,
J'utilise une macro pour créer une copie du classeur :
Sub CommandButton1_Click() 'Sauvegarde de la visite
Dim nom As String
    nom = "CR Visite " & "[" & Range("C3") & "] " & "[" & Format(Date, "dd-mm-yyyy") & "]" & ".xls"
    ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\Compte-rendus visites\" & nom
    rep = MsgBox("Le compte-rendu est maintenant sauvegardé dans le dossier 'Compte-rendus visites' sous le nom : " & nom, vbYes + vbInformation, "Sauvegarde de la visite")
End Sub


Elle fonctionne bien mais :

1) le classeur source étant un .xlsm, la sauvegarde en .xls ne s'ouvre qu'avec un message d'alerte "Format différent de celui spécifié par l'extension... Voulez-vous continuer". Comment éviter ce message ? Dois-je utiliser une fonction "exporter" ?

2) si je tiens au .xls, c'est aussi parce que j'aimerai que ma sauvegarde soit dépourvue des boutons et macros du classeur d'origine. Comment faire en sorte que ma copie soit vierge des macros sources ?

3) Enfin j'aimerai ajouter une condition, pour que le fichier de sauvegarde ne soit créé que si la cellule C3 est renseignée, valeur qui rentre dans le nom du fichier sauvegarde (cf. macro plus haut). Est-ce possible ?


Merci à tous de votre aide car j'ai beau cherché sur le net, je galère...


infqm.

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
1 déc. 2015 à 01:13
Bonjour,

1 - Peut être en utilisant un
Application.DisplayAlerts=false

https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.displayalerts?redirectedfrom=MSDN

2 -
si je tiens au .xls, c'est aussi parce que j'aimerai que ma sauvegarde soit dépourvue des boutons et macros du classeur d'origine

xls est le format Excel des versions antérieures à 2007. ce format prend en compte les macros.
Pour ne pas avoir les macros.. à la limite.. il faut le mettre en .xlsx
Nb: cela ne retirera pas les "boutons" ou autres composants présents sur les feuilles.

3 -

j'aimerai ajouter une condition,
[...]
pour que e fichier de sauvegarde ne soit créé que si la cellule C3 est renseignée

Un Simple IF suffirait non ?
<code basic>

if Range("C3").value <>"" then
' ici le code de sauvegarde

End If



0
Merci beaucoup Jordane et désolé de la réponse tardive =/
Le "IF" fonctionne bien mais dès que je protège ma feuille, j'ai une erreur 400 ^^
Pour faire disparaître les bouton de macros de la feuille sur le fichier de sauvegarde, tu as une idée ?
0