Doublon sur fichier sauvegarder (débutant)

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.
 

job75

XLDnaute Barbatruc
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

  • Fichier source(1).xls
    38 KB · Affichages: 48
  • Fichier source(1).xls
    38 KB · Affichages: 46
  • Fichier source(1).xls
    38 KB · Affichages: 49

sayfher

XLDnaute Nouveau
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.
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Réponses
2
Affichages
176

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal