XL 2010 Fichiers lies woksheets change

Chombi

XLDnaute Occasionnel
Bonjour à tous

Est il possible sur 2 fichiers liés de faire exécuter "woksheets change" ou équivalent sur le second fichier
Quand on modifie A2 du fichier A, A2 du fichier B se modifie aussi. Je voudrai écrire "OK" en B2 dans le fichier B quand ce changement se fait

Merci
 

Pièces jointes

  • FichA.xlsm
    7.8 KB · Affichages: 14
  • FichB.xlsm
    13.6 KB · Affichages: 16

sousou

XLDnaute Barbatruc
Bonjour
Si tu connais les nom de tes fichiers copie ceci dans FicheA
Et la même chose dans ficheB en modifiant FichB par FichA
Tu auras ainsi la réciprocité de la manoeuvre.
Si j'ai compris??
Private Sub Worksheet_Change(ByVal Target As Range)
cancel = True
If Target.Address = "$A$2" And Target.Count = 1 Then
Workbooks("FichB.xlsm").Sheets(1).Range(Target.Address) = Target.Value
Workbooks("FichB.xlsm").Sheets(1).Range(Target.Address).Offset(0, 1) = "Ok"
Range("B2") = "OK"
End If
End Sub
 

Chombi

XLDnaute Occasionnel
Bonjour SOUSOU

Merci pour ta réponse
Mais ce n'est pas tout à fait ça, je me suis mal expliqué
En A2 du fichier B il y a la formule : =[FichA.xlsm]A!$A$2, et donc quand je modifie la cellule A2 du fichier A, A2 du Fichier B est modifié
je voudrai intercepter cette modif pour afficher "OK" en B2 du fichier B
je préfèrerai ne pas avoir à nommer les fichiers, les fichier A et B ne seront pas sur les mêmes PC

Merci
 

Chombi

XLDnaute Occasionnel
Bonjour job75

je m'excuse de ne pas être très clair
Oui le Ok va y rester tant que la cellule A2 d'un fichier C sera égal à 0 en utilisant le même type de procédure (j'osais espérer)
je ne voulais pas compliquer la chose en mettant trop d'info; ci joint 3 fichiers test pour illustrer

Sur le Fichier B j'ai fait un petit essai sur la feuille test qui ne fonctionne pas mais qui pourra peut être permettre de mieux comprendre
ce que je veux faire via 2 autres fichiers. Ma question est en fait : est ce qu'il existe une façon d'écrire une proc qui a le même effet que worksheets change pour que cela fonctionne avec le résultat d'une formule ?
 

Pièces jointes

  • FichB.xlsm
    21.1 KB · Affichages: 10
  • FichA.xlsm
    7.8 KB · Affichages: 14
  • FichC.xlsm
    7.8 KB · Affichages: 13

Chombi

XLDnaute Occasionnel
Re,

Savez-vous qu'une formule de liaison (en A2 du fichier B) est recalculée à chaque ouverture du fichier ?

oui, le but était d'éviter d'ouvrir et fermer le fichier trop souvent

A priori on ne peut pas se baser sur son recalcul pour déterminer B2.
je le pressentais malheureusement, mais j'ai essaye avec ça:
VB:
Private Sub Worksheet_Calculate()

  If Range("A2") = 1 Then
  Range("B2") = "OK"
  Range("C2") = 0
  End If
  If Range("A3") = 1 Then
  Range("B2") = ""
  Range("C3") = 0
  End If

End Sub
ça fonctionne voir fichier ci joint, il faut que j'adapte pour des fichier différents.....
 

Pièces jointes

  • FichB.xlsm
    20.7 KB · Affichages: 15

Chombi

XLDnaute Occasionnel
Re

et bin voila j'ai trouvé, cette petite astuce devrait me permettre de savoir si le fichier C doit être mis à jour par rapport au fichier A.
Quand "OK" en cellule "B2" de la feuil B du fichB, fichC doit être mis à jour, une fois la mise a jour faite, j'efface "OK" dans le fichB
je ne sais si je suis explicite (voir ci joint) bref MERCI à Job 75 et SOUSOU qui mon tout compte fait inciter à réfléchir :)
 

Pièces jointes

  • FichB.xlsm
    21.4 KB · Affichages: 17
  • FichA.xlsm
    13.8 KB · Affichages: 15
  • FichC.xlsm
    13.8 KB · Affichages: 18

Chombi

XLDnaute Occasionnel
Re

Honte à moi..... je rectifie si quelqu'un tombe sur ce fil
je viens de tester avec le fichier A et B sur un PC et le fichier C sur un autre PC, j'ai du rêver mais les liens ne fonctionnent pas, il faut que les 3 fichiers soit ouvert sur le même PC. Je ne sais pas pourquoi j'étais persuadé du résultat. je le voulais tellement que j'ai du le rêver.....

Est il possible d'avoir un fichier XL qui récupère les données de 2 fichiers XL provenant de 2 PC en temps réel sans avoir a ouvrir et fermer le fichier de synthèse à chaque modif, comme c'est possible sur le même PC ?
J'ai déjà passé un certain nombres d'heures à chercher la solution sans la trouver, si quelqu'un sait me dire OUI ou NON, je dormirai mieux ce soir

Merci
 

Chombi

XLDnaute Occasionnel
Bonjour à tous

Je me permet d'insister, car je suis vraiment surpris que se ne soit pas possible.( je sais qu'Excel a des limites, mais l'espoir fait vivre)
Si quelqu'un peut me confirmer que : si 2 fichiers, avec des liens tout simple style : cellule A2 =[FichA.xlsm]A'!$A$2, sont ouvert sur le même PC
pas de problème, mais que si les fichiers sont sur 2 PC différents et ouvert sur l'un et l'autre, il n'est pas possible (avec le lien modifier style cellule A2 ='\\PC-ZAZA\Users\Public\Documents\Bleu de terre\[FichA.xlsm]A'!$A$2) d'avoir le même résultat que sur 1 PC.
J'ai l'impression qu' en fait Il faut que les 2 fichiers soient ouvert sur le même PC pour que ça fonctionne, qu'il soit stocker sur 1 ou 2 PC. Il faut donc pour que ça fonctionne le faire par macro : tester si il est ouvert quelques part, pour le fermer afin de l'ouvrir sur le bon PC (et ça, c'est vraiment contraignant car ça prend du temps!). Est ce que je me trompe?

Pour expliquer: J'ai deux fichiers sur lesquelles on saisie des commandes de produit via un UF et je voulais gérer le stock en temps réel. J'ai donc créer un fichier stock (ouvert en permanence) avec une structure simple qui récupérait les saisies des commandes, et renvoyais en temps réel le stock actualisé dans l'UF. Avec les trois fichier sur le même PC pas de PB mais sur 2 PC c'est plus la même histoire...

j'espère avoir été compréhensible, si une bonne âme à une idée par Macro ou autre je suis preneur

Merci
 

Chombi

XLDnaute Occasionnel
Bonjour à tous

Me revoili revoilu

Je reviens vous faire part d'un petit truc que je viens de découvrir, pour ceux qui aurait suivi (mon but est d'avoir le suivi d'un stock avec une saisie sur plusieurs fichiers)
Un truc qui me permet de mettre à jour en temps réel sans ouverture fermeture de fichier (tout simple si on accepte d'avoir 4 fichiers ouverts)
Avec 4 fichiers: fichier A, B(léger!) et D(léger!) sur PC 1 et Fichier C sur PC2. A et B sont ouvert sur PC1 et C et D sont ouvert sur PC2
Sheet1WorkB = Sheet2WorkB+Sheet3WorkB,
Sheet2WorkB = Sheet1WorkA,
Sheet3WorkB = Sheet1WorkD,
Sheet2WorkA = Sheet1WorkB
Sheet1WorkD = Sheet1WorkC
Sheet2WorkD = Sheet1WorkB
et Sheet2WorkC = Sheet2WorkD (=Sheet1WorkB)
Les fichier B et D sont sur Public du PC1 en fichier partagé
Les fichiers A (PC1) et C (PC2) sont mes fichiers de travail, sur les feuil 1 je modifie les valeurs sur les feuil 2 je récupères les valeur

A chaque fois que je veux exécuter mon code sur le fichier A je met d'abord à jour par cela :
VB:
 ActiveWorkbook.UpdateLink Name:= _
 
                    "\\PC-1\Users\Public\Documents\ZAZA\D.xlsm", Type:= _
 
                    xlExcelLinks
j'exécute mon code et je termine en enregistrant B systématiquement

Et à chaque fois que je veux exécuter mon code sur le fichier C je met d'abord à jour par cela :
VB:
 ActiveWorkbook.UpdateLink Name:= _
 
                     "\\PC-1\Users\Public\Documents\ZAZA\B.xlsm", Type:= _
 
                     xlExcelLinks
j'exécute mon code et je termine en enregistrant D systématiquement

J'ai coché les options Excel pour ne pas avoir d'affichage des boites de dialogue

Tout fonctionne, la seule chose que je n'ai pas pu tester c'est si le code est exécuté pile poil en même temps sur les 2 fichiers..... a voir
Bref je vais enfin pouvoir dormir;);)

si quelqu'un veut faire un commentaire, une critique, je suis preneur Merci
 

Discussions similaires