Format de cellule en % ou en Points vba

  • Initiateur de la discussion Initiateur de la discussion nemzor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nemzor

XLDnaute Nouveau
Bonjour à tous,

Je tente de créer une macro qui modifie automatiquement le format du chiffre exprimé : en points ou en %.
Dans mon tableau totalement automatisé, j'ai une colonne qui exprime les variations (croissance ou décroissance) de mes données, d'une année sur l'autre.
Exemple : mon chiffre d'affaires a augmenté de "x %" entre 2011 et 2012.
Il faut savoir que le critère "chiffre d'affaires" est choisi dans une liste déroulante. Jusque là, pas de problèmes puisque le critère est simple, et la variation en %.
Or, dans ce tableau, je peux choisir des critères de ma liste déroulante plus exotiques, tels que "marge divisé par chiffres d'affaires", ce qui va modifier ma colonne "variations", puisqu'ici j'aurai besoin qu'elles s'expriment en points, et non plus en %.

J'aimerais que l'on corrige ma tentative de code VBA afin que cette macro modifie le format de cellule de la colonne "variations" en fonction du critère choisi.
Voici le code, avec qques explications :

Sub FormatCross()
'
'
Actfeuille = ActiveSheet.Name

Crit = Range("critere1").Value => "critere1" est la cellule qui se modifie automatiquement en fonction du critère choisi. Ex : si on choisi le Chiffre d'affaires, "critere1" va prendre la valeur "%". Si on prend le critere "marge sur CA", "critere1" va prendre la valeur "pts" etc.

Application.GoTo Reference:="Format_CrossCAGR" nom de ma colonne "variations"

If Crit = "%Var. Value" Then
Selection.NumberFormat = "#,##0"
ElseIf Crit = "%" Then
Selection.NumberFormat = "#,##0.0%" Jusqu'ici ca fonctionne puisque toutes mes variations sont en %, même quand je modifie le format de cellule manuellement et éxectute la macro : les variations reviennent en %.
ElseIf Crit = "pts" Then
Selection.NumberFormat = "#,##0.0\ [$pts]" peut-être que l'erreur vient de là et simplement de l'intitulé du format en points...
ElseIf Crit = "ptsVar. Value" Then
Selection.NumberFormat = "#,##0.0\ [$pts]"
End If
Range("A1").Select
Sheets(Actfeuille).Activate

End Sub

Merci d'avance pour l'aide que vous pourrez m'apporter.

nemzor
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
111
Réponses
11
Affichages
602
Retour