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
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