Déterminer le répertoire d'un fichier

Bonsoir le forum,

Depuis un classeur "maître", je pilote plusieurs autres classeurs excel dans le répertoire "C:\MABASE\n°_du_fichier".

Une fois l'année bouclée, ces derniers sont archivés dans "C:\MABASE\Archives\n°_du_fichier".

Tant que les classeurs ne sont pas archivés, je les enregistre automatiquement en quittant.

Par contre, une fois archivés, ces fichiers ne doivent plus être modifiés.

Et c'est là que je ne sais plus comment faire pour comparer les chemin d'accès.

Ci-dessous le code (plus exactement le brouillon)

J'ai bien conscience qu'il risque de faire rire certains (moi le premier si je n'avais pas passé quelques heures dessus.); mais bon rire fait du bien. Evidemment, rien ne fonctionne.

Private Sub RetourMenu_Click()
Dim nomclasseur As String
Dim classeur As Workbook

nomclasseur = ("C:\MABASE\") & Range("A70").Value & (".xlsm")
'Stop

'If Dir(nomclasseur) = ("C:\MABASE\") & Range("A70").Value & (".xlsm") Then

'If Dir(ActiveWorkbook) = ("C:\MABASE\") & Range("A70").Value & (".xlsm") Then
'If ActiveWorkbook.Name = ("C:\MABASE\") & Range("A70").Value & (".xlsm") Then
If ActiveWorkbook.Dir = ("C:\MABASE\") & Range("A70").Value & (".xlsm") Then
'If vbDirectory(Active.Workbook) = ("C:\MABASE\") & Range("A70").Value & (".xlsm") Then
MsgBox (1) 'le fichier n'est pas archivé
Else
MsgBox (2) 'le fichier est archivé
End If
Stop
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

Si quelqu'un avait une idée.

Pour l'instant moi je vais prendre un aspégic.

Amicalement

Joseph

Bonsoir joseph67 le forum

plus le temps là mais je regarderai demain

a+

papou

Bonsoir papou, le forum,

Je pense avoir trouvé :

Private Sub RetourMenu_Click()
Dim nomclasseur As String
nomclasseur = ("C:\MABASE\") & Range("A70").Value & (".xlsm")

If ActiveWorkbook.FullName = nomclasseur Then
MsgBox (1) 'le fichier se trouve dans MABASE\n°_de_fichier et j'enregistre automatiquement
Else
MsgBox (2) 'le fichier se trouve dans MABASE\Archives\n°_de_fichier et je n'enregistre pas
End If

Je reste toutefois preneur pour toute observation de votre part.

Amicalement

Joseph

Bonsoir

Juste pour mon information personnelle à moi tout seul

Quand tu ouvres le fichier (ActiveWorkbook) tu sais d'où tu l'ouvres non ?

Ou alors il y a un détail qui m'échappe

Bonne soirée

Bonsoir

Bien compliqué tout cela

Cette formule dans une cellule quelconque du fichier te donne le chemin d'accès complet du fichier

=CELLULE("filename";A$1)

et celle-ci te donne le répertoire du fichier

=GAUCHE(CELLULE("filename");CHERCHE("[";CELLULE("filename");1)-2)

Cordialement

Bonjour à tous,

Amadeus : je vais garder précieusement ces formules.

Banzai

Juste pour mon information personnelle à moi tout seul

Quand tu ouvres le fichier (ActiveWorkbook) tu sais d'où tu l'ouvres non ?

Ou alors il y a un détail qui m'échappe

Bien évidemment, je sais d'où je l'ouvre.

Tous les classeurs pilotés sont créés à partir du même modèle. Quand l'utilisateur clique sur "Retour au menu", il revient sur le classeur principal et enregistre automatiquement les modifications.

Par contre, quand l'utilisateur l'ouvre à partir de MABASE/Archives et qu'il clique sur "Retour au menu", il ne faut pas que les éventuelles modifications soient enregistrées. Une fois validé et archivé le classeur doit rester tel quel.

Merci à vous pour ces remarques pertinentes. J'espère m'être correctement expliqué, et suis toujours preneur de vos observations.

Amicalement

Joseph

Rechercher des sujets similaires à "determiner repertoire fichier"