mise à jour automatique avec macro VBA

nono60

XLDnaute Nouveau
Bonjour,

J'ai recopié une macro trouvée sur le site qui compte le nombre de cellule d'une même couleur. Elle fonctionne bien mais dès que je fais une modification dans le fichier xls, la macro ne met pas à jour le nombre de cellule de même couleur. Je n'arrive pas à configurer cette macro pour que la mise à jour soit automatique dès qu'il y a une modification dans le fichier. En plus de cela dès que j'ouvre le fichier xls, j'active les macros et ensuite j'ai une Erreur d'excution 1004 qui me renvois en faisant le débogage à "Application.Run ("Macro_1")", le soucis vient peut être de là ?
Pouvez vous m'aidez ? je precise que je suis débutant en vba et que je n'y connais pas grand chose mais je suis près à apprendre.
Ci- dessous la macro en question, merci de votre précieuse aide et bonne fin de journée :)


Function ColorCountIf(SearchArea As Object, BgColor As Range) As Integer

Application.Volatile True
ColorCountIf = 0
MaCoul = BgColor.Interior.ColorIndex
For Each cell In SearchArea
If cell.Interior.ColorIndex = MaCoul Then ColorCountIf = ColorCountIf + 1
Next cell
Private Sub Workbook_Open()
Application.Run ("Macro_1")
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Bonjour nono60,

Dans quelle partie se trouve Macro_1 ?

Si elle est dans un module de code, ce qui serait le plus logique, alors il te suffit de l'appeler de cette manière :

Code:
Private Sub Workbook_Open()
Call Macro_1
End Sub

ou tout simplement :

Code:
Private Sub Workbook_Open()
Macro_1
End Sub

Si elle est dans un Userform, alors il faut préciser son nom dans l'appel :

Code:
Private Sub Workbook_Open()
Userform1.Macro_1
End Sub

Espérant avoir aidé.

Cordialement.
 

nono60

XLDnaute Nouveau
Re : mise à jour automatique avec macro VBA

Bonjour et merci pour l'aide,

Je confirme quand j'expore le projet, je retrouve bien ma macro dans Module 1, j'ai donc remplacé Application.Run ("Macro_1") par Call Macro_1 mais maintenant j'ai un message d'erreur de ce genre : "Erreur de compilation Sub ou Function non définie"
Je ne suis pas sûr que cet macro s'appelle bien Macro_1 :eek:
Encore merci pour votre aide.
 

Pierrot93

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Bonjour nono, Papou

le mieux déjà est de bien vérifier son nom... d'autre part regarde également si elle n'est pas déclarée en "private", auquel cas elle ne peut être appelée que par une procédure de ce même module... Pour l'appeler du module "thisworkbook" par exemple, enlève tout simplement ce "private"...

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Re,

bah... tu regardes dans le module où la macro est censée se trouver... sinon tu peux aussi à partir de la barre de menu Excel => outils => macro => macros, vérifier dans la boite de dialogue qui s'ouvre....
 

nono60

XLDnaute Nouveau
Re : mise à jour automatique avec macro VBA

Re
Désolé mais je ne trouve pas lorsque je vais voir ma macro dans Module1 et que je clique dessus, elle s'affiche bien à droite de l'ecran.
Lorsque que je recherche à partir de la barre de menu Excel => outils => macro => macros, il n'y a pas de macro pour ce classeur.
Je ne comprends plus rien.
Merci à celui qui m'aidera.
 

Papou-net

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Bonjour nono60,

Alors peut-être que cette macro se situe dans les macros personnelles den son auteur ?

Quoiqu'il en soit, si tu peux joindre ton fichier, il sera plus simple de te donner une réponse.

Cordialement.
 

nono60

XLDnaute Nouveau
Re : mise à jour automatique avec macro VBA

Merci Papounet :D

Je joins à ce message le fichier xls
Merci de l'aide apportée ;) c'est sympa !!
 

Pièces jointes

  • TEST COULEUR.xls
    20 KB · Affichages: 166
  • TEST COULEUR.xls
    20 KB · Affichages: 162
  • TEST COULEUR.xls
    20 KB · Affichages: 168

Pierrot93

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Re,

dans le classeur que tu as joint, il n'y a pas de Macro_1, simplement une fonction et une procédure événementielle qui devrait d'ailleurs se trouver dans le module "thisworkbook". A noter qu'il manque la fin de procédure sur la fonction, en bleu dans le code ci-desssous :

Code:
Function ColorCountIf(SearchArea As Object, BgColor As Range) As Integer
Application.Volatile True
ColorCountIf = 0
MaCoul = BgColor.Interior.ColorIndex
For Each cell In SearchArea
If cell.Interior.ColorIndex = MaCoul Then ColorCountIf = ColorCountIf + 1
Next cell
[B][COLOR="Blue"]End Function[/COLOR][/B]
Private Sub Workbook_Open()
Call Macro_1
End Sub

@+
 

MJ13

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Bonjour Nono, Papou, Pierrot

Nono: As tu remarqué que Pierrot (qui n'est pas un débutant sur XLD) t'as répondu hier à 13H18? Et tu l'as snobé :confused:.

Personnellement, c'est ce que je n'aime pas sur XLD.
 

nono60

XLDnaute Nouveau
Re : mise à jour automatique avec macro VBA

Bonjour MJ13 et les autres

Je n'ai pas snobé Pierrot :rolleyes: au contraire j'ai pris en compte ses remarques dans mon fichier mais le resultat n'est pas là.
C'est pour cela que je relance le post.
D'ailleurs le met le fichier xls joint modifié.
Encore merci pour votre aide;)
 

Pièces jointes

  • TEST COULEUR.xls
    36 KB · Affichages: 88
  • TEST COULEUR.xls
    36 KB · Affichages: 93
  • TEST COULEUR.xls
    36 KB · Affichages: 91

MJ13

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Re Nono


Je n'ai pas snobé Pierrot :rolleyes: au contraire j'ai pris en compte ses remarques dans mon fichier mais le resultat n'est pas là.

Ok, j'ai pas suivi l'affaire. Mais bon, si tu n'expliques pas un minimum par rapport à ce qu'a dit Pierrot, dans notre cas , comment veux-tu que quelqu'un ai envie d'aller plus loin sur ton problème?

Quand, on demande de l'aide sur un forum, le minimum est d'expliquer à ceux qui ont pris de leur temps en disant ce qui va et ce qui ne va pas pour mieux pouvoir répondre le cas échéant (c'est valable pour 99 % des demandes bien sur :)).
 

Papou-net

XLDnaute Barbatruc
Re : mise à jour automatique avec macro VBA

Bonjour MJ13 et les autres

Je n'ai pas snobé Pierrot :rolleyes: au contraire j'ai pris en compte ses remarques dans mon fichier mais le resultat n'est pas là.
C'est pour cela que je relance le post.
D'ailleurs le met le fichier xls joint modifié.
Encore merci pour votre aide;)

Bonsoir nono60, les participants,

Nono, ta fonction doit figurer dans le code d'un module et non dans celui d'une feuille de calcul.
Par ailleurs, ta formule de ta feuille de calcul faisait appel à une fonction qui n'existait pas.

Je te joins donc ton fichier modifié.

Espérant avoir répondu à ta demande.

Cordialement.
 

Pièces jointes

  • Nono60 TEST COULEUR.xls
    24.5 KB · Affichages: 176
Dernière édition:

Discussions similaires

Réponses
21
Affichages
385
Réponses
1
Affichages
195

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet