OVH Cloud OVH Cloud

affecter l"évenement Workbook_SheetChange sur un bouton

11 réponses
Avatar
ALF
Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value =
Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF

10 réponses

1 2
Avatar
Daniel
Bonsoir.
Il faut que tu comprennes que la macro évènementielle Workbook_SheetChange
se déclenche indépendamment de l'usage d'un bouton. Elle se déclenche lorsue
la valeur d'une cellule a changé. Target représente la ou les cellules
modifiées et Sh la feuille modifiée.
Le code de la macro doit se trouver au niveau "thisworkbook" et ne peut pas
être inclus dans le code d'une autre macro.
Par exemple :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Feuil1" And Target.Address = "$A$1" Then
MsgBox "toto"
End If
End Sub

affiche "toto" si la cellule modifiée est A1 sur la feuille "Feuil1".
Cordialement.
Daniel
"ALF" a écrit dans le message de news:

Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un
bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne
pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF


Avatar
JB
Bonsoir,

Synchro feuilles:

http://cjoint.com/?kFt0tHEJEr

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Application.EnableEvents = False
mois = [C2]
indic = [E2]
For Each s In Array("AVIGNON", "MARSEILLE", "TOULON")
Sheets(s).[C2] = mois
Sheets(s).[E2] = indic
Next s
Application.EnableEvents = True
End Sub

Cordialement JB


Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un bo uton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne p as..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendette ment",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.V alue
Worksheets("Procédures Collectives").Range(Target.Address).Value =
Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target. Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF


Avatar
ALF
Bonjour,
Merci Daniel pour le renseignement,..
cependant y aurait t-il moyen de fabriquer une macro classique autre que la
macro evenementielle Workbook_sheetchange,afin de pouvoir l'affecter à un
bouton??
Ceci afin de provoquer le changement lorsqu'on le veut....
je rappelle que le but est si on le desire de transporter les choix de 2
listes deroulantes sur ces memes listes deroulantes(au mêmes emplacements)
mais sur d'autres onglets du classeur..
Merci encore pour ton coup de main..
--
ALF



Bonsoir.
Il faut que tu comprennes que la macro évènementielle Workbook_SheetChange
se déclenche indépendamment de l'usage d'un bouton. Elle se déclenche lorsue
la valeur d'une cellule a changé. Target représente la ou les cellules
modifiées et Sh la feuille modifiée.
Le code de la macro doit se trouver au niveau "thisworkbook" et ne peut pas
être inclus dans le code d'une autre macro.
Par exemple :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Feuil1" And Target.Address = "$A$1" Then
MsgBox "toto"
End If
End Sub

affiche "toto" si la cellule modifiée est A1 sur la feuille "Feuil1".
Cordialement.
Daniel
"ALF" a écrit dans le message de news:

Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un
bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne
pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value > > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF







Avatar
ALF
Bonsoir Daniel et merci pour le renseignement,
Cependant,serait il possible de creer une macro classique et sous quelle
forme,sans utiliser Workbook SheetChange afin de l'affecter au bouton..
ceci afin de pouvoir declencher la synchronisation uniquement lorsqu on le
desire...
je rappelle que le but est de transporter les 2 choix des listes deroulantes
sur les 2 autres listes deroulantes(memes emplacements) mais sur d'autres
onglets..
Merci encore de ton aide
--
ALF



Bonsoir.
Il faut que tu comprennes que la macro évènementielle Workbook_SheetChange
se déclenche indépendamment de l'usage d'un bouton. Elle se déclenche lorsue
la valeur d'une cellule a changé. Target représente la ou les cellules
modifiées et Sh la feuille modifiée.
Le code de la macro doit se trouver au niveau "thisworkbook" et ne peut pas
être inclus dans le code d'une autre macro.
Par exemple :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Feuil1" And Target.Address = "$A$1" Then
MsgBox "toto"
End If
End Sub

affiche "toto" si la cellule modifiée est A1 sur la feuille "Feuil1".
Cordialement.
Daniel
"ALF" a écrit dans le message de news:

Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un
bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne
pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value > > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF







