Sauvegarde

Fermé
Manu - 22 nov. 2011 à 09:40
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 22 nov. 2011 à 13:34
Bonjour à Tous,
J'aurais besoin d'aide et d'avis pro...
Voilà ce que j'ai écris :

Sub sauvegarde()
Repertoire = "R:\Technique-Maintenance\Sauvegarde-Stock\"
nom = "Sauvegarde de " & ThisWorkbook.Name & " du " & Format(Now, "dd mm yyyy") & ".xls"
If Dir(Repertoire, 16) = "" Then
MkDir Repertoire
ThisWorkbook.SaveCopyAs Repertoire & nom
End If
'------------
Fichier = Dir(Repertoire)
If Date - CDate(Left(Mid(Fichier, Len(ThisWorkbook.Name) + 19, Len(ThisWorkbook.Name)), 10)) > 90 Then
If MsgBox("La date de sauvegarde de votre fichier est périmée." & vbLf & "Voulez-vous procéder à une nouvelle sauvegarde", 292, "Information") = 6 Then
Kill Repertoire & Fichier
ThisWorkbook.SaveCopyAs Repertoire & nom
End If
Else
[e13] = "Il reste " & 90 - (Date - CDate(Left(Mid(Fichier, Len(ThisWorkbook.Name) + 19, Len(ThisWorkbook.Name)), 10))) & " jour(s) avant la prochaine sauvegarde AUTO "
End If
End Sub

Lors de l'exécution le message d'erreur est :

erreur d'exécution '13'
incompatibilité de type

Le fichier cible "R:\Technique-Maintenance\Sauvegarde-Stock\" est bien vide.

Voilà, merci de votre aide.
@++
A voir également:

1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
22 nov. 2011 à 13:34
Bonjour,

Pas de problème en déclarant les variables :
Option Explicit
Sub sauvegarde()
Dim repertoire As String
Dim nom As String
Dim fichier As String

  repertoire = "R:\Technique-Maintenance\Sauvegarde-Stock\"
  nom = "Sauvegarde de " & ThisWorkbook.Name & " du " & Format(Now, "dd mm yyyy") & ".xls"
  If Dir(repertoire, 16) = "" Then
    MkDir repertoire
    ThisWorkbook.SaveCopyAs repertoire & nom
  End If
  '------------
  fichier = Dir(repertoire)
  If Date - CDate(Left(Mid(fichier, Len(ThisWorkbook.Name) + 19, Len(ThisWorkbook.Name)), 10)) > 90 Then
    If MsgBox("La date de sauvegarde de votre fichier est périmée." & vbLf & "Voulez-vous procéder à une nouvelle sauvegarde", 292, "Information") = 6 Then
      Kill repertoire & fichier
      ThisWorkbook.SaveCopyAs repertoire & nom
    End If
  Else
  [e13] = "Il reste " & 90 - (Date - CDate(Left(Mid(fichier, Len(ThisWorkbook.Name) + 19, Len(ThisWorkbook.Name)), 10))) & " jour(s) avant la prochaine sauvegarde AUTO "
  End If
End Sub
0