Microsoft 365 Mise jour fichiers avec mot de passe

cmdavid

XLDnaute Occasionnel
Bonjour,
je cherche a faire fonctionner mes 3 fichiers joints, dans les conditions ou les fichiers 'COM' et 'BASE' ont un mot de passe a l'ouverture et que lorsque je change la date du fichier 'DG', celui -ci me demande le mot de passe du fichier "COM' - mot de passe : 1.
macro utilisée dans le fichier "DG":
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [AT3,AT4:AW4]) Is Nothing Then Exit Sub
Dim etat As Boolean
With Application
.ScreenUpdating = False
.DisplayAlerts = False
etat = .AskToUpdateLinks
.AskToUpdateLinks = False
Workbooks.Open(Filename:=ThisWorkbook.Path & "\MMG Raport TBS - BASE.xlsm", Password:="1").Close True

.AskToUpdateLinks = etat
End With
ThisWorkbook.Save
End Sub

un grand merci pour votre aide.
 

Pièces jointes

  • com.xlsm
    14.5 KB · Affichages: 23
  • MMG Raport TBS - BASE.xlsm
    511.5 KB · Affichages: 14
  • MMG Raport TBS - DG.xlsm
    693.2 KB · Affichages: 13

cmdavid

XLDnaute Occasionnel
bonjour Sylvanu,
avec "a" cela ne change rien. le fichier DG me demande toujours le mot de passe du fichier COM. dans la macro, il y a le mot de passe pour le fichier BASE, mais je ne sais pas quoi rajouter dans la macro pour que celle-ci prenne en compte le mot de passe du fichier COM.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Lorsque XL exécute cette ligne :
VB:
Workbooks.Open(Filename:=ThisWorkbook.Path & "\MMG Raport TBS - BASE.xlsm", Password:="1").Close True
Il recalcule MMG Raport TBS - BASE.xlsm.
Or dans ce fichier vous faites référence au fichier COM : ='g:\Users\PC_PAPA\Downloads\[com.xlsm]Feuil1'!$C$4 en H5:H9.
Donc XL essaye de remettre à jour, mais comme COM est protégé, il vous demande le mot de passe.

Une solution, c'est d'ouvrir COM avant cette ligne avec le mot de passe, et le refermer aussitôt la mise à jour faite.

Une autre solution est de copier les valeurs
Code:
='g:\Users\PC_PAPA\Downloads\[com.xlsm]Feuil1'!$C$4   de C4 à F4
dans le fichier TBS qui est ouvert, et faire appel à ces valeurs dans le fichier BASE.
Comme ça il n'y a plus de référence à COM dans le fichier BASE.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je récapitule.
Lorsque vous voulez fermer \MMG Raport TBS - BASE.xlsm. XL recalcule toutes les ecllules avant de fermer.
Or dans ce fichier, feuille H les cellules H4:H9 contiennent des formules qui appelle des données du Fichier COM :
VB:
En H5 : ='g:\Users\PC_PAPA\Downloads\[com.xlsm]Feuil1'!$C$4
...
En H9 : ='g:\Users\PC_PAPA\Downloads\[com.xlsm]Feuil1'!$F$4
Et donc XL vous demande le mot de passe de COM pour la mise à jour.

Pour vérifier, ouvrez le fichier Base, mettez vous en feuille H cellule H5, cliquez dans la formule et faites Entrée. Un mot de passe est demande.

D'où ma proposition de modification de code :
Code:
Ouvrir le fichier COM.
Workbooks.Open(Filename:=ThisWorkbook.Path & "\MMG Raport TBS - BASE.xlsm", Password:="1").Close True
Fermer le fichier COM.

Ou l'autre solution qui me semble meilleure, mais peut être plus "acrovatique"
 

cmdavid

XLDnaute Occasionnel
Le problème est que chaque fichier doit rester fermés.
la macro decrite en "1" fonctionne pour 1 fichier, je voudrais que cela fonctionne de la même façon avec plusieurs fichiers et des mots de passe différents pour chaque fichier.
 

cmdavid

XLDnaute Occasionnel
je comprend qu'il faut que le fichier MMG TBS BASE ouvre le fichier COM avec une macro.
mais je ne comprend pas quoi écrire dans la macro? car si je met :
Workbooks.Open(Filename:=ThisWorkbook.Path & "\MMG Raport TBS - BASE.xlsm", Password:="1").Close True, ou encore Workbooks.Open(Filename:=ThisWorkbook.Path & "\COMM-1.xlsm", Password:="1").Close True
cela ne marche pas.
 

Discussions similaires

Statistiques des forums

Discussions
314 486
Messages
2 110 107
Membres
110 667
dernier inscrit
andco