Microsoft 365 mise a jour automatique fichier excel

cmdavid

XLDnaute Occasionnel
Bonjour a tous,
je suis débutant, je ne sais rien sur la VBA
donc ci-joint les excel, si quelqu'un pouvant faire en sorte qu'ils fonctionnent..
problème :
j'ai 2 fichier Excel avec des liens entre eux
1.BASE
2.RAPPORT
dans le 2.RAPPORT il y a un bouton avec des dates
ce que je souhaite est que lorsque je change la date dans 2.RAPPORT, les données soit modifiées dans 1.BASE sans ouvrir 1.BASE et met a jour les données de 2.RAPPORT.

par avance un grand merci!
 

Pièces jointes

  • BASE.xlsm
    207.6 KB · Affichages: 7
  • RAPPORT.xlsm
    744.7 KB · Affichages: 5
Solution
Bonjour a tous,
je suis débutant, je ne sais rien sur la VBA
donc ci-joint les excel, si quelqu'un pouvant faire en sorte qu'ils fonctionnent..
problème :
j'ai 2 fichier Excel avec des liens entre eux
1.BASE
2.RAPPORT
dans le 2.RAPPORT il y a un bouton avec des dates
ce que je souhaite est que lorsque je change la date dans 2.RAPPORT, les données soit modifiées dans 1.BASE sans ouvrir 1.BASE et met a jour les données de 2.RAPPORT.

par avance un grand merci!

C'est a cela que sert PowerQuery. simple et rapide.
Comme c'est inclus dans office 365, c'est hyper rapide.

La seule complication vien quand tu ne sais pas combien de fichier tu dois importer...
Dans ce cas on importe les fichiers inclus dans un repertoire...

cmdavid

XLDnaute Occasionnel
Bonjour,
j’’ai vérifier, il n’existe pas de nom dans le gestionnaire

je ne comprend pas pourquoi la macro ci-dessous fonctionne pour certains fichiers et pas pour les d'autres!

exemple fichier ou cela ne fonctionne pas si j'utilise la macro :
1. MMG RAPPORT TBS - BASE
2. MMG RAPORT TBS - DG
la macro est mise dans le fichier MMG RAPPORT TBS - BASE avec liens sur MMG RAPORT TBS - DG

Alors que pour le fichiers BASE1 cela fonctionne avec les liens sur le RAPPORT2,


Private Sub Workbook_Open()
Dim nomfich$
nomfich = ThisWorkbook.Path & "\" & Me.Name
If IsError([Fichier_original]) Then
Me.Names.Add "Fichier_original", nomfich, Visible:=False
Me.Save
Else
If nomfich <> [Fichier_original] Then
On Error Resume Next
Workbooks.Open [Fichier_original]
Me.ChangeFileAccess xlReadOnly
Kill nomfich
Me.Close False
End If
End If
End Sub
 

Pièces jointes

  • MMG Raport TBS - BASE.xlsm
    490.5 KB · Affichages: 2
  • MMG Raport TBS - DG.xlsm
    697.2 KB · Affichages: 2
  • BASE1.xlsm
    208.6 KB · Affichages: 3
  • RAPPORT2.xlsm
    748.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour cmdavid,
j’’ai vérifier, il n’existe pas de nom dans le gestionnaire
Je parie cent balles que vous n'avez rien vérifié du tout si le nom est masqué, puisqu'on le crée avec la propriété Visible:=False !!!

Pour afficher les noms définis masqués il suffit d'exécuter la macro :
VB:
Sub Affiche()
Dim nom As Name
For Each nom In ThisWorkbook.Names
    nom.Visible = True
Next
End Sub
A+
 

merinos

