jeje77
XLDnaute Junior
Bonsoir à tous,
J'ai un petit souci qui me fait tourner en rond depuis un certain temps, j'ai adapté une macro à mon projet VBA de mon classeur mais depuis quelques jours j'ai ce message d'erreur "Erreur d'exécution '13' : type incompatible" lorsque ma macro se lance à la fermeture du fichier.
Cela fonctionnait correctement mais ce disfonctionnement est apparu lorsque j'ai transféré mon répertoire de travail pour travailler sur clé USB.
je joint la macro avec la ligne surligné en jaune (Fic = Dir(path)) c'est la que l'erreur apparait.
Si quelqu'un pouvais m'aider à comprendre ce probleme ce serait cool
Par avance merci
Cordialement jeje77
J'ai un petit souci qui me fait tourner en rond depuis un certain temps, j'ai adapté une macro à mon projet VBA de mon classeur mais depuis quelques jours j'ai ce message d'erreur "Erreur d'exécution '13' : type incompatible" lorsque ma macro se lance à la fermeture du fichier.
Cela fonctionnait correctement mais ce disfonctionnement est apparu lorsque j'ai transféré mon répertoire de travail pour travailler sur clé USB.
je joint la macro avec la ligne surligné en jaune (Fic = Dir(path)) c'est la que l'erreur apparait.
VB:
Public Delai
Public Dossier
Public NbFicMax
Dim Nom
Public NextTime
Sub Sauve_Auto()
Dim strDate As String
Count = Len(ActiveWorkbook.Name)
Nom = Left(ActiveWorkbook.Name, Count - 5) & " du"
strDate = Format(Date, " dd-mmm ") & " à " & Format(Time, " h-mm-ss ")
ThisWorkbook.SaveCopyAs Filename:=Dossier & Nom & strDate & ".xlsm"
DeleteEnTrop (Dossier)
End Sub
Function GetDirectory(Optional Msg) As String
GetDirectory = "N:\Travail sur gestion Conges Immeubles\Gestion conges Pompiers\Sauvegardes\Planning" 'choix du dossier de sauvegarde
Dossier = GetDirectory & "\"
End Function
Sub ChoixNbSauvegardes()
NbFicMax = 3 'choix du nombre de sauvegardes
End Sub
Sub DeleteEnTrop(path)
Dim Fic As String
Dim Tabl() As Variant
Dim i As Integer
'Stocker les noms et les dates de sauvegarde des
'archives dans un tableau
ReDim Tabl(1, 0)
Fic = Dir(path)
Do While Fic <> ""
ReDim Preserve Tabl(1, UBound(Tabl, 2) + 1)
Tabl(0, UBound(Tabl, 2)) = Fic
Tabl(1, UBound(Tabl, 2)) = FileDateTime(path & Fic)
Fic = Dir
Loop
'S'il y a plus de fichiers que défini dans NbMax
'on trie le tableau des archives par date décroissante
'et on efface les premiers pour n'en laissser
'que le nombre choisi dans NbMax
If UBound(Tabl, 2) > NbFicMax Then
Tri Tabl, 1, UBound(Tabl, 2)
For i = UBound(Tabl, 2) To NbFicMax + 1 Step -1
Kill path & Tabl(0, i)
Next i
End If
End Sub
'Procédure récursive classique
'de tri adaptée au tri d'un
'tableau à 2 dimensions
Sub Tri(ByRef Liste As Variant, ByVal Bas As Long, ByVal Haut As Long)
Dim i As Long, j As Long
Dim Milieu As Variant, Echange As Variant
i = Bas
j = Haut
Milieu = Liste(1, Int(Bas + Haut) / 2)
Do
While Liste(1, i) > Milieu
i = i + 1
Wend
While Milieu > Liste(1, j)
j = j - 1
Wend
If i <= j Then
Echange = Liste(1, i)
Liste(1, i) = Liste(1, j)
Liste(1, j) = Echange
Echange = Liste(0, i)
Liste(0, i) = Liste(0, j)
Liste(0, j) = Echange
i = i + 1
j = j - 1
End If
Loop Until i > j
If Bas < j Then Tri Liste, Bas, j
If i < Haut Then Tri Liste, i, Haut
End Sub
Si quelqu'un pouvais m'aider à comprendre ce probleme ce serait cool
Par avance merci
Cordialement jeje77
Pièces jointes
Dernière édition: