Mise à jour de cellule sur plusieurs onglets simultanément et indépendamment
snake211
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour la communauté,
J'aimerais changer simultanément et de facon indépendante une cellule sur plusieurs feuilles excel avec une liste déroulante.
Au final, j'aimerais que la valeur sélectionnée soit mise à jour dans chaque feuille concernée.
Exemple détaillé dans le fichier partagé.
Onglets: Principal, AAA, BBB et CCC.
J'aimerais donc que si je change une cellule spécifique dans AAA, les mises à jour se font dans Principal, BBB et CCC.
Si c'est dans BBB, les mises à jour se font dans Principal, AAA et CCC, ainsi de suite (donc de facon indépendante)
Merci d'avance pour votre aide.
Salutations
Lien pour le fichier partagé:
https://mon-partage.fr/f/yMOwwCKB/
J'aimerais changer simultanément et de facon indépendante une cellule sur plusieurs feuilles excel avec une liste déroulante.
Au final, j'aimerais que la valeur sélectionnée soit mise à jour dans chaque feuille concernée.
Exemple détaillé dans le fichier partagé.
Onglets: Principal, AAA, BBB et CCC.
J'aimerais donc que si je change une cellule spécifique dans AAA, les mises à jour se font dans Principal, BBB et CCC.
Si c'est dans BBB, les mises à jour se font dans Principal, AAA et CCC, ainsi de suite (donc de facon indépendante)
Merci d'avance pour votre aide.
Salutations
Lien pour le fichier partagé:
https://mon-partage.fr/f/yMOwwCKB/
A voir également:
- Mise à jour de cellule sur plusieurs onglets simultanément et indépendamment
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise à jour libre office - Accueil - Bureautique
- Mise a jour windows 7 vers 10 - Accueil - Mise à jour
4 réponses
Bonjour
Avec macro
Le code est dans chaque module des feuilles à traiter
https://mon-partage.fr/f/kfVKl6C0/
Cdlmnt
Avec macro
Le code est dans chaque module des feuilles à traiter
https://mon-partage.fr/f/kfVKl6C0/
Cdlmnt
Merci ccm81,
Par contre ca ne marche que pour l'onglet "Principal". Par contre en changeant dans les autres onglet rien ne se passe. Mais grâce à ton code j'ai trouvé la solution. Donc merci beaucoup!!!
En fait dans le code de d'appellation des variables il manque une variable:
Option Explicit
Public Const FP = "Principal"
Public Const celmoisFP = "B2"
Public Const celmoisF = "A1" 'dans les autres onglets (AAA,BBB et CCC) la cellule à changer est dans A1 et non B2
Public Const FA = "AAA"
Public Const FB = "BBB"
Public Const FC = "CCC"
Public Const celmoisFX = "A1"
et dans les onglets secondaires, l'Intersection est différence ainsi que la mise à jour de l'onglet principal:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim m As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(celmoisSecondaire)) Is Nothing Then 'à ce niveau
Application.EnableEvents = False
m = Target.Value
Sheets(FP).Range(celmoisFP).Value = m 'Et à ce niveau
Sheets(FB).Range(celmoisFX).Value = m
Sheets(FC).Range(celmoisFX).Value = m
Application.EnableEvents = True
End If
End Sub
Merci bcp pour ton aide rapide
Par contre ca ne marche que pour l'onglet "Principal". Par contre en changeant dans les autres onglet rien ne se passe. Mais grâce à ton code j'ai trouvé la solution. Donc merci beaucoup!!!
En fait dans le code de d'appellation des variables il manque une variable:
Option Explicit
Public Const FP = "Principal"
Public Const celmoisFP = "B2"
Public Const celmoisF = "A1" 'dans les autres onglets (AAA,BBB et CCC) la cellule à changer est dans A1 et non B2
Public Const FA = "AAA"
Public Const FB = "BBB"
Public Const FC = "CCC"
Public Const celmoisFX = "A1"
et dans les onglets secondaires, l'Intersection est différence ainsi que la mise à jour de l'onglet principal:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim m As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(celmoisSecondaire)) Is Nothing Then 'à ce niveau
Application.EnableEvents = False
m = Target.Value
Sheets(FP).Range(celmoisFP).Value = m 'Et à ce niveau
Sheets(FB).Range(celmoisFX).Value = m
Sheets(FC).Range(celmoisFX).Value = m
Application.EnableEvents = True
End If
End Sub
Merci bcp pour ton aide rapide
Exact
un copier/coller intempestif !!
dans les modules de feuille l'erreur était ici
If Not Intersect(Target, Range(celmoisFP)) Is Nothing Then
à modifier comme ça
If Not Intersect(Target, Range(celmoisFX)) Is Nothing Then
Cdlmnt
un copier/coller intempestif !!
dans les modules de feuille l'erreur était ici
If Not Intersect(Target, Range(celmoisFP)) Is Nothing Then
à modifier comme ça
If Not Intersect(Target, Range(celmoisFX)) Is Nothing Then
Cdlmnt
Si ça plante en cours d'exécution, l'instruction
Application.EnableEvents = False
inhibe l'exécution de la procedure Change
donc plus de réaction à un changement
et
Application.EnableEvents = True
permet de re-activer la procedure Change
Tu as aussi la solution de fermer excel et de le ré-ouvrir
Cdlmnt
Application.EnableEvents = False
inhibe l'exécution de la procedure Change
donc plus de réaction à un changement
et
Application.EnableEvents = True
permet de re-activer la procedure Change
Tu as aussi la solution de fermer excel et de le ré-ouvrir
Cdlmnt