sauvegarder sous

  • Initiateur de la discussion nimbus le truand
  • Date de début
N

nimbus le truand

Guest
Bonjour les gens du forum,

Voici un code qui permet de ‘sauvegarder sous’ un nom avec un numéro de fichier qu’un utilisateur aura rentré. Le problème est que j’ai quelques lacunes en VBA, même dire que je suis un débutant ; mais j’ai tenté de faire quelque chose, et en voici le résultat :

Sub Sauvegarde()

' Récupère le nom du fichier sans l'extension
NomFichier = ThisWorkbook.Name 'Récupère le nom
NomFichier = Strings.Replace(NomFichier, ".xls", "") 'Enlève l'extension

' Récupère un numéro
Dim NumFichier As Integer
NumFichier = InputBox("Quel est le numéro du Fichier (entier seulement) ?")

' Sauvegarde le fichier avec le numéro sous le forme : "NomFichier NumFichier.xls"
ThisWorkbook.Activate
Application.Dialogs(xlDialogSaveAs).Show 'Et là, je sais pas comment lui donner les paramètres !!!
'
End Sub

Alors là, faites-vous plaisir :) Critiquez !!

J’attends vos réponses avec enthousiasme…

Bonne journée à vous.

Nimbus
 
Y

Yeahou

Guest
Bonjour Nimbus le truand, G.David, Le Forum

Nimbus, je te propose ce code qui utilise getsaveasfilename plutôt que Dialogs(xlDialogSaveAs).

Cordialement, A+

Sub Sauvegarde()
Dim Nom_Fichier As String, Nom_Fichier_Final As String
Dim Num_Fichier As Long
' Récupère le nom du fichier sans l'extension
Nom_Fichier = ThisWorkbook.Name 'Récupère le nom
If InStr(1, Nom_Fichier, ".", 1) > 0 Then Nom_Fichier = Left(Nom_Fichier, InStr(1, Nom_Fichier, ".", 1) - 1) 'Enlève toute extension présente

' Récupère un numéro
Do
Num_Fichier = Application.InputBox(Prompt:="Quel est le numéro du Fichier (entier seulement) ?", Type:=1)
Loop Until Num_Fichier > 0

' Sauvegarde le fichier avec le numéro sous le forme : "Nom_Fichier Num_Fichier.xls"
Nom_Fichier_Final = Application.GetSaveAsFilename(Nom_Fichier & "_" & Num_Fichier & ".xls", FileFilter:="Fichiers Excel (*.Xls),*.Xls", Title:="Enregistrement") 'dialogue enregistrer sous
If Not (Nom_Fichier_Final = "Faux") Then ThisWorkbook.SaveAs Filename:=Nom_Fichier_Final Else MsgBox "Annulation, fichier non enregistré", vbInformation 'sauvegarde le fichier si pas d'annulation
End Sub
 
N

nimbus le truand

Guest
Content de faire ta connaissance G.David,

Ma question, il est vrai, est caché car il fallait comprendre :
Si vous avez des idées de codes plus rapides avec gestionnaire d’erreur, qui permettrai d’améliorer ce que je vous propose, faite moi vos propositions !!

Voilà, en espérant avoir répondu à ton message..

Bien à toi

Nimbus
 
N

nimbus le truand

Guest
Bonsoir Yeahou, G.David et tout le monde

Si bien sur que le code me va !!
Je les juste mis à ma sauce pour l’incorporer dans un gros programme mais sinon ça me va.
Seul test qui ne passe pas et le suivant :
‘toto v1.0.xls’ devient ‘toto v1_99.xls’ ; il ne supprime pas que l’extension !!

Pour moi un gestionnaire d’erreur (comme dans Java avec Try Catch Finally) permet de prévenir des erreurs éventuels du programme. Mais je pense que je rentre là dans une programmation poussée … !!

bye
 
N

nimbus le truand

Guest
Bonjour à vous tous,

Merci pour l’aide que vous m’avez apporté !!

J’ai laissé tomber ta résolution de problème Yeahou, ça fait assez compliqué pour le programmer… et y’aura pas de point dans les noms de fichiers, je l’ai noté pour les utilisateurs !!

Merci encore à tous

Nimbus
 

Discussions similaires

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet