Avoir les memes données sur plusieurs feuilles

marie49

XLDnaute Occasionnel
Bonjour,

Je voudrais savoir si c'est possible d'avoir les mêmes données sur plusieurs feuilles et quand on modifie une seule feuille cela se répercute sur les autres.

J'ai deux tableaux sur deux feuilles différentes dans le même fichier. ces deux tableaux ont les même informations sur la partie de gauche. C'est cette partie que je voudrais identique sur chaque feuille (même lorsqu'on fait un ajout de ligne).
J'avais commencé par utiliser les valeurs par références mais ce n'est pas l'idéal car on plus j'utilise une mise en forme (fusion, gras, bordure...).

Quelle est la meilleure solution pour mon problème? SVP

De plus, j'ai aussi des parties de tableaux avec des valeurs différentes. Je voudrai les conserver pour la même ligne si l'utilisateur vient à ajouter une ligne sur une des feuilles..

Merci de vos réponses
Marie
 

marie49

XLDnaute Occasionnel
Re : Avoir les memes données sur plusieurs feuilles

Bonjour abcd,

C'est vrai. Ce serait une idée à creuser si j'automatisais la saisie. Mais en fait pour l'instant n'importe quel utilisateur peut intervenir....

A moins que je passe par activesheetchange (workbook_sheetchange) qui sélectionnerait les deux feuilles si l'utilisateur modifiait quelque chose sur une partie des feuilles...

Merci pour cette idée, je vais tester


Marie
 
Dernière édition:

marie49

XLDnaute Occasionnel
Re : Avoir les memes données sur plusieurs feuilles

Ca ne marche pas.

J'ai mis dans workbook_sheetselectionchange:
Set Sh = Sheets("BASE")
If ActiveSheet.Name = "BASE" Then
If Not Application.Intersect(Target, Sh.Range("B15:S70")) Is Nothing Then
Application.EnableEvents = False
Sheets(Array(1, 2)).Select
Application.EnableEvents = True
End If
Sheets("BASE").Select
End If

Je n'ai pas l'impression d'être loin car il me sélectionne bien les deux feuilles mais rebascule tout de suite sur la feuille "BASE". Le test de départ n'est peut etre pas correct (ActiveSheet.Name = "BASE" ).

Qui aurait une idée?
Marie
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Avoir les memes données sur plusieurs feuilles

Bonjour Marie, ABCD

Si j'ai bien compris, regarde le code ci dessous, suppose un classeur avec uniquement 2 feuilles, les modifications de la plage "B15:S70" d'une de ces feuilles impactent l'autre feuille :

Code:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim mafeuille As String
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Sh.Range("B15:S70")) Is Nothing Then
    mafeuille = IIf(Sh.Name = "Feuil1", "Feuil2", "Feuil1")
    Application.EnableEvents = False
    Sheets(mafeuille).Range(Target.Address).Value = Target.Value
    Application.EnableEvents = True
End If
End Sub

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Avoir les memes données sur plusieurs feuilles

Re

qu'est ce qui ne marche pas ? message d'erreur ou ce n'est pas le résultat attendu ? Pour le "iif" évalue une expression et en fonction du résultat, vrai ou faux, renvoie une valeur...

@+
 

marie49

XLDnaute Occasionnel
Re : Avoir les memes données sur plusieurs feuilles

J'ai trouvé : a force de faire des texts, le workbook-sheetchange était désactivé...

j'ai fermé excel et ca marche mieux sauf un message d'erreur au bout de trois modification : "la méthode 'intersect' de l'objet '_application' a échoué.

je vais vérifier que je n'ai pas des conditions (style liste sur la deuxieme feuille)

Merci beaucoup

Marie
 

marie49

XLDnaute Occasionnel
Re : Avoir les memes données sur plusieurs feuilles

SUPER,

ca marche génial... merci a vous deux

en fait la derniere erreur c'est par ce que j faisais un set sur sh...
'Set Sh sheets("BASE"). Quand je faisais des modifictaions sur la deuxieme feuille, ca buggait.


Maintenant, je vais tester pour une mise en forme et ajout de ligne...

Comment savoir que le workbook_sheetchange est désactivé? Cela peut être une erreur de l'utilisateur!!! et après on ne s'en rend pas compte

Marie
 

Pierrot93

XLDnaute Barbatruc
Re : Avoir les memes données sur plusieurs feuilles

Re

logiquement si un utilisateur active bien les macros lors de l'ouverture du classeur et si ton code est bien "bordé il n'y a pas trop de raison pour que les macros événementielles se désactivent, se qui a du se produire dans ton cas, c'est une erreur après le "Application.EnableEvents = False" et avant que cette instruction soit remise à "True"...

Une autre solution est d'utiliser une variable "static" de type "boolean" :

Code:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
[B][COLOR="Red"]Static b As Boolean[/COLOR][/B]
Dim mafeuille As String
[COLOR="red"][B]If b = True Then Exit Sub[/B][/COLOR]
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Sh.Range("B15:S70")) Is Nothing Then
   [COLOR="red"][B] b = True[/B][/COLOR]
    mafeuille = IIf(Sh.Name = "Feuil1", "Feuil2", "Feuil1")
    Sheets(mafeuille).Range(Target.Address).Value = Target.Value
    [B][COLOR="red"]b = False[/COLOR][/B]
End If
End Sub

@+

Edition : pour copier le format en + des valeurs, tu peux utiliser le code ci-dessous :
Code:
  Target.Copy Sheets(mafeuille).Range(Target.Address)

2 ème dition ".value" en trop dans code ci dessous.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 921
Membres
103 039
dernier inscrit
SoulMat69