Je dois toutes les semaines calculer des =E9volution sur des donn=E9es en
colonne du type :
45 58
15 18
14 14
11 15
45 32
Pour obtenir un tableau du type
45 58 +13
15 18 +3
14 14 =3D
11 15 +4
45 32 -13
J'ai d=E9velopp=E9 la macro suivante :
Sub Evolution()
' Macro pour calculer des =E9volutions
Dim Rng As Range
For Each Rng In Selection
ActiveCell.FormulaR1C1 =3D "=3DRC[-1]-RC[-2]"
If ActiveCell.Value > 0 Then Selection.NumberFormat =3D "+#"
If ActiveCell.Value =3D 0 Then Selection.NumberFormat =3D "=3D"
Selection.Font.Italic =3D True
With Selection
.HorizontalAlignment =3D xlCenter
End With
Next
End Sub
Deux probl=E8mes :
1) =E7a marche cellule par cellule mais pas sur une plage.
2) comme je passe par des format de cellule pour mettre les symboles +,
=3D et -, si je change un chiffre je peux me retrouver avec des
incoh=E9rences du type -+11 dans le cas o=F9 l'=E9volution change.
Est-ce que l'un ou plusieurs d'entre vous aurait une solution =E0
sugg=E9rer ?=20
Merci par avance.=20
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Trirème
Bonsoir Richard Essaye ce format personnalisé : Selection.NumberFormat = "+ 0;- 0;=" Sans faire de test sur le signe de tes données puisque le test est "inclus" dans le format.
Cordialement Trirème
Bonsoir à tous,
Je dois toutes les semaines calculer des évolution sur des données en colonne du type : 45 58 15 18 14 14 11 15 45 32
Pour obtenir un tableau du type 45 58 +13 15 18 +3 14 14 > 11 15 +4 45 32 -13
J'ai développé la macro suivante :
Sub Evolution()
' Macro pour calculer des évolutions
Dim Rng As Range For Each Rng In Selection
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]" If ActiveCell.Value > 0 Then Selection.NumberFormat = "+#" If ActiveCell.Value = 0 Then Selection.NumberFormat = "=" Selection.Font.Italic = True With Selection .HorizontalAlignment = xlCenter End With
Next
End Sub
Deux problèmes : 1) ça marche cellule par cellule mais pas sur une plage. 2) comme je passe par des format de cellule pour mettre les symboles +, = et -, si je change un chiffre je peux me retrouver avec des incohérences du type -+11 dans le cas où l'évolution change.
Est-ce que l'un ou plusieurs d'entre vous aurait une solution à suggérer ? Merci par avance.
A+
Bonsoir Richard
Essaye ce format personnalisé : Selection.NumberFormat = "+ 0;- 0;="
Sans faire de test sur le signe de tes données puisque le test est
"inclus" dans le format.
Cordialement
Trirème
Bonsoir à tous,
Je dois toutes les semaines calculer des évolution sur des données en
colonne du type :
45 58
15 18
14 14
11 15
45 32
Pour obtenir un tableau du type
45 58 +13
15 18 +3
14 14 > 11 15 +4
45 32 -13
J'ai développé la macro suivante :
Sub Evolution()
' Macro pour calculer des évolutions
Dim Rng As Range
For Each Rng In Selection
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]"
If ActiveCell.Value > 0 Then Selection.NumberFormat = "+#"
If ActiveCell.Value = 0 Then Selection.NumberFormat = "="
Selection.Font.Italic = True
With Selection
.HorizontalAlignment = xlCenter
End With
Next
End Sub
Deux problèmes :
1) ça marche cellule par cellule mais pas sur une plage.
2) comme je passe par des format de cellule pour mettre les symboles +,
= et -, si je change un chiffre je peux me retrouver avec des
incohérences du type -+11 dans le cas où l'évolution change.
Est-ce que l'un ou plusieurs d'entre vous aurait une solution à
suggérer ?
Merci par avance.
Bonsoir Richard Essaye ce format personnalisé : Selection.NumberFormat = "+ 0;- 0;=" Sans faire de test sur le signe de tes données puisque le test est "inclus" dans le format.
Cordialement Trirème
Bonsoir à tous,
Je dois toutes les semaines calculer des évolution sur des données en colonne du type : 45 58 15 18 14 14 11 15 45 32
Pour obtenir un tableau du type 45 58 +13 15 18 +3 14 14 > 11 15 +4 45 32 -13
J'ai développé la macro suivante :
Sub Evolution()
' Macro pour calculer des évolutions
Dim Rng As Range For Each Rng In Selection
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]" If ActiveCell.Value > 0 Then Selection.NumberFormat = "+#" If ActiveCell.Value = 0 Then Selection.NumberFormat = "=" Selection.Font.Italic = True With Selection .HorizontalAlignment = xlCenter End With
Next
End Sub
Deux problèmes : 1) ça marche cellule par cellule mais pas sur une plage. 2) comme je passe par des format de cellule pour mettre les symboles +, = et -, si je change un chiffre je peux me retrouver avec des incohérences du type -+11 dans le cas où l'évolution change.
Est-ce que l'un ou plusieurs d'entre vous aurait une solution à suggérer ? Merci par avance.