likemonster
Messages postés40Date d'inscriptionvendredi 16 janvier 2009StatutMembreDernière intervention29 octobre 2009
-
18 mars 2009 à 16:46
likemonster
Messages postés40Date d'inscriptionvendredi 16 janvier 2009StatutMembreDernière intervention29 octobre 2009
-
18 mars 2009 à 17:51
Bonjour, voici mon problème j'ai une feuille 1 ou j'ai une macro privé qui dit si une cellule est modifié sur la plage A7:C206, alors le message "Attention lancez la macroX" puis la macro2 se lance automatiquement.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A7:C206]) Is Nothing Then
Cancel = True
ActiveSheet.Unprotect
Range("F15") = "Attention, relancez la macroX!!"
Run ("macro2")
ActiveSheet.Protect
End If
End Sub
Voici le code de la macro 2:
Sub macro2()
Sheets("feuil3").Activate
ActiveSheet.Unprotect
ActiveSheet.ChartObjects("Graphique 1").Activate
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Diagramme Faux: Non Actualisé"
End With
Range("D2") = "Attention, relancez la macro Tracer Diagramme!!"
ActiveSheet.Protect
Sheets("Données expérimentales").Activate
End Sub
Je voudrais que la macro 2 s'execute sans voir l'affichage de la feuil3! Je m'explique si j'ai 4 valeur à modifier sur la feuille 1 et bien je vais avoir la feuille 3 qui s'affichera 4 fois. Certes c'est très très rapide mais ennuyeux!! Est il possible que la macro 2 s'execute sur la feuille 3 avec l'affichage restant sur la feuille 1??
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 18 mars 2009 à 17:45
ouais c'est du au graph. qui est activé quand meme, meme si on ne lui demande pas. Sur un PC rapide cela ne ce vois pas
Donc 2 ajouts pour les pc lent :
Sub macro2()
Application.ScreenUpdating = False
With Sheets("feuil3")
.Unprotect
With .ChartObjects("Graphique 1").Chart
.HasTitle = True
.ChartTitle.Characters.Text = "Diagramme Faux: Non Actualisé"
End With
.Range("D2").Value = "Attention, relancez la macro Tracer Diagramme!!"
.Protect
End With
Application.ScreenUpdating = True
End Sub
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 18 mars 2009 à 17:13
Salut,
et bien voici une belle occasion de rappeler qu'il ne sert a rien en VBA excel d'activer ou de selectionner pour travailler sur des feuilles, des cellules voir des graphiques ou autre objets (sauf execption evidemment ;)
Sub macro2()
With Sheets("feuil3")
.Unprotect
With .ChartObjects("Graphique 1").Chart
.HasTitle = True
.ChartTitle.Characters.Text = "Diagramme Faux: Non Actualisé"
End With
.Range("D2").Value = "Attention, relancez la macro Tracer Diagramme!!"
.Protect
End With
End Sub
ATTENTION aux points car sans eux rien ne fonctionne !
likemonster
Messages postés40Date d'inscriptionvendredi 16 janvier 2009StatutMembreDernière intervention29 octobre 2009 18 mars 2009 à 17:26
salut bigfish_le vrai!! je viens de tester ton code en faisant un copier coller afin de ne pas oublier les points mais j'ai toujours le même soucis....