VBA - Centré texte dans une cellule

Je voudrais centré du texte dans une cellule avec le VBA. Une fonction doit retourner du texte si une condition n'est pas atteinte. J'aimerais l'avoir centré.

Voici mon code :

Public Function CHIFFRELETTRE(Nombre As Double) As String
Dim vaEntier As Variant, byDécimal As Byte

If Nombre < 0 Then
CHIFFRETEXTE = "#NÉGATIF!"
Exit Function
End If
End Function

Dans ma cellule B2 voici ma fonction :

=CHIFFRECENTRE(A1)

Salut et bienvenue sur le Forum,

Je n'arrive pas à faire fonctionner ta fonction dans un nouveau fichier Excel. Comme tu peux le voir dans l'image ci-dessous, le resultat de ta formule en B2 pour le chiffre négatif en A2 renvoi une cellule vide à la place du texte indiqué dans tes copies d'écran.

10 10

Mais en fait je pense que la mise en forme de la cellule n'a rien à voir avec ta fonction ; selon moi, si tu définis au préalable - ou éventuellement après avoir inscrit et incrémenté ta formule - une mise en forme centrée de la cellule, ton texte sera centré.

Sinon peux-tu fournir un fichier sur lequel ta fonction renvoie le résultat désiré ?

Cordialement.

joindre un fichier

Je suis désolé, j'ai fais une erreur dans mon code sur le forum.

Public Function CHIFFRELETTRE(Nombre As Double) As String

Dim vaEntier As Variant, byDécimal As Byte

If Nombre < 0 Then

CHIFFRELETTRE= "#NÉGATIF!"

Exit Function

End If

End Function

15test.xlsm (13.21 Ko)

Re,

Yvouille a écrit :

Mais en fait je pense que la mise en forme de la cellule n'a rien à voir avec ta fonction ; selon moi, si tu définis au préalable - ou éventuellement après avoir inscrit et incrémenté ta formule - une mise en forme centrée de la cellule, ton texte sera centré.

As-tu essayé de faire ce que je t'ai indiqué ??

Regarde l'image ci-dessous, c'est exactement ça la solution

Amicalement.

10 10

Oui j'ai essayé, mais se que j'aimerais faire c'est de ne pas changer la mise en forme de la cellule par le ruban mais bien dans le code VBA.

Bonjour,

une fonction retourne une valeur et ne change jamais son environnement.

eric

Re,

Je ne te comprends pas très bien quel est ton but. Dans les cellules concernées, tu dois bien placer ta formule, donc tu ne peux rien avoir d’autre qu’une cellule vide, le résultat attendu ou un message d’erreur si la donnée de base n’est pas un chiffre.

A quoi ça te sert de ne pas avoir la mise en forme ‘Centrée’ dans ces cellules uniquement au moment où la valeur renvoyée change (mais elle ne fait que changer uniquement, la formule est déjà en place avant !!!).

Amicalement.

NB : Salut Eric

Re,

Et si je peux me permettre encore, tu peux obtenir ton message par un simple format personnalisé :

Standard;"#NÉGATIF!";0

Sera aligné à droite car le contenu réel est toujours le nombre négatif.

A la limite tu ajoutes qq espaces derrière pour simuler le centrage

eric

Merci beaucoup pour ta réponse eriiic.

Maintenant je sais que ce n'est pas possible de changer l'alignement pour une fonction qui retourne une valeur.

Loceroitar a écrit :

Merci beaucoup pour ta réponse eriiic.

Mais je t'en prie

Je te remercie aussi Yvouille d'avoir chercher aussi pour trouver la réponse.

Au plaisir de se recroiser sur le forum.

Rechercher des sujets similaires à "vba centre texte"