Sauvegarde d'un fichier

  • Initiateur de la discussion Initiateur de la discussion GADENSEB
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

GADENSEB

XLDnaute Impliqué
Re Bonjour,
Pour le fichier joint je souhaiterais créer une procédure (via un bouton) pour enregistrer ce fichier :

- Dans un dossier "OLD" présent dans le mm dossier que le fichier en question
- Cette version devra (dans le dossier "OLD") se s'appeler NOTE DIAG DLA - Version X"
- Sachant que dans le dossier OLD, il peut se trouver d'autre version du fichier et donc le "X" devra s'incrémenter 1 puis 2 puis 3......

donc au final il faut :

Dossier :
- NOTE DLA DIAG enregister au plus récent
Dossier / OLD
- NOTE DLA DIAG - Version X

Est-ce clair ?

Je ne sais pas par où commencer le code !


Merci

Bonne aprem

Seb
 

Pièces jointes

Re : Sauvegarde d'un fichier

Je pars là dessus


Code:
Sub SAUVEGARDE_Cliquer()

  répertoire = ActiveWorkbook.Path & "\ OLD"
  nomFichier = "NOTE DIAG DLA"
  nf = Dir(répertoire & "\" & nomFichier & "*")
  n = 0
  Do While nf <> ""
    n = n + 1
    nf = Dir
  Loop
  ActiveWorkbook.SaveAs Filename:=répertoire & "\" & nomFichier & " - V" & n + 1


End Sub

Comment inclure :

Si le dossier OLD éxiste alors j'incrémente le N° de fichier ?
Si le dossier OLD n'éxiste pas alors je le créer et j'incrémente le n° de fichier ?

Je veux aussi que le fichier d'origine (sans numéro de version) reste ouvert
là dans cette macro le fichier sans numéro de version se ferme et c'est celui avec un numéro de version qui est à l'écran !

Merci

Bonne journée

Seb
 
Re : Sauvegarde d'un fichier

Bonjour Double zéro, GADENSEB

Voici une possibilité

Code:
Sub SAUVEGARDE_Cliquer()
Dim Répertoire As String, Nf As String, NomFichier As String
Dim N As Long
 
 Répertoire = ActiveWorkbook.Path & "\ OLD"

'Si le dossier OLD n'éxiste pas alors je le créer
 If Dir(Répertoire, vbDirectory) = "" Then MkDir (Répertoire)

'et j'incrémente le n° de fichier pour les 2 cas
  NomFichier = "NOTE DIAG DLA"
  Nf = Dir(Répertoire & "\" & NomFichier & "*" & ".xlsm")
  N = 0
  Do While Nf <> ""
    N = N + 1
    Nf = Dir
  Loop
  
'Sauvegarde une copie du fichier et ne touche donc pas au fichier en cours
  ActiveWorkbook.SaveCopyAs Filename:=Répertoire & "\" & NomFichier & " - V" & N + 1 & ".xlsm"

End Sub
 
Re : Sauvegarde d'un fichier

Veux-tu une boite de dialogue pour saisir le nom du fichier ?

Ou la boite ouvrir un fichier pour le sélectionner directement dans le dossier ?

Sinon si cela n'est pas fréquent tu peux te contenter de modifier le code ....
 
Re : Sauvegarde d'un fichier

Ben en fait je voudrais que

NomFichier = "NOTE DIAG DLA"

prenne le nom du fichier automatiquement (pas de boite de dialogue ou autre)
A la place de "NOTE DIAG DLA" je peux avoir BIBI ou BOBO ou BABA .....
 
Re : Sauvegarde d'un fichier

Si tu créer une variable public dans le module standard , tu peux ensuite l'utiliser

Dans le module standard
public NomFichierPublic as string

lors de ton traitement , tu renseignera cette variable


et donc dans le module de sortie

Nomfichier = NomFichierPublic
 
Re : Sauvegarde d'un fichier

En un peu plus détaillé
la macro démo renseigne le nom à utiliser


Code:
public Nom as string
Sub démo()
Nom =  "Machin"
End Sub


Sub SAUVEGARDE_Cliquer()
Dim Répertoire As String, Nf As String, NomFichier As String
Dim N As Long
 
 Répertoire = ActiveWorkbook.Path & "\ OLD"

'Si le dossier OLD n'éxiste pas alors je le créer
 If Dir(Répertoire, vbDirectory) = "" Then MkDir (Répertoire)

'et j'incrémente le n° de fichier pour les 2 cas
  NomFichier = Nom '"NOTE DIAG DLA"
  Nf = Dir(Répertoire & "\" & NomFichier & "*" & ".xlsm")
  N = 0
  Do While Nf <> ""
    N = N + 1
    Nf = Dir
  Loop
 
'Sauvegarde une copie du fichier et ne touche donc pas au fichier en cours
  ActiveWorkbook.SaveCopyAs Filename:=Répertoire & "\" & NomFichier & " - V" & N + 1 & ".xlsm"

End Sub
 
Re : Sauvegarde d'un fichier

Ok,

le besoin se précise ,

comme cela peut être

Code:
Sub SAUVEGARDE_Cliquer()
Dim Répertoire As String, Nf As String, NomFichier As String
Dim N As Long
 
 Répertoire = ActiveWorkbook.Path & "\ OLD"

'Si le dossier OLD n'éxiste pas alors je le créer
 If Dir(Répertoire, vbDirectory) = "" Then MkDir (Répertoire)

'et j'incrémente le n° de fichier pour les 2 cas
  NomFichier = replace(activeworkbook.name,".xlsm","")
  Nf = Dir(Répertoire & "\" & NomFichier & "*" & ".xlsm")
  N = 0
  Do While Nf <> ""
    N = N + 1
    Nf = Dir
  Loop
 
'Sauvegarde une copie du fichier et ne touche donc pas au fichier en cours
  ActiveWorkbook.SaveCopyAs Filename:=Répertoire & "\" & NomFichier & " - V" & N + 1 & ".xlsm"

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
36
Affichages
3 K
Retour