Faire plusieurs fichiers en mettant à jour les formules

Brigitte

XLDnaute Barbatruc
Bonsoir,

Mon fiston me pose la problèmatique suivante, que je crois avoir comprise et vous livre, j'espère pas trop de façon confuse :

- Avoir un premier fichier contenant plein de feuilles, avec plein de formules, des chiffres en dur.

- Ouvrir un deuxième fichier clone du premier, reprenant seulement à l'endroit des formules, les formules... il y rentrera d'autres chiffres aux lieu et place des premiers.

- Ouvrir un xième fichier même philosophie.

Problématique :

- si je change les formules dans le premier fichier, il faudrait que le deuxième fichier (soit en sommeil, l'idéal ; soit en l'ouvrant en même temps, soit à la prochaine ouverture), aille mettre les mêmes formules que celles modifiées.

Exemple :

- si je mets en A4 : =A2+A3 dans le premier fichier

- si ensuite un autre jour, je mets en A4 : =A2*A3

Il aimerait que ca mette à jour les formules, et seulement LES FORMULES, ceci avec plein de formules, dans toutes les feuilles de tous les classeurs faits avec le modèle.

Cerise sur le gâteau :

- si je rajoute aussi des lignes et des colonnes, qu'il le fasse aussi dans le deuxième, troisième... mais alors là je complique, déjà le début sera bien...


Ensuite, faire éventuellement un bouton de mise à jour dans les fichiers clônes ??? Je crois que ca lui irait. En fermant le classeur, ou une fois finies les mises à jour, pourquoi pas un message qui dirait : faire maj sur fichiers ? et ouvrir (à la main) les autres fichiers et un bouton qui permet cette mise à jour ?

Je peux difficilement vous donner un fichier exemple, il s'agit plutôt de voir si qqun a une idée, ou déjà utilisé cette philosophie, je pense que c jouable, non ?

Merci à vous. Laurent (mon fiston) aura ce fil et est susceptible de le lire, de lire vos interrogations et pourra le renseigner en ouvrant avec mon pseudo. N'en soyez pas étonnés !

Mille mercis à vous.
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Bonjour tout le monde,

Brigitte, basé sur ton fichier exempl, je te propose une macro évenementielle qui s'exécute automatiquement après avoir modifié une formule (et uniquement une formule).
Chaque modification d'une formule dans le fichier "lolo A.xls" va modifier la formule correspondante dans le ou les autres fichiers "bb" (qui doivent être ouvert).
Attention, aucun autre fichier ne dois être ouvert sous peine d'être modifié également. C'est un exemple, il est aussi possible d'imaginer la solution que tu proposais: choisir les fichiers à ouvrir et en avant la musique.
Mon idée rejoint celle de STephane.
Au fait, je n'ai pas trouvé dans le fichier la formule pour faire les gallettes ;):D.

Bises.
 

Pièces jointes

  • lolo.zip
    11.2 KB · Affichages: 27
  • lolo.zip
    11.2 KB · Affichages: 27
  • lolo.zip
    11.2 KB · Affichages: 25

Brigitte

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

re hello

soluce façon base de données

un unique classeur de formules ClassF, et non une mère et des filles.
et un classeur de données d'entrée ClassD, avec une feuille de valeurs de sorties !

on ouvre le classD, le classF s'ouvre aussi, il calcule, copie/colleSpécial"Valeurs" dans la feuille de valeurs de sortie de ClassD

ton avis ?

rem : le titre de ta question d'origine est déjà trop orienté vers une solution ;)


Bonjour tout le monde (C'est le fiston ce coup ci, j'utilise le compte en pirate :)

J'aime beaucoup cette idee type base de donnee (c'est exactement l'idee), pouvoir creer un seul fichier avec les formules et ensuite utiliser ce fichier comme calculateur me semble sur et propre , en tout cas plus que de faire des copier coller de formules qui risquent de pas se mettre a jour ou je ne sais quoi.

Comme ca si je veux changer une formule j'ai seulement besoin de modifier mon fichier de calcul et pas d'histoire de copier coller, mise a jour etc..