Avatar
ALF
Bonsoir Daniel et merci pour le renseignement,
Cependant,serait il possible de creer une macro classique et sous quelle
forme,sans utiliser Workbook SheetChange afin de l'affecter au bouton..
ceci afin de pouvoir declencher la synchronisation uniquement lorsqu on le
desire...
je rappelle que le but est de transporter les 2 choix des listes deroulantes
sur les 2 autres listes deroulantes(memes emplacements) mais sur d'autres
onglets..
Merci encore de ton aide
--
ALF
--
ALF



Bonsoir.
Il faut que tu comprennes que la macro évènementielle Workbook_SheetChange
se déclenche indépendamment de l'usage d'un bouton. Elle se déclenche lorsue
la valeur d'une cellule a changé. Target représente la ou les cellules
modifiées et Sh la feuille modifiée.
Le code de la macro doit se trouver au niveau "thisworkbook" et ne peut pas
être inclus dans le code d'une autre macro.
Par exemple :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Feuil1" And Target.Address = "$A$1" Then
MsgBox "toto"
End If
End Sub

affiche "toto" si la cellule modifiée est A1 sur la feuille "Feuil1".
Cordialement.
Daniel
"ALF" a écrit dans le message de news:

Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un
bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne
pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value > > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF







Avatar
Daniel
Peux-tu déposer un classeur exemple avec les deux listes déroulantes ?
Daniel
"ALF" a écrit dans le message de news:

Bonsoir Daniel et merci pour le renseignement,
Cependant,serait il possible de creer une macro classique et sous quelle
forme,sans utiliser Workbook SheetChange afin de l'affecter au bouton..
ceci afin de pouvoir declencher la synchronisation uniquement lorsqu on le
desire...
je rappelle que le but est de transporter les 2 choix des listes
deroulantes
sur les 2 autres listes deroulantes(memes emplacements) mais sur d'autres
onglets..
Merci encore de ton aide
--
ALF
--
ALF



Bonsoir.
Il faut que tu comprennes que la macro évènementielle
Workbook_SheetChange
se déclenche indépendamment de l'usage d'un bouton. Elle se déclenche
lorsue
la valeur d'une cellule a changé. Target représente la ou les cellules
modifiées et Sh la feuille modifiée.
Le code de la macro doit se trouver au niveau "thisworkbook" et ne peut
pas
être inclus dans le code d'une autre macro.
Par exemple :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "Feuil1" And Target.Address = "$A$1" Then
MsgBox "toto"
End If
End Sub

affiche "toto" si la cellule modifiée est A1 sur la feuille "Feuil1".
Cordialement.
Daniel
"ALF" a écrit dans le message de news:

Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un
bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne
pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As
Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives",
"Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value =
Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value >> > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value =
Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF









Avatar
JB
Dans un module:

Sub synchro()
mois = [B5]
indic = [B14]
For Each s In Array("AVIGNON", "MARSEILLE", "TOULON")
Sheets(s).[B5] = mois
Sheets(s).[B14] = indic
Next s
End Sub

JB


Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un bo uton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne p as..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendette ment",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.V alue
Worksheets("Procédures Collectives").Range(Target.Address).Value =
Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target. Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF


Avatar
ALF
Bonsoir,JB

Sub Synchro fonctionne mais par contre ce n'est pas le cas de Synchro
feuilles...
j'ai saisi la procedure sur "thisWorkbook" et sur l'evenement
Worbook_SheetChange ..il n'y a aucun message suite au choix dans la liste
deroulante mais la mise a jour ne se fait pas dans les autres onglets...
j'ai essayé d'enlever Application.EnableEvents = False et
Application.EnableEvents = True mais meme resultat...
je suis en excel 2000(sur mon domicile) ,je ne l'ai pas encore essaye sur
excel 2003 a mon travail...
Merci de ton soutien
--
ALF



Dans un module:

