Macro enregistrer

adi399

XLDnaute Occasionnel
Bonjour à tous,
Problème:

je voudrais que lorsque la personne clique sur un bouton, l'écran d'enregistrer sous apparraisse dans un dossier défini, qui contient lui même plusieurs autres dossiers que viendrai selectionner manuellement la personne pour enregistrer.

Je n'arrive pas à créer une macro en automatique pour la modifier ensuite... :s
Merci d'avance de votre aide !
@+
 
Dernière édition:

RENAUDER

Nous a quitté
Repose en paix
Re : Macro enregistrer

Bonjour,
Sur le poste où tu as ce problème, Excel est il installé et associé au xls?
Si l'icône des fichiers Excel n'est pas représentée correctement là, c'est un problème d'association entre xls et le programme associé.

association1.jpg

association2.jpg
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

Oui je connais cet manipulation, excel est bien installé sur mon poste. Ce qui me parraît étrange, c'est que:
sur le fichier où j'ai installer le code avec un bouton, si j'enregistre manuellement dans mon dossier cible par fichier enregistrer-sous, cela fonctionne. mais lorsque j'utilise la macro pour enregistrer dans mon dossier cible. l'icône n'est pas le bon ( mais je peux quand meme allé sur excel en double cliquant dessus, je n'ai pas besoin de passer par "ouvrir avec"...)

Pour résumé seule l'image de l'icone n'est pas bonne. sa fonction est la même.
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

Sub EnregistrerAvecVersion()
ChDir "C:\Documents and Settings\ab\Bureau\Copie de ESSAI"
Nomfile = ActiveWorkbook.Name
If Nomfile Like "*Version*" Then
NomCourt = Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 24)
Else
NomCourt = Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 4)
End If
FileSVG = Application.GetSaveAsFilename(InitialFileName:=Nom Court & _
"-Version " & Format(Now, "dd-mm_hhmm"), _
fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Enregistrement")
ActiveWorkbook.SaveAs Filename:=FileSVG, FileFormat:=xlNormal, Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


Je pense que le problème vient de cet partie? vous me suivez toujours?? :)
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

Rebonjour !
Je reprend ma discussion!

Savez-vous pourquoi, avec le code ci-dessous, la fenêtre enregistrer sous n'apparait plus dans mon dossier "archivage" mais dans "mes documents"?
Pourtant le chemin d'accès est bon :s


Private Sub CommandButton3_Click()
Dim f As String
f = ActiveWorkbook.FullName
ChDir _
"S:\dossier\16-dossier1\Dossier2\archivage" 'chemin d'accès
FileSVG = Application.GetSaveAsFilename(InitialFileName:=Act iveWorkbook.Name, fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver fichier")
If FileSVG Then ' annule l'enregistrement
ActiveWorkbook.SaveAs FileSVG
End If
Kill f 'supprime le fichier de son emplacement initial
UserForm2.Hide
End Sub
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

ChDrive "S" m'ouvre le bon dossier donc votre réponse fonctionne

Cependant j'ai un problème "13 - incompatibilité de type" au niveau de ma ligne pour éviter l'enregistrement ("false") en cas de clique sur annuler.

Pour récapituler, mon code doit me permettre de :
-M'ouvrir la boite de dialogue enregistrer sous dans mon dossier "archivage"
-Me préremplir à la suite du nom de fichier la valeur des cellules F10 à M10 (en évitant les doublons)
-Eviter toute enregistrement en cas de clique sur annuler (false)
-Supprimer le fichier de l'emplacement initial
-Fermer la userform2


Private Sub CommandButton3_Click()
Dim f As String
f = ActiveWorkbook.FullName
ChDrive "S"
ChDir _
"S:\dossier\dossier1\dossier2\archivage"
FileSVG = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name & ([F10].Value) & ([G10].Value) & ([H10].Value) & ([I10].Value) & ([J10].Value) & ([K10].Value) & ([L10].Value) & ([M10].Value), fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver le fichier")
If FileSVG Then ActiveWorkbook.SaveAs FileSVG
Kill f 'supprime le fichier initial
End If
UserForm2.Hide 'ferme la userform
End Sub
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro enregistrer

Re,

regarde ceci :
Code:
Dim FileSVG As Variant
FileSVG = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name, fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver fichier")
If FileSVG = False Then MsgBox "actio annulée": Exit Sub
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

Merci le problème est résolu pour l'annulation.

Pouvez-vous m'aider pour l'affichage du contenu des cellules?

Mon code m'enregistre sous cette forme : Nomfichier.xlsF10G10H10I10J10K10L10M10
Et il ne me l'enregistre pas au format xls et ne m'évite pas les doublons

Je souhaiterais: Nomfichier_(F10)(G10)(H10)(etc...).xls
ou :Nonfichier_F10_G10_H10_Etc... .xls
En évitant les doublons si cela n'est pas trop compliqué par exemple si F10=G10 il ne marque qu'une seul fois la valeur.

Je continu mes recherches...

Private Sub CommandButton3_Click()
Dim f As String
Dim FileSVG As Variant

f = ActiveWorkbook.FullName
ChDrive "S"
ChDir _
"S:\dossier\dossier1\dossier2\archivage"
FileSVG = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name & ([F10].Value) & ([G10].Value) & ([H10].Value) & ([I10].Value) & ([J10].Value) & ([K10].Value) & ([L10].Value) & ([M10].Value), fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver le fichier")
If FileSVG = False Then MsgBox "action annulée": Exit Sub
Kill f 'supprime le fichier initial
End If
UserForm2.Hide 'ferme la userform
End Sub

Pour récapituler, mon code doit me permettre de :
-M'ouvrir la boite de dialogue enregistrer sous dans mon dossier "archivage"
-Me préremplir à la suite du nom de fichier la valeur des cellules F10 à M10 (en évitant les doublons)
-Eviter toute enregistrement en cas de clique sur annuler (false)
-Supprimer le fichier de l'emplacement initial
-Fermer la userform2
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

J'ai remodifié et résolu mon problème de fichier xls.

Avez-vous des pistes pour m'aider à améliorer cette partie ?:
InitialFileName:=ActiveWorkbook.Name & -([F10].Value) & -([G10].Value) & ([H10].Value) & -([I10].Value) & -([J10].Value) & -([K10].Value) & -([L10].Value) & -([M10].Value) & ".xls",

Je l'ai sensiblement amélioré mais j'ai relever deux problèmes:

-les doublons possible
-si la cellule est vide: le code m'affiche un 0 et je voudrai qu'il n'affiche rien, j'ai essayer avec If mais je nage un peux et le code devient très long!
voila mon code actuel:

Dim f As String
Dim FileSVG As Variant

f = ActiveWorkbook.FullName
ChDrive "S"
ChDir _
"S:\dossier\dossier1\Dossier 2\archivage"
FileSVG = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name & -([F10].Value) & -([G10].Value) & -([H10].Value) & -([I10].Value) & -([J10].Value) & -([K10].Value) & -([L10].Value) & -([M10].Value) & ".xls", fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver dossier")
If FileSVG = False Then MsgBox "Enregistrement annulée": Exit Sub
ActiveWorkbook.SaveAs FileSVG
Kill f
UserForm2.Hide
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Macro enregistrer

Re,

FileSVG = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Name & -([F10].Value) & -([G10].Value) & -([H10].Value) & -([I10].Value) & -([J10].Value) & -([K10].Value) & -([L10].Value) & -([M10].Value) & ".xls", fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver dossier")

sauf erreur, avec ce code tu récuperrera toujours 2 fois ".xls" dans le nom du fichier lors de l'enregistrement.... pourquoi des "-" devant les noms de cellule...
 

adi399

XLDnaute Occasionnel
Re : Macro enregistrer

J'ai rajouté le bout de code en gras qui me permet d'enregistrer avec "l'icone d'excel". C'est le problème que j'avais auparavant et non de récuperer 2 fois le xls. Maintenant ça à l'air de fonctionner...

J'ai mis des - pour pouvoir séparer le contenu des cellules visuellement dans le nom d'enregistrement du fichier :
fichier1.xls F10-G10-H10- etc..
Il y a surement d'autres solutions mais c'est celle que j'ai trouver :)

FileSVG = Application.GetSaveAsFilename(InitialFileName:=Act iveWorkbook.Name & -([F10].Value) & -([G10].Value) & -([H10].Value) & -([I10].Value) & -([J10].Value) & -([K10].Value) & -([L10].Value) & -([M10].Value) & ".xls", fileFilter:="Fichiers Excel (*.xls), *.xls", Title:="Archiver dossier")
 

Discussions similaires

Statistiques des forums

Discussions
312 100
Messages
2 085 292
Membres
102 852
dernier inscrit
Badrcola26