Bonjour a tous,
Je viens vers vous afin de solliciter vos avis.
Mon soucis est que je souhaite faire une "sauvegarde sous" que partielle...bizarre, vous avez dis bizarre!
Premièrement, j'ai effectué nombre de recherche aussi bien sur le net que des tests(j'y suis depuis 16h00, je commence donc à soufler...).
Je vous explique, je souhaite sauvegarder mon classeur dans un dossier specifique (save as donc) mais sans avoir à renoter le nom de ce classeur (save donc).
Voici mon programme:
Dans le dossier "C:\Users\studio16\Desktop\Contrôle\Contrôle Préliminaire\Fichier De Base" j'execute mon "fichier excel de base";
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Sub Workbook_Open() Site = InputBox("Site : ") Range("B3").Value = Site Adresse = InputBox("Adresse : ") Range("C4").Value = Adresse Niveau = InputBox("Niveau : ") Range("C6").Value = Niveau Controleur = InputBox("Contrôleur : ") Range("C7").Value = Controleur MsgBox "Respetez le format de Date sous peine de creer une erreur(pas de /)", vbInformation, "Notification" 'MsgBox "Respetez le format de Date sous peine de creer une erreur (pas de " / ") !", vbCritical, "Notification" DateDeControle = InputBox("Date(jj.mm.aaaa): ") Range("J7").Value = DateDeControle On Error Resume Next 'modifie le nom du fichier en fonction des infos ActiveWorkbook.SaveAs Filename:="Controle_Preliminaire" & [B3].Value & "_" & [C6].Value & "_" & [J7].Value & ".xls" End Sub
Celui-ci se lance à l'ouverture du classeur et demande à l'utilisateur de renseigner des champs (site"B3", niveau"C6",date"J7",etc...).
Une fois cette première routine effectuée, en fonction des champs remplis, cela génère le nom du classeur (ça permet d'organiser les tableaux au fur et a mesure de leur création).
Mon problème est que si j'utilise la fonction"save" alors je garde bien le nom du classeur généré a son ouverture, mais la sauvegarde s'effectue dans "mes documents" or je souhaite que la sauvegarde est lieu dans un dossier spécifique"C:\Users\studio16\Desktop\Contrôle\Contrôle Préliminaire\Contrôles".
Donc l'utilisation de"save as" semble obligatoire...
Ce que j'aurai voulu savoir ' c'est si il est possible de faire un "save as" en gardant le nom du classeur actif.
Je modifié ce code (trouvé sur le net):création boite de dialogue utilisateur.
Mais cela ne me convient pas car trop compliqué (je ne comprends pas la moitié), et surtout je prefererai l'utilisation d'un "save" qui sauvegarderai automatique dans le fichier spécifique"C:\Users\studio16\Desktop\Contrôle\Contrôle Préliminaire\Contrôles".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub enregistrer() Dim n As Variant, newName As String, fs As Object ' par defaut, sauvegarder dans le repertoire du classeur n = ActiveWorkbook.Path & Application.PathSeparator & nomFichier ' ouvre la boite de dialogue GetSaveAsFilename n = Application.GetSaveAsFilename(n, "tous les fichiers,*.*", _ 1, "Enregistrer un fichier") If n = False Then Exit Sub ' l'utilisateur a fait "Annuler" ' le bloc ci-dessous gère l'écrasement de fichier Set fs = CreateObject("Scripting.FileSystemObject") If fs.fileexists(n) Then fs.getfile (n) newName = fs.getfilename(n) If nomFichier <> newName Then If MsgBox("Le fichier """ & newName & _ """ existe déjà. Voulez-vous le remplacer ?", _ vbYesNo + vbQuestion, _ "Remplacer un fichier existant") = vbNo Then Exit Sub End If End If ' nomFichier = fs.getfilename(n) Open n For Output As #1 '. '.<votre code d'ecriture du fichier ici> '. Close End Sub
Voila donc pourquoi je sollicite votre aide...(encore une fois).
Merci d'avance pour vos commentaires.
Cordialement
Manu
Partager