Ma macro ne s'execute pas automatiquement
Bonjour
J'ai fait en sorte qu'avec les fichiers que tu fournis, les textes des formes changent de couleur
Explique comment est modifiée la cellule BC4 de la page Calcul
Réponse claire du style :
BC4 est modifié par la cellule ..... de telle feuille
ou
BC4 est modifiée manuellement
ou
Il faut fournir un fichier qui reflète la réalité de ton fichier
Sinon on va trouver des solutions qui ne seront pas valables une fois transposées dans ton fichier (ce qui est le cas actuellement)
En attendant
Supprime la macro évènementielle Worksheet_Change de la page TDB
Copie la macro suivante dans le module de la feuille Calcul
Private Sub Worksheet_Calculate()
changercouleur
End SubSi cela ne fonctionne pas , fournis le fichier en cause
Merci pour tous ses efforts.
Mon chiffre qui se trouve sur la feuille Calcul!$BC4 est un résultat de formule (exprimé en pourcentage), se trouvant sur la feuille Calcul!
C'est un pourcentage de chiffre d'affaire sur objectif, qui varie selon la période choisie (janvier, février,...).
Il faut savoir que cette feuille calcul ne sera pas visible par la suite.
M feuille TDB reprend toutes les informations de ma page calcul.
sur ma feuille TDB se trouve notamment plusieurs zones textes, dont deux reprenne le chiffre de ma feuille Calcul!$BC4.
Ce sont les zone textes 12 et 24.
Ce qui se passe, c'est que sur ma feuille TDB, selon mes critères de filtres, cela va modifier le pourcentage qui se trouve sur ma feuille Calcul!$BC4.
Et par conséquent, ceux de ma feuille TDB dans mes zones textes 12 et 24.
L'objectif de la macro est de faire apparaître le pourcentage en rouge, lorsqu'il est en dessous de 100% et noir au dessus.
Voilà, je vais essayer le code,
Merci en tout cas, je vous tiens au courant
Ok,
Cela fonctionne
Donc voici le code, car il ne voulait pas au départ, il a du modifier un truc (débogage)
Donc code dans la module
Sub changercouleur()
' Changercouleur Macro
Dim cellule
cellule = Sheets("Calcul").Range("BC4")
With ActiveSheet.Shapes.Range(Array("TextBox 12", "TextBox 24"))
'With ActiveSheet.Shapes.Range(Array("TextBox 12","TextBox 24" ))
If cellule < 1 Then
With .TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent2
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
Else
With .TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0.150000006
.Transparency = 0
.Solid
End With
End If
End With
End Subet ensuite,
le code mis sur la feuille TDB ou se trouve les zones textes
Private Sub Worksheet_Calculate()
changercouleur
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'actualiser les données automatiquement'
ActiveWorkbook.RefreshAll
End SubPar contre, je crois que cela coincé, car il faut mettre Change dans la fenêtre VBA, car lui lorsque l'on rentre le code, il met changer, et cela le pertube et ouvre la fenêtre d'erreur.
Merci beaucoup encore une fois de ta patience
Et un grand merci et bonne fin de journée
Bonjour
Bien content que cela fonctionne
Ça a été dur mais on y est arrivé
Juste une dernière formalité : Il faut clôturé ce post (regarde ma signature et recherche dans un message le signe)