XLDnaute Accro
Bonjour a tous,
je suis débutant, je ne sais rien sur la VBA
donc ci-joint les excel, si quelqu'un pouvant faire en sorte qu'ils fonctionnent..
problème :
j'ai 2 fichier Excel avec des liens entre eux
1.BASE
2.RAPPORT
dans le 2.RAPPORT il y a un bouton avec des dates
ce que je souhaite est que lorsque je change la date dans 2.RAPPORT, les données soit modifiées dans 1.BASE sans ouvrir 1.BASE et met a jour les données de 2.RAPPORT.

par avance un grand merci!

C'est a cela que sert PowerQuery. simple et rapide.
Comme c'est inclus dans office 365, c'est hyper rapide.

La seule complication vien quand tu ne sais pas combien de fichier tu dois importer...
Dans ce cas on importe les fichiers inclus dans un repertoire...
 

cmdavid

XLDnaute Occasionnel
Bonjour cmdavid,

Je parie cent balles que vous n'avez rien vérifié du tout si le nom est masqué, puisqu'on le crée avec la propriété Visible:=False !!!

Pour afficher les noms définis masqués il suffit d'exécuter la macro :
VB:
Sub Affiche()
Dim nom As Name
For Each nom In ThisWorkbook.Names
    nom.Visible = True
Next
End Sub
A+

Bonjour VB,
en utilisant votre macro, je trouve dans le gestionnaire de nom "_XIFM.IFEROR"
je le suprime du gestionnaire. mais le fichier ne fonctionne toujours pas, dans le sens ou si je change la date dans la bande déroulante du fichier MMG RAPORT TBS - DG, le fichier MMG RAPPORT TBS - BASE est détruit avant même de faire une copie!
 

Pièces jointes

  • MMG Raport TBS - DG.xlsm
    694.3 KB · Affichages: 7
  • MMG Raport TBS - BASE.xlsm
    490.8 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour cmdavid,

Vous êtes perdu parce que probablement vous mélangez tout, faites les choses dans le bon ordre.

En supposant que le fichier MMG Raport TBS - DG est sur le bureau :

1) créez sur ce bureau le dossier a-mmg puisqu'il est mentionné dans la macro

2) placez-y le fichier MMG Raport TBS - BASE et ouvrez ce fichier

3) ouvrez le fichier MMG Raport TBS - DG

4) dans la feuille RDG du fichier Raport TBS - BASE il faut les formules de liaison :

- en AE4 ='[MMG Raport TBS - DG.xlsm]RDG'!$AE$4

- en AE5 ='[MMG Raport TBS - DG.xlsm]RDG'!$AE$5

- en AH5 ='[MMG Raport TBS - DG.xlsm]RDG'!$AH$5

5) enregistrez le fichier MMG Raport TBS - BASE et fermez-le

6) modifiez maintenant les cellules AT3 AT4 AW4 de la feuille RDGV du fichier MMG Raport TBS - DG, la macro Worksheet_Change que vous avez placée dans cette feuille s'exécutera correctement.

A+
 

cmdavid

XLDnaute Occasionnel
Bonjour Job75,
en effet les fichiers joints fonctionnent y compris avec la macro pour empêcher la copie.
mon problème, c'est que j'ai un autre dossier conçu exactement comme dans l'exemple fourni et qui fonctionne parfaitement jusqu'au moment ou j’introduis la macro pour empêcher la copie, dans ce cas le fichier contenant la macro se détruit.
petite explication, afin d'éviter de perdre mon travail, je fais une copie du dossier, je modifie les liens comme vous me l'avez indiqué et j'introduis la macro pour empêcher la copie.
au premier essai, en changeant les dates le fichier a fonctionné, sauf que je ne pas ouvrir le fichier ou se trouve la macro car a l'ouverture il se détruis
2ème essai toujours en faisant une copie du dossier de base, lorsque je change de date, un message d'erreur "erreur exécution 1004" parce que le fichier a été détruis.
je ne comprend pas pourquoi? existe-il une autre macro pour protéger mon travail et empêcher que quelq'un puisse utiliser mes fichiers??
 

Discussions similaires

Réponses
26
Affichages
790