Automatiser la prise en compte de formules entre 2 fichiers

lvix18

XLDnaute Nouveau
Bonjour,

J'ai des formules (fichier 1) qui vont chercher des données dans un (fichier 2) tout simplement. Ce fichier 2 est généré par un programme SQL qui vient ecraser automatiquement le fichier 2 par un fichier du même nom sans l'ouvrir.

Le fichier 1 est celui que j'exploite, mon problème est que si je n'ouvre pas le fichier 2 les formules ne se synchronisent pas.

merci d'avance pour votre coup de pousse.
 

job75

XLDnaute Barbatruc
Re : Automatiser la prise en compte de formules entre 2 fichiers

Bonjour Ivix18,

Il s'agit donc de la mise à jour des liaisons.

Si les formules contiennent des fonctions volatiles (DECALER...) elles se recalculent en appuyant sur F9.

Sinon a priori 2 solutions :

1) revalider chaque formule => clic dans la barre de formule + touche <Entrée>

2) exécuter cette macro :

Code:
Sub Formules()
Dim w As Worksheet, cel As Range
Application.ScreenUpdating = False 'pour accélérer
For Each w In Worksheets
  For Each cel In w.UsedRange
    cel.Formula = cel.Formula
  Next
Next
End Sub
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Automatiser la prise en compte de formules entre 2 fichiers

Re,

Cette macro est plus simple et bien plus rapide :

Code:
Sub Formules()
Dim w As Worksheet, cel As Range
Application.ScreenUpdating = False
For Each w In Worksheets
  w.UsedRange = w.UsedRange.Formula
Next
End Sub
A+
 

lvix18

XLDnaute Nouveau
Re : Automatiser la prise en compte de formules entre 2 fichiers

Je rencontre quelques problèmes avec la macro:

Fichier 1(fiche véhicule)
Fichier 2 (mat)

l'onglet exportation du fichier 1 est concerné par la macro :

- après l'execution de la macro la colonne k(intitulé) affiche : #N/A.

- J'ai essayé par Auto_open de faire exécuter la macro au démarrage mais je n'y arrive pas :(

- Est possible de faire exécuter la macro que sur l'onglet exportation pour la rendre plus rapide ?

En tout cas, vraiement merci de partager vos connaissances avec nous (novices :p)

ps : La deuxième marco m'affiche une erreur
 

Pièces jointes

  • Nouveau WinZip File.zip
    174.1 KB · Affichages: 63

job75

XLDnaute Barbatruc
Re : Automatiser la prise en compte de formules entre 2 fichiers

Re,

Procédons dans l'ordre.

1) Après mise à jour des données, la colonne K avec RECHERCHEV affiche #N/A parce que les valeurs ne sont pas trouvées en feuille PCG, ça vous pouviez le voir.

2) Mettre la macro dans une Workbook_Open du ThisWorkbook est sans aucun intérêt puisque les liaisons se mettent (normalement) à jour automatiquement quand on ouvre le fichier.

3) Si seule la feuille Exportation est concernée utiliser :

Code:
Sub Formules()
Dim cel As Range
Application.ScreenUpdating = False
For Each cel In Sheets("Exportation").UsedRange
  cel.Formula = cel.Formula
Next
End Sub
4) Ma 2ème macro ne fonctionnait pas parce qu'il y a un TCD sur une autre feuille.

Mais sur la feuille Exportation il n'y a pas de TCD donc ceci fonctionne :

Code:
Sub Formules()
With Sheets("Exportation")
  .UsedRange = .UsedRange.Formula
End With
End Sub
L'exécution est nettement plus rapide.

A+
 

lvix18

XLDnaute Nouveau
Re : Automatiser la prise en compte de formules entre 2 fichiers

1/Pour la RECHERCHEV elle fonctionne maintenant, bizarre, les cellules sont simplement cachées dans PCG.

2/Les liaisons ne se font pas au démarage de mon fichier "fiche véhicule", si mat.xls c'est bien sa mon problème.

3/Si je fais une 1ere exportation SQL dans MAT.XLS qui fait 485 lignes, j'execute la macro dans l'autre fichier tout est OK. Par contre si je fais une autre exportation SQL dans mat.xls qui fait 380 lignes, j'execute ma macro et j'ai toujours les lignes précédentes de 381 lignes à 454 lignes, alors qu'elles n'existe plus dans mat.xls (si j'ouvre ce dernier les lignes disparaissent).

Désolé de paraitre un peu lourd :eek:
 

job75

XLDnaute Barbatruc
Re : Automatiser la prise en compte de formules entre 2 fichiers

Re,

Pour le point 2) : Onglet Fichier => Options => Options avancées => cocher en bas Mettre à jour les liaisons vers d'autres documents

Pour le point 3) si la cellule source a été effacée la formule de liaison doit renvoyer zéro.

Si la cellule source contient le texte vide "" alors on ne verra rien.

A+
 

lvix18

XLDnaute Nouveau
Re : Automatiser la prise en compte de formules entre 2 fichiers

Je crois que mon problème vient bien du calcul des liaisons. Cette case est bien cochée, et lorsque que j'appuie sur F9 rien ne se passe non plus. La seule solution est que j'ouvre mon autre fichier pour que les liaisons se fasse bien.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87