Format nombre MacroFonction

Christian T

XLDnaute Nouveau
Bonjour le forum

Pour apprendre, je crée des macro fonctions et j'ai des problèmes de mise en forme.

Ainsi dans la procédure ci-dessous :

Function age(dn)
age = Int((Date - dn) / 365.25)
Selection.NumberFormat = '[>=2] 0'' ans'';0'' an'''
End Function

J'ai un problème de même nature avec une autre fonction que voici :
Function SommeRouge(MaPlage As Range)
Dim Cellule As Range
Dim TotalPartiel As Double
TotalPartiel = 0

For Each Cellule In MaPlage.Cells
If Cellule.Font.ColorIndex = 3 Then
TotalPartiel = TotalPartiel + Cellule.Value
End If
Next Cellule

SommeRouge = TotalPartiel
Selection.NumberFormat = '# #00,00'

End Function

Où est l'erreur?

Merci d'avance

Christian
 

Hervé

XLDnaute Barbatruc
Bonsoir christian

tu ne peux pas utiliser selection avec une formule personnalisée. par définition ce type de code renvoi une valeur et ne sont pas rattaché à une cellule.

De plus, il me semble que par habitude, on ne force pas le format d'une valeur renvoyée par ce type de code, mais si tu veux le faire essaye ceci :

Function SommeRouge(MaPlage As Range)
Dim Cellule As Range
Dim TotalPartiel As Double
TotalPartiel = 0

For Each Cellule In MaPlage.Cells
If Cellule.Font.ColorIndex = 3 Then
TotalPartiel = TotalPartiel + Cellule.Value
End If
Next Cellule

SommeRouge = Format(TotalPartiel, '# #00.00')

End Function

salut
 
C

Christian T

Guest
Bonjour le forum,

Merci hervé de ta réponse.

J'ai essayé ta proposition. Cela me renvoie une réponse 'bien' formaté mais texte.

J'ai compris : je ne peux pas formater ma cellule dan s la procédure.

Bonne journée à tous
 

Discussions similaires

Réponses
0
Affichages
83
Réponses
1
Affichages
121

Statistiques des forums

Discussions
311 726
Messages
2 081 955
Membres
101 852
dernier inscrit
dthi16088