Faut que je creuse un peu l'idee

Merci beaucoup pour votre aide en tout cas.

Laurent (dans la famille titescouettes, zavez demandé LE FILS)
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Merci Gilbert...

J'ai essayé rapidement :

- un peu ennuyeux de devoir tout fermer, le risque étant d'oublier
- ca met pas à jour les formules de toutes les feuilles, il semble.

Edit : j'en croyais pas mes yeux d'avoir posté sans le savoir, déjà oublié que tu pouvais le faire, Laurent. Bisous à toi. Je te laisse la main...
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Re,

J'aime beaucoup cette idee type base de donnee (c'est exactement l'idee), pouvoir creer un seul fichier avec les formules et ensuite utiliser ce fichier comme calculateur me semble sur et propre , en tout cas plus que de faire des copier coller de formules qui risquent de pas se mettre a jour ou je ne sais quoi.

Comme ca si je veux changer une formule j'ai seulement besoin de modifier mon fichier de calcul et pas d'histoire de copier coller, mise a jour etc..
Ce que je propose n'est pas à proprement parler un copier/coller, pas dans le sens excel en tout cas mais une mise à jour automatique après modification d'une formule.
La seule chose qui puisse empêcher la mise à jour est une protection de feuille (qui peut être déverrouiller si besoin).
Mais bon, le client est roi comme on dit.:)
Et puis il y aura tout de même une mise à jour des résultats dans les fichiers "clones" non? ou alors je suis à coté de la plaque :confused:

Bonne soirée.
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Bonsoir,

Gilbert, j'espère que le fait de dire qu'il "aimait bcp telle idée" ne t'a pas froissé. Ca ne voulait pas dire que la tienne n'est pas bonne.

Laurent (car c un fil à quatre mains) a juste exprimé une réflexion suite à la remarque de jmd2, pour l'instant, c nébuleux, et on cherche la meilleure facon, la plus simple et la plus fiable, avant de se lancer...

Sinon avais tu vu ma petite remarque ? est ce moi ou bien est ce que pour l'instant ta macro ne remet pas à jour les formules sur d'autres feuilles que la feuille 1 ?

Qu'entends tu par mise à jour des fichiers "clones" ? Oui il faut que les formules se mettent à jour dans ces derniers, induisant forcément ce qu'on peut appeler une mise à jour, ou un recalcul mais surtout en ne changeant pas les données "en dur".

Merci à toi en tout cas.

Edit : tu sais quoi skoobi, demain j'ai rv avec Alice (non pas le FAI) et je lui montre ton usf de filtrage... je profite de notre rv.
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Bonsoir,
Gilbert, j'espère que le fait de dire qu'il "aimait bcp telle idée" ne t'a pas froissé
pas le moins du monde Brigitte, je voulais juste dire que ça peut être une solution de rechange.
Sinon avais tu vu ma petite remarque ? est ce moi ou bien est ce que pour l'instant ta macro ne remet pas à jour les formules sur d'autres feuilles que la feuille 1 ?

Qu'entends tu par mise à jour des fichiers "clones" ? Oui il faut que les formules se mettent à jour dans ces derniers, induisant forcément ce qu'on peut appeler une mise à jour, ou un recalcul mais surtout en ne changeant pas les données "en dur".

Cà met à jour la formule de la feuille concernée, c'est-à-dire que si une formule de la feuille 1 est modifié, ça modifie la formule de la feuille 1 de l'autre fichier et si c'est une formule de la feuille 2 qui est modifié, ça modifie la formule de la feuille 2 de l'autre fichier, voili voilou.

Pour l'édit, je pense que tu auras vu la version 2 de mon fichier.
 

Brigitte

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Re,

Merci à toi de te repencher sur le berceau de mon fiston, hi hi.

Ben pour les autres feuilles, j'ai eu l'impression que ca mettait pas à jour... Quand je modifie une formule de la feuille 2 du premier, ca modifie pas la formule du deuxième. Ou alors y a une subtilité que j'ai pas capté..