Sub synchro()
mois = [B5]
indic = [B14]
For Each s In Array("AVIGNON", "MARSEILLE", "TOULON")
Sheets(s).[B5] = mois
Sheets(s).[B14] = indic
Next s
End Sub

JB


Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value > > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF






Avatar
JB
Bonsoir,

Je travaille en 2003. Je ne comprends pas pourquoi la synhro sur le
changement de feuille ne fonctionne pas.
Je viens de tester la PJ que j'ai envoyé et cela fonctionne sur mon
poste.

JB




Bonsoir,JB

Sub Synchro fonctionne mais par contre ce n'est pas le cas de Synchro
feuilles...
j'ai saisi la procedure sur "thisWorkbook" et sur l'evenement
Worbook_SheetChange ..il n'y a aucun message suite au choix dans la liste
deroulante mais la mise a jour ne se fait pas dans les autres onglets...
j'ai essayé d'enlever Application.EnableEvents = False et
Application.EnableEvents = True mais meme resultat...
je suis en excel 2000(sur mon domicile) ,je ne l'ai pas encore essaye sur
excel 2003 a mon travail...
Merci de ton soutien
--
ALF



Dans un module:

Sub synchro()
mois = [B5]
indic = [B14]
For Each s In Array("AVIGNON", "MARSEILLE", "TOULON")
Sheets(s).[B5] = mois
Sheets(s).[B14] = indic
Next s
End Sub

JB


Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur u n bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonction ne pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As R ange)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surend ettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Targ et.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value =
Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.V alue
Worksheets("Crédit Management").Range(Target.Address).Value = Tar get.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF








Avatar
ALF
re,
peux tu le tester sur excel 2000...c'est peut etre un pb typique excel
2000..je ne pourrais tester excel 2003 que demain..
cordialement

--
ALF


"JB" wrote:

Bonsoir,

Je travaille en 2003. Je ne comprends pas pourquoi la synhro sur le
changement de feuille ne fonctionne pas.
Je viens de tester la PJ que j'ai envoyé et cela fonctionne sur mon
poste.

JB




Bonsoir,JB

Sub Synchro fonctionne mais par contre ce n'est pas le cas de Synchro
feuilles...
j'ai saisi la procedure sur "thisWorkbook" et sur l'evenement
Worbook_SheetChange ..il n'y a aucun message suite au choix dans la liste
deroulante mais la mise a jour ne se fait pas dans les autres onglets...
j'ai essayé d'enlever Application.EnableEvents = False et
Application.EnableEvents = True mais meme resultat...
je suis en excel 2000(sur mon domicile) ,je ne l'ai pas encore essaye sur
excel 2003 a mon travail...
Merci de ton soutien
--
ALF



Dans un module:

Sub synchro()
mois = [B5]
indic = [B14]
For Each s In Array("AVIGNON", "MARSEILLE", "TOULON")
Sheets(s).[B5] = mois
Sheets(s).[B14] = indic
Next s
End Sub

JB


Bonjour,
comment faut il s'y prendre pour affecter un evenement
Workbook_SheetChange(byval sh as object, byval target as range) sur un bouton
???
Ceci afin de synchroniser le choix de 2 listes deroulantes(Target B5 ET
Target B14 d'un onglet sur les 2 Autres listes deroulantes des autres
onglets..

Voici l'ebauche de la macro affecté au bouton mais cela ne fonctionne pas..

Sub Bouton16_QuandClick()

Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Select Case sh.Name
Case Is = "Impayés Internet", "Procédures Collectives", "Surendettement",
"Crédit Management"
Case Else
If Target.Address <> "$B$5" Then Exit Sub
If Target.Address <> "$B$14" Then Exit Sub
If Target = "" Then Exit Sub
Worksheets("Impayés Internet").Range(Target.Address).Value = Target.Value
Worksheets("Procédures Collectives").Range(Target.Address).Value > > > > Target.Value
Worksheets("Surendettement").Range(Target.Address).Value = Target.Value
Worksheets("Crédit Management").Range(Target.Address).Value = Target.Value
End Select
End Sub

End Sub

Merci de votre soutien.
--
ALF












1 2