Bonsoir à tous
j'ai de nouveau besoin de vos connaissances.
J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous.
1ère question:comment faire pour que le deuxième code se déclenche lorsque
j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le bon code
pour relier les deux)
2ème question: comment faire pour que ce deuxième code ne se déclenche que
lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure
est longue
code du bouton de ma BO dans un module
Set bouton =
CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "CompteCouleur"
bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module
Function CompteCouleur(champ As Range, couleur As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
lSteph
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
Bonsoir,
ci après
Cdlt.
lSteph
''''''''''''
Sub itos()
Dim bouton As CommandBarButton
'...
Set bouton =
CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "mamac"
bouton.Caption = "Calcul CE"
End Sub
Sub mamac()
Calculate 'c'est un recalcul qui recalculera la fonction
End Sub
Function CompteCouleur(champ As Range, couleur As Range)
'....
'''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous
j'ai de nouveau besoin de vos connaissances.
J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous.
1ère question:comment faire pour que le deuxième code se déclenche lorsque
j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le bon code
pour relier les deux)
2ème question: comment faire pour que ce deuxième code ne se déclenche que
lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure
est longue
code du bouton de ma BO dans un module
Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "CompteCouleur"
bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module
Function CompteCouleur(champ As Range, couleur As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
fredbzr
Bonsoir lSteph je viens de faire les modifs que tu m'as faites, le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue également lorsque je rempli mes cellules qui font appellent à d'autres macros, ce qui ralentit considérablement l'application (environ 5 sec par cellules) puisqu'à chaque fois le recalcul est lancé y aurait-il quelque chose que j'aurai mal fait?
"lSteph" a écrit dans le message de news:
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
Bonsoir lSteph
je viens de faire les modifs que tu m'as faites,
le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue
également lorsque je rempli mes cellules qui font appellent à d'autres
macros, ce qui ralentit considérablement l'application (environ 5 sec par
cellules) puisqu'à chaque fois le recalcul est lancé
y aurait-il quelque chose que j'aurai mal fait?
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.7d9a7d6cf39aa0c8.62733@frite.fr...
Bonsoir,
ci après
Cdlt.
lSteph
''''''''''''
Sub itos()
Dim bouton As CommandBarButton
'...
Set bouton =
CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "mamac"
bouton.Caption = "Calcul CE"
End Sub
Sub mamac()
Calculate 'c'est un recalcul qui recalculera la fonction
End Sub
Function CompteCouleur(champ As Range, couleur As Range)
'....
'''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous
j'ai de nouveau besoin de vos connaissances.
J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous.
1ère question:comment faire pour que le deuxième code se déclenche
lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le
bon code pour relier les deux)
2ème question: comment faire pour que ce deuxième code ne se déclenche
que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la
procédure est longue
code du bouton de ma BO dans un module
Set bouton =
CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "CompteCouleur"
bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module
Function CompteCouleur(champ As Range, couleur As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Bonsoir lSteph je viens de faire les modifs que tu m'as faites, le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue également lorsque je rempli mes cellules qui font appellent à d'autres macros, ce qui ralentit considérablement l'application (environ 5 sec par cellules) puisqu'à chaque fois le recalcul est lancé y aurait-il quelque chose que j'aurai mal fait?
"lSteph" a écrit dans le message de news:
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton = CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
Fredo P.
Bonjour Pour empêcher les macros de démarrer il faut ajouter Application.EnableEventsúlse en début de procédure et ne pas oublier de remettre à True en fin de proc et par précaution une gestion d'erreur ex: On error goto Gesterr ' & en fin de proc Gesterr: Application.EnableEvents=True "fredbzr" a écrit dans le message de news: 45832f94$0$25943$
Bonsoir lSteph je viens de faire les modifs que tu m'as faites, le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue également lorsque je rempli mes cellules qui font appellent à d'autres macros, ce qui ralentit considérablement l'application (environ 5 sec par cellules) puisqu'à chaque fois le recalcul est lancé y aurait-il quelque chose que j'aurai mal fait?
"lSteph" a écrit dans le message de news:
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton > > CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le
bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton > >> CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
Bonjour
Pour empêcher les macros de démarrer il faut ajouter
Application.EnableEventsúlse en début de procédure et ne pas oublier de
remettre à True en fin de proc et par précaution une gestion d'erreur ex:
On error goto Gesterr
' & en fin de proc
Gesterr:
Application.EnableEvents=True
"fredbzr" <fredbzr@wanadoo.fr> a écrit dans le message de news:
45832f94$0$25943$ba4acef3@news.orange.fr...
Bonsoir lSteph
je viens de faire les modifs que tu m'as faites,
le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue
également lorsque je rempli mes cellules qui font appellent à d'autres
macros, ce qui ralentit considérablement l'application (environ 5 sec par
cellules) puisqu'à chaque fois le recalcul est lancé
y aurait-il quelque chose que j'aurai mal fait?
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.7d9a7d6cf39aa0c8.62733@frite.fr...
Bonsoir,
ci après
Cdlt.
lSteph
''''''''''''
Sub itos()
Dim bouton As CommandBarButton
'...
Set bouton > > CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "mamac"
bouton.Caption = "Calcul CE"
End Sub
Sub mamac()
Calculate 'c'est un recalcul qui recalculera la fonction
End Sub
Function CompteCouleur(champ As Range, couleur As Range)
'....
'''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous
j'ai de nouveau besoin de vos connaissances.
J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous.
1ère question:comment faire pour que le deuxième code se déclenche
lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver
le
bon code pour relier les deux)
2ème question: comment faire pour que ce deuxième code ne se déclenche
que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la
procédure est longue
code du bouton de ma BO dans un module
Set bouton > >> CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "CompteCouleur"
bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module
Function CompteCouleur(champ As Range, couleur As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Bonjour Pour empêcher les macros de démarrer il faut ajouter Application.EnableEventsúlse en début de procédure et ne pas oublier de remettre à True en fin de proc et par précaution une gestion d'erreur ex: On error goto Gesterr ' & en fin de proc Gesterr: Application.EnableEvents=True "fredbzr" a écrit dans le message de news: 45832f94$0$25943$
Bonsoir lSteph je viens de faire les modifs que tu m'as faites, le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue également lorsque je rempli mes cellules qui font appellent à d'autres macros, ce qui ralentit considérablement l'application (environ 5 sec par cellules) puisqu'à chaque fois le recalcul est lancé y aurait-il quelque chose que j'aurai mal fait?
"lSteph" a écrit dans le message de news:
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton > > CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le
bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton > >> CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
fredbzr
Bonjour FredoP d'abord merci de t'être penché sur mon soucis. j'ai suivi tes conseils mes malheureusement, la fonction comptecouleur se déclenche toujours toute seule (progrès grâce à lSteph, elle se déclenche aussi par le bouton de la BO) j'ai beau avoir mis application.enable = false, rien y fait auris-tu une autre idée ci-joint une partie du code merci à toi
Sub auto_open() Application.DisplayFormulaBar = False Application.DisplayStatusBar = False
Function CompteCouleur(champ As Range, couleur As Range) Application.EnableEvents = False On Error Resume Next Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp Application.EnableEvents = True End Function
Sub mamac() Application.EnableEvents = False Calculate 'c'est un recalcul qui recalculera la fonction Application.EnableEvents = True End Sub
"Fredo P." a écrit dans le message de news:
Bonjour Pour empêcher les macros de démarrer il faut ajouter Application.EnableEventsúlse en début de procédure et ne pas oublier de remettre à True en fin de proc et par précaution une gestion d'erreur ex: On error goto Gesterr ' & en fin de proc Gesterr: Application.EnableEvents=True "fredbzr" a écrit dans le message de news: 45832f94$0$25943$
Bonsoir lSteph je viens de faire les modifs que tu m'as faites, le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue également lorsque je rempli mes cellules qui font appellent à d'autres macros, ce qui ralentit considérablement l'application (environ 5 sec par cellules) puisqu'à chaque fois le recalcul est lancé y aurait-il quelque chose que j'aurai mal fait?
"lSteph" a écrit dans le message de news:
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton >> > CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le
bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton >> >> CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Fred
-- - -
Bonjour FredoP
d'abord merci de t'être penché sur mon soucis.
j'ai suivi tes conseils mes malheureusement, la fonction comptecouleur se
déclenche toujours toute seule (progrès grâce à lSteph, elle se déclenche
aussi par le bouton de la BO)
j'ai beau avoir mis application.enable = false, rien y fait
auris-tu une autre idée
ci-joint une partie du code
merci à toi
Sub auto_open()
Application.DisplayFormulaBar = False
Application.DisplayStatusBar = False
Function CompteCouleur(champ As Range, couleur As Range)
Application.EnableEvents = False
On Error Resume Next
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
Application.EnableEvents = True
End Function
Sub mamac()
Application.EnableEvents = False
Calculate 'c'est un recalcul qui recalculera la fonction
Application.EnableEvents = True
End Sub
"Fredo P." <nespamerpasfrdpst@9online.fr> a écrit dans le message de news:
uw4nbTOIHHA.2632@TK2MSFTNGP06.phx.gbl...
Bonjour
Pour empêcher les macros de démarrer il faut ajouter
Application.EnableEventsúlse en début de procédure et ne pas oublier de
remettre à True en fin de proc et par précaution une gestion d'erreur ex:
On error goto Gesterr
' & en fin de proc
Gesterr:
Application.EnableEvents=True
"fredbzr" <fredbzr@wanadoo.fr> a écrit dans le message de news:
45832f94$0$25943$ba4acef3@news.orange.fr...
Bonsoir lSteph
je viens de faire les modifs que tu m'as faites,
le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue
également lorsque je rempli mes cellules qui font appellent à d'autres
macros, ce qui ralentit considérablement l'application (environ 5 sec par
cellules) puisqu'à chaque fois le recalcul est lancé
y aurait-il quelque chose que j'aurai mal fait?
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
mn.7d9a7d6cf39aa0c8.62733@frite.fr...
Bonsoir,
ci après
Cdlt.
lSteph
''''''''''''
Sub itos()
Dim bouton As CommandBarButton
'...
Set bouton >> > CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "mamac"
bouton.Caption = "Calcul CE"
End Sub
Sub mamac()
Calculate 'c'est un recalcul qui recalculera la fonction
End Sub
Function CompteCouleur(champ As Range, couleur As Range)
'....
'''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous
j'ai de nouveau besoin de vos connaissances.
J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous.
1ère question:comment faire pour que le deuxième code se déclenche
lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver
le
bon code pour relier les deux)
2ème question: comment faire pour que ce deuxième code ne se déclenche
que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la
procédure est longue
code du bouton de ma BO dans un module
Set bouton >> >> CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton)
bouton.BeginGroup = True
bouton.Style = msoButtonCaption
'bouton.Width = 100
bouton.OnAction = "CompteCouleur"
bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module
Function CompteCouleur(champ As Range, couleur As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller
Bonjour FredoP d'abord merci de t'être penché sur mon soucis. j'ai suivi tes conseils mes malheureusement, la fonction comptecouleur se déclenche toujours toute seule (progrès grâce à lSteph, elle se déclenche aussi par le bouton de la BO) j'ai beau avoir mis application.enable = false, rien y fait auris-tu une autre idée ci-joint une partie du code merci à toi
Sub auto_open() Application.DisplayFormulaBar = False Application.DisplayStatusBar = False
Function CompteCouleur(champ As Range, couleur As Range) Application.EnableEvents = False On Error Resume Next Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp Application.EnableEvents = True End Function
Sub mamac() Application.EnableEvents = False Calculate 'c'est un recalcul qui recalculera la fonction Application.EnableEvents = True End Sub
"Fredo P." a écrit dans le message de news:
Bonjour Pour empêcher les macros de démarrer il faut ajouter Application.EnableEventsúlse en début de procédure et ne pas oublier de remettre à True en fin de proc et par précaution une gestion d'erreur ex: On error goto Gesterr ' & en fin de proc Gesterr: Application.EnableEvents=True "fredbzr" a écrit dans le message de news: 45832f94$0$25943$
Bonsoir lSteph je viens de faire les modifs que tu m'as faites, le recalcul s'effectue bien par le bouton de la BO, mais il s'effectue également lorsque je rempli mes cellules qui font appellent à d'autres macros, ce qui ralentit considérablement l'application (environ 5 sec par cellules) puisqu'à chaque fois le recalcul est lancé y aurait-il quelque chose que j'aurai mal fait?
"lSteph" a écrit dans le message de news:
Bonsoir, ci après Cdlt. lSteph '''''''''''' Sub itos() Dim bouton As CommandBarButton '... Set bouton >> > CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "mamac" bouton.Caption = "Calcul CE"
End Sub
Sub mamac() Calculate 'c'est un recalcul qui recalculera la fonction End Sub
Function CompteCouleur(champ As Range, couleur As Range) '.... '''''''''''''''''
fredbzr a exposé le 15/12/2006 :
Bonsoir à tous j'ai de nouveau besoin de vos connaissances. J'ai créer une BO personnel sur laquelle j'ai mis le code ci dessous. 1ère question:comment faire pour que le deuxième code se déclenche lorsque j'appuis sur mon bouton (en fait je n'ai pas réussi à trouver le
bon code pour relier les deux) 2ème question: comment faire pour que ce deuxième code ne se déclenche que lorsque j'appuis sur le bouton car j'ai beaucoup de cellules et la procédure est longue
code du bouton de ma BO dans un module Set bouton >> >> CommandBars("BarreBoutons").Controls.Add(Type:=msoControlButton) bouton.BeginGroup = True bouton.Style = msoButtonCaption 'bouton.Width = 100 bouton.OnAction = "CompteCouleur" bouton.Caption = "Calcul CE"
code que je veux déclencher dans le même module Function CompteCouleur(champ As Range, couleur As Range) Application.Volatile Dim c, temp temp = 0 For Each c In champ If c.Interior.ColorIndex = couleur.Interior.ColorIndex Then temp = temp + 1 End If Next c CompteCouleur = temp
End Function
Merci d'avance pour le temps que vous passerez à me dépatouiller