En revanche, quand tu dis : rien d'autre ouvert ? ca peut leur faire quoi à d'autres fichiers qui ont rien à voir avec ca ?

Pour Edith (hi hi), oui je vais ouvrir proprement le fil et ouvrir la bonne version... Et je prends une photo de la tête d'Alice quand elle fait : ouah !!
 

bqtr

XLDnaute Accro
Re : Faire plusieurs fichiers en mettant à jour les formules

Bonsoir Brigitte, tous le monde

Voici une façon de faire :

Code:
Sub Recherche_Fichier()

Dim FS As FileSearch
Dim Rep As String
Dim i As Integer

Rep = "Q:\bilans\ND" 'ici entre le chemin du répertoire des fichiers filles
Set FS = Application.FileSearch
With FS
      .LookIn = Rep
      .Filename = "*.xls"
      .Execute
  If .FoundFiles.Count = 0 Then
       MsgBox "fichier non trouvé"
       Exit Sub
  End If
End With

For i = 1 To FS.FoundFiles.Count
copie_Données (FS.FoundFiles(i))
Next i

End Sub



Sub copie_Données(Non_Fichier As String)

Dim Plg As Range, Cell As Range
Dim j As Long

Application.ScreenUpdating = False
Workbooks.Open Filename:=Non_Fichier

For j = 1 To Worksheets.Count
  ' Remplace "Classeur1.xls" par le nom du Classeur mère
  Set Plg = Workbooks("Classeur1.xls").Worksheets(j).Cells.SpecialCells(xlCellTypeFormulas)
  Worksheets(j).Cells.SpecialCells(xlCellTypeFormulas).Clear
    For Each Cell In Plg
      Worksheets(j).Range(Cell.Address) = Cell.FormulaLocal
    Next
Next
 
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True

End Sub
Dans un dossier tu mets le classeur avec les formules et les deux macros.
Tu rajoutes un sous dossier avec les classeurs "filles".

Tout les fichiers doivent être identiques (nombre de feuilles)

La première macro liste les fichiers du sous dossier et lance la deuxième macro.

La deuxième macro ouvre les fichiers un par un, puis boucle sur chaque feuille, supprime les anciennes formules et les remplace par les nouvelles.
Les modifs sont enregistrées puis les fichiers sont refermés.

Seul les formules sont modifiées, les constantes ne sont pas changées. (normalement :eek:).

Maintenant si il y a 100 fichiers avec 50 feuilles et 5000 formules par feuille cela risque de ramer un peu beaucoup. Ton gars aura le temps de manger plusieurs galettes avant de se remettre au travail :D.

Bonne nuit
 

Brigitte

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Ouah,

Comme vous êtes géniaux. Ce fil regorge d'idées, de conseils, de propositions... Laurent va étudier tout cela.

Non Pierre Olivier, il n'y aura pas 50 fichiers avec 100 feuilles et 5000 formules (du moins pas compris ca, mais je comprends pas tjs le langage de mon Lolo). Vous avez de ces nuits, les gars !

Je sens qu'il va aimer, mon gars, surtout qu'il saura mieux que moi adapter vos macros à tous... Il m'avait fait des choses bien sympa, déjà l'instinct d'excel il y a de cela déjà des années, non, pas tout bb, mais pas grand...

Lolo, tu te souviens de ton bel USF de saisie des temps par dossard pour les courses d'athlé de ta soeur, avec réaction si doublon de saisie... Je l'adore toujours ce truc, et beau en plus, si quelqu'un a envie, je peux l'envoyer (trop gros pour ici), histoire de dire qu'il pourra se débrouiller pour développer vos soluces, soyez pas trop inquiets.

Merci encore et continuez !!
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Faire plusieurs fichiers en mettant à jour les formules

Bonsoir Brigitte, tous le monde

Voici une façon de faire :

Code:
Sub Recherche_Fichier()
 
Dim FS As FileSearch
Dim Rep As String
Dim i As Integer
 
Rep = "Q:\bilans\ND" 'ici entre le chemin du répertoire des fichiers filles
Set FS = Application.FileSearch
With FS
      .LookIn = Rep
      .Filename = "*.xls"
      .Execute
  If .FoundFiles.Count = 0 Then
       MsgBox "fichier non trouvé"
       Exit Sub
  End If
End With
 
For i = 1 To FS.FoundFiles.Count
copie_Données (FS.FoundFiles(i))
Next i
 
End Sub
 
 
 
Sub copie_Données(Non_Fichier As String)
 
Dim Plg As Range, Cell As Range
Dim j As Long
 
Application.ScreenUpdating = False
Workbooks.Open Filename:=Non_Fichier
 
For j = 1 To Worksheets.Count
  ' Remplace "Classeur1.xls" par le nom du Classeur mère
  Set Plg = Workbooks("Classeur1.xls").Worksheets(j).Cells.SpecialCells(xlCellTypeFormulas)
  Worksheets(j).Cells.SpecialCells(xlCellTypeFormulas).Clear
    For Each Cell In Plg
      Worksheets(j).Range(Cell.Address) = Cell.FormulaLocal
    Next
Next
 
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
 
End Sub
Dans un dossier tu mets le classeur avec les formules et les deux macros.
Tu rajoutes un sous dossier avec les classeurs "filles".

Tout les fichiers doivent être identiques (nombre de feuilles)

La première macro liste les fichiers du sous dossier et lance la deuxième macro.

La deuxième macro ouvre les fichiers un par un, puis boucle sur chaque feuille, supprime les anciennes formules et les remplace par les nouvelles.
Les modifs sont enregistrées puis les fichiers sont refermés.

Seul les formules sont modifiées, les constantes ne sont pas changées. (normalement :eek:).

Maintenant si il y a 100 fichiers avec 50 feuilles et 5000 formules par feuille cela risque de ramer un peu beaucoup. Ton gars aura le temps de manger plusieurs galettes avant de se remettre au travail :D.

Bonne nuit


Encore le fiston qui pirate le compte :cool:

Ca aussi j'aime bien, en plus pas trop difficile à mettre en oeuvre :) (faut dire que le travail est deja bien mâché :), merci beaucoup pour les macros).

Je vais essayer ca dès que j'ai un peu de temps, surement ce WE.

Question subsidiaire : Y a moyen de copier aussi le formattage (couleur, encadrement, police), c'est vraiment du détail mais si Y a une commande pour copier la formule doit y avoir la même commande pour le format aussi.


Sinon pas de soucis, j'aurais pas beaucoup de fichiers de nombres, 2 au début c'est sur, probablement jamais plus de 10, Ce sont surtout les formules qui sont à rallonge, ce qui explique pourquoi je veux pas me les taper toutes plusieurs fois.

Encore merci pour votre aide
 
Dernière édition:

bqtr

XLDnaute Accro
Re : Faire plusieurs fichiers en mettant à jour les formules

Re,

Pour le format essaye comme ceci:

Code:
.../...
For j = 1 To Worksheets.Count
  ' Remplace "Classeur1.xls" par le nom du Classeur mère
  Set Plg = Workbooks("Classeur1.xls").Worksheets(j).Cells.SpecialCells(xlCellTypeFormulas)
  Worksheets(j).Cells.SpecialCells(xlCellTypeFormulas).Clear
    For Each Cell In Plg
      Cell.Copy Worksheets(j).Range(Cell.Address)
    Next
Next
.../...
Par contre ça ralentira un peu le traitement.


Y a une petite erreur dans la deuxième macro de mon 1er exemple:
Il faut mettre
Code:
Worksheets(j).Range(Cell.Address) = Cell.Formula
Et non
Code:
Worksheets(j).Range(Cell.Address) = Cell.FormulaLocal
J'avais testé avec des formules toutes simples du style =A1+B1, cela fonctionnait mais avec des formules du style = Somme(A1:B10) il y avait une erreur 1004.



Bonne journée
 

Discussions similaires

Réponses
1
Affichages
262
Réponses
6
Affichages
338

Statistiques des forums

Discussions
312 682
Messages
2 090 866
Membres
104 680
dernier inscrit
AvPi26