données sur fichier1 et s'appliqent automatiquement sur le fichier2

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 !

Sylvie64

XLDnaute Occasionnel
Bonjour,

J'ai deux fichiers 1 et 2. (en pj)
Je rentre mes données sur le fichier 1 et les données se mettent automatiquement sur le fichier 2. (comme la première ligne en 6)
J'ai rentrée certaines formules grâce à certain d'entre vous, que je remercie encore.

Se que j'aimerai, est quand je rajoute une feuil sur le fichier1, qu'elle s'ajoute automatiquement sur le fichier 2 (en jaune)

En espérant, avoir expliquer clairement.
Un grand merci pour les pros que vous êtes !

Sylvie64
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Bonsoir Sylvie64,

Enregistrez fichier2 au format .xlsm (ou .xls).

Allez dans VBA (Alt+F11) et mettez dans le ThisWorkbook de ce fichier cette macro :

Code:
Private Sub Workbook_Activate()
Dim fich$, F As Worksheet, Wb As Workbook, w As Worksheet, lig%
fich = "fichier1.xlsx" 'nom à adapter
Set F = Feuil1 'CodeName de la feuille à modifier, à adapter
On Error Resume Next 'si le fichier n'est pas ouvert
Set Wb = Workbooks(fich)
If Err Then Exit Sub
On Error GoTo 0
lig = 6
For Each w In Wb.Worksheets
  F.Cells(lig, 1).Formula = "='[" & fich & "]" & w.Name & "'!D1"
  lig = lig + 1
Next
F.Range("A" & lig & ":A" & Rows.Count).ClearContents
End Sub
fichier1 doit être ouvert pour que fichier2 se mette à jour.

A+
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Bonsoir job75,

J'ai fait comme vous avez dit mais cela ne fonctionne pas, je pense avoir oublier quelques choses, mais quoi ?

Depuis hier que je cherche 😡

Il est vrai que je ne connais pas les macro et que j’apprends grâce à vous.

Si vous pouviez regarder ma pièce jointe svp, merci

Sylvie64

ps : cette phrase : Set F = Feuil1 'CodeName de la feuille à modifier, à adapter
A chaque fois que j'ajoute une "feuil" à mon fichier1 il faut que je modifie la macro sur le fichier2 ?
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Bonsoir Sylvie,

ps : cette phrase : Set F = Feuil1 'CodeName de la feuille à modifier, à adapter
A chaque fois que j'ajoute une "feuil" à mon fichier1 il faut que je modifie la macro sur le fichier2 ?

La feuille à modifier c'est l'unique feuille du fichier2...

J'ai testé vos fichiers joints, ça fonctionne parfaitement quand les 2 fichiers sont ouverts.

J'espère que vous avez compris que la macro se déclenche chaque fois qu'on active fichier2...

A+
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Bonjour job75,

J'ai compris en fait j'ouvrais le fichier1 en premier, mais c'est le fichier2 et ensuite le 1. (ou bien c'est le hasard)
Et quand je clique sur le fichier2 ça se met à jour.

C'est FOR-MI-DA-BLE !!

Merci bien

Sylvie
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Bonjour job75,

Par contre, quand j'ai plusieurs pages, le code ne s'applique pas ! 😡
et j'ai envoyé un fichier avec seulement une page dont vous avez créer le code pour cela, d’où mon erreur, désoler.🙁

En fait, comme je m'y connais pas trop j’essaie de comprendre souvent avec une page, mais ici ça me pose problème. (il est vrai que je me suis attaqué à un gros travail)

Ci-joint, les fichiers adéquate à ce que j'aimerai :

Ce qui se trouve sur le fichier "année_2012.xlsx" (en rouge/jaune) doit automatiquement se trouver sur le fichier "A et C 2012.xlsm" quand je l'ouvre. (ainsi que les pages rajouter sur "année_2012.xlsx")

En gros, je doit seulement modifier le fichier "année_2012.xlsx" et en principe je ne dois plus toucher à "A et C 2012.xlsm" Cela me permettrai de gagner énormément de temps sur mon travail.

Un grand merci pour votre aide.

Sylvie
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Bonjour Sylvie,

Vous auriez pu préciser ce que vous voulez faire, non ?

1) Si vous voulez les dates uniquement dans la feuille "Chrono A 12" (CodeName "Feuil3") c'est la même macro :

Code:
Private Sub Workbook_Activate()
Dim fich$, F As Worksheet, Wb As Workbook, w As Worksheet, lig&
fich = "année_2012.xlsx" 'nom à adapter
Set F = Feuil3 'CodeName de la feuille de destination
On Error Resume Next 'si le fichier n'est pas ouvert
Set Wb = Workbooks(fich)
If Err Then Exit Sub
On Error GoTo 0
lig = 6
For Each w In Wb.Worksheets
  F.Cells(lig, 1).Formula = "='[" & fich & "]" & w.Name & "'!D1"
  lig = lig + 1
Next
F.Range("A" & lig & ":A" & Rows.Count).ClearContents
End Sub
2) Si vous voulez les dates dans "Chrono A 12" et "Chrono C 12" (CodeName "Feuil4") :

Code:
Private Sub Workbook_Activate()
Dim fich$, F1 As Worksheet, F2 As Worksheet
Dim Wb As Workbook, w As Worksheet, form$, lig1&, lig2&
fich = "année_2012.xlsx" 'nom à adapter
Set F1 = Feuil3 'CodeName 1ère feuille de destination
Set F2 = Feuil4 'CodeName 2ème feuille de destination
On Error Resume Next 'si le fichier n'est pas ouvert
Set Wb = Workbooks(fich)
If Err Then Exit Sub
On Error GoTo 0
lig1 = 6: lig2 = 5
For Each w In Wb.Worksheets
  form = "='[" & fich & "]" & w.Name & "'!D1"
  F1.Cells(lig1, 1).Formula = form
  F2.Cells(lig2, 1).Formula = form
  lig1 = lig1 + 1: lig2 = lig2 + 1
Next
F1.Range("A" & lig1 & ":A" & Rows.Count).ClearContents
F2.Range("A" & lig2 & ":A" & Rows.Count).ClearContents
End Sub
Nota : j'ai mis 2 variables lig1 et lig2 pour plus de clarté, mais on peut n'en utiliser qu'une.

A+
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Merci job75,

"Vous auriez pu préciser ce que vous voulez faire, non ?"
Oui mais comme j’essaie de comprendre se n'est pas facile d'expliquer.

Premier code excellent pour la date !
Comment rajouter les autres colonnes de la ligne 6 sur le code ci-dessous ?
Car c'est tout ce qui est en jaune sur le fichier "année_2012" à mettre sur "A et C 2012"




Private Sub Workbook_Activate()
Dim fich$, F As Worksheet, Wb As Workbook, w As Worksheet, lig&
fich = "année_2012.xlsx" 'nom à adapter
Set F = Feuil3 'CodeName de la feuille de destination
On Error Resume Next 'si le fichier n'est pas ouvert
Set Wb = Workbooks(fich)
If Err Then Exit Sub
On Error GoTo 0
lig = 6
For Each w In Wb.Worksheets
F.Cells(lig, 1).Formula = "='[" & fich & "]" & w.Name & "'!D1"
lig = lig + 1
Next
F.Range("A" & lig & ":A" & Rows.Count).ClearContents
End Sub
 
Re : données sur fichier1 et s'appliqent automatiquement sur le fichier2

Re,

Vous avez tous les éléments pour continuer seule :

F.Cells(lig, 1).Formula = "='[" & fich & "]" & w.Name & "'!D1"

Le 1 c'est la colonne A de la feuille de destination, D1 c'est la cellule source.

Ajoutez autant de lignes de ce genre qu'il y a de colonnes à remplir.

A+
 
- 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

Retour