[résolu]Problème de path sous VBA

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 !

Al capone

XLDnaute Junior
Bonjour à tous,

J'ai un classeur principal qui effectue une backup du dossier au cas ou. Cette backup est placée dans un dossier Backup. Par exemple

Classeur principal : C:\dossier\classeur.xls
Copie de sauvegarde : C:\dossier\backup\copie.xls

Lorsque l'utilisateur utilise la copie de sauvegarde (contenant les mêmes scripts), j'ai fait un petit module pour que la copie remplace le classeur principal si le classeur principal est fermé :

Code:
Workbooks("classeur.xls").Activate
    If Err <> 0 Then
        ChDir ThisWorkbook.Path
        ChDir ".."
        ActiveWorkbook.SaveAs Filename:="classeur.xls"
    End If

Lorsque je l'exécute depuis mon PC, tout se passe bien. Les commandes ChDir me permettent de remonter d'un cran (de backup vers dossier). Comme celà lorsque je l"enregistre, il est au bon endroit et ma variable ThisWorkbook prend alors la valeur C:\dossier

Lorsque je l'exécute depuis une clé USB, là çà part en sucette.
Thisworbook.Path correspond bien au chemin de ma clé USB :

H:\dossier\backup

Mais après le ChDir.. et la sauvegarde, ma valeur ThisWorkbook est un chemin d'accès sur mon disque dur ... et plus H:\dossier comme il aurait du faire et comme il le fait lorsque je lance mon script depuis le disque dur.

Là si quelqu'un a une explication je suis preneur à 2000% car je suis totalement largué sur ce coup.

Merci d'avance
 
Dernière édition:
Re : Problème de path sous VBA

Re Pierrot lorsque je le met comme ceci :

Code:
On Error Resume Next
    Workbooks("classeur.xls").Activate
    If Err <> 0 Then
        ChDrive = Left(ActiveWorkbook.Path, 1)
        ChDir ThisWorkbook.Path
        ChDir ".."
        ActiveWorkbook.SaveAs Filename:="classeur.xls"
    End If

J'ai le code erreur :

Erreur de compilation
Argument non facultatif


Merci pour ta future aide
 
Re : Problème de path sous VBA

Re

Sinon toujours glané dans l'aide de VBA (touche F1)

Code:
Sub AfficheInfoAccesFichier(specfichier)
    Dim fs, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(specfichier)
    s = f.Name & " on Drive " & UCase(f.Drive) & vbCrLf
    s = s & "Créée le : " & f.DateCreated & vbCrLf
    s = s & "Dernier accès le : " & f.DateLastAccessed & vbCrLf
    s = s & "Dernière modification le : " & f.DateLastModified
    MsgBox s, 0, "Infos d'accès au fichier"
End Sub
Code:
Sub test()
AfficheInfoAccesFichier ActiveWorkbook.FullName
End Sub

Ca peut toujours servir
 
Re : Problème de path sous VBA

Hello, LOL merci çà marche.

J'aurais une autre petite question. Je fais un test pour savoir si un classeur est ouvert :

Code:
Workbooks("rapport_20072011.xls").Activate
If Err = 0 Then
............
end if

Je recherche l'équivalent de * sous DOS car mon problème réside dans le fait que le classeur a toujours le même nom au début mais pas la date qui lui ai associé.
J'aimerais que ce test se fasse sur tous les classeurs qui pourraient être ouverts à ce moment là commençant par "rapport"..un style de rapport_*.xls
 
- 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 Classeur Disparu
Réponses
2
Affichages
516
Retour