Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Doublon sur fichier sauvegarder (débutant)

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 !

sayfher

XLDnaute Nouveau
Bonjour,
J’essaye de faire une application sous vba tout marche assez bien hormis un petit voir gros souci. Je m'explique cette application a pour but de passer entre les mains de différentes personnes qui vont donc l'ouvrir et le fermer.
Mon problème est que lors de la sauvegarde du fichier sur le bureau et bien je n'ai pas le moyen pour dire qu’il n'y aura plus d'autre sauvegarde.

voila le programme :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim chemin As String

If Sheets("cellule necessaire pour F.p").Range("B6") <> "" And Sheets("cellule necessaire pour F.p").Range("B7") <> "" And Sheets("cellule necessaire pour F.p").Range("B8") <> "" Then

chemin = CreateObject("WScript.Shell").specialFolders("Desktop")
ActiveWorkbook.SaveAs chemin & "\" & Replace(Sheets("cellule necessaire pour F.p").Range("B6").Value, " ", "_") & " " & Replace(Sheets("cellule necessaire pour F.p").Range("B7").Value, " ", "_") & " " & Replace(Sheets("cellule necessaire pour F.p").Range("B8").Value, " ", "_")

End If

End Sub
Donc ici si la personne rempli l'application les cellules B6 B7 B8 vont être rempli alors il y aura sauvegarde. Mais lorsque qu'une autre personne va consulter le nouveau dossier sauvegarder et quel va le refermer, celui ci va à nouveau faire une copy sur le bureau ... Comment éviter cela ?

Merci d'avance est désolé si cela vous semble vraiment facile.

Cordialement.
 
Re : Doublon sur fichier sauvegarder (débutant)

Bonjour sayfher,

Au lieu d'utiliser SaveAs utilisez SaveCopyAS.

Ce qui permet d'ouvrir le fichier de sauvegarde puis de supprimer le code dans ThisWorkbook :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim fichier$, chemin$
fichier = "Sauvegarde.xls" 'à adapter
chemin = ThisWorkbook.Path & "\" & fichier
Application.ScreenUpdating = False
On Error Resume Next
Workbooks(fichier).Close 'si le fichier est ouvert
Me.SaveCopyAs chemin
With Workbooks.Open(chemin)
 .VBProject.VBComponents("ThisWorkbook").CodeModule.DeleteLines 1, 13
 .Close True
End With
End Sub
Fichier joint.

Nota 1 : menu Outils => Macro => Sécurité => Editeurs approuvés : la case Faire confiance au projet Visual Basic doit avoir été cochée.

Nota 2 : vous auriez fourni votre fichier j'aurais adapté votre code 🙂

A+
 

Pièces jointes

Re : Doublon sur fichier sauvegarder (débutant)

Bonjour job7 et merci,
Je voudrais savoir si a ne te dérange pas certaines chose sur les lignes que tu as écrite, pour m'amélioré et mieux comprendre le programme que je vais utiliser.
Que signifie le $ âpres chemin et fichier ?
Et que signifient ces lignes:
chemin = ThisWorkbook.Path & "\" & fichier
Application.ScreenUpdating = False
On Error Resume Next

et ça :
With Workbooks.Open(chemin)
.VBProject.VBComponents("ThisWorkbook").CodeModule.DeleteLines 1, 13
.Close True

Désolé mais j'aimerais comprendre même si ça te semble vraiment logique et normale ^^

Merci.
 
Re : Doublon sur fichier sauvegarder (débutant)

Re,

Comme vous êtes vraiment débutant en VBA je pense que vous ne comprendrez pas mes explications.

Pour aller dans VBA touches Alt+F11.

Ensuite un bon début c'est de consulter l'Aide VBA (touche F1) sur les mots ou expressions qu'on ne connaît pas.

A+
 
- 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
Microsoft 365 Code VBA
Réponses
10
Affichages
865
Réponses
3
Affichages
602
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…