Comment écrire en VBA dans une forme

Bonsoir a tous, forum bonsoir,

Je souhaiterai écrire un message en VBA dans une forme

J'ai une liste de prénoms d'afficher en colonne (A)

Lorsque je clic sur la forme bleue intituler (Majuscule) une macro se déclenche et transforme

alors la liste en majuscule et un message est afficher pour l'instant en C18

Idem pour la forme (Minuscule)

Mais je voudrais bien que ce message ne s'affiche pas en C18, mais dans la forme verte et je ne sais

pas comment faire si toutefois c'est possible bien sur.

Voir svp explication dans le fichier ci-joint

Merci a vous pour votre aide, bonne soirée a vous.

Cdlt Ray

120essai-forme.xlsm (17.58 Ko)

Bonsoir,

Peut-être ainsi :

ActiveSheet.Shapes("Rectangle 3").DrawingObject.Text = "Passage en Majuscule Terminé"

Ici, il s'agit de l'objet "Rectangle 3", à toi d'adapter à ton véritable fichier

Bonne soirée

Salut cousinhub,

Merci pour ta réponse

J'ai adapter ton code ca fonctionne bien et pour effacer

ActiveSheet.Shapes("Rectangle 3").DrawingObject.Text="" 

fonctionne bien aussi.

mais est t'il possible aussi de positionner exactement a un endroit choisi dans la forme.

En tout cas, merci bien je n'ai pas penser a (ActiveSheet.Shapes("Rectangle 3").DrawingObject.Text="")

bonne soirée a toi

Cdlt Ray

Re-,

Juste un petit conseil, pour ta question subsidiaire....

Le texte étant écrit dans la forme, tu sélectionnes la-dite forme...

Tu cliques sur le bouton "Enregistrer une macro"

Dans le ruban "Accueil", tu sélectionnes l'alignement voulu (gauche/droite, haut/milieu, ...........)

Tu cliques sur "Arrêter l'enregistrement"

Et tu regardes ce qu'il a écrit....

Bon courage

Bonsoir,

DrawingObject est une ancienne collection, qui fonctionne toujours dans le code (compatibilité...) [mais tu pourras vérifier qu'elle n'est plus documentée dans l'aide].

Mais je crois que pour des interventions plus précises de mises en forme, tu as intérêt à jouer avec l'éventail actuel des propriétés et méthodes des objets Shapes...

Sub test()
    With ActiveSheet.Shapes("Rectangle 3").TextFrame
        .Characters.Text = "Passage en Majuscule Terminé"
        .HorizontalAlignment = xlHAlignCenter
        .VerticalAlignment = xlVAlignCenter
    End With
End Sub

pour centrer le texte [NB- si tu te contentes de xlCenter, ça fonctionnera aussi ! (les énumérations de constantes ont été renouvelées aussi mais les anciennes fonctionnent)]

Tu peux le mettre en bas (Bottom) ou en haut (Top) pour l'alignement vertical, Right ou Left pour l'horizontal. Le positionnement exact dépendra de la forme... (mais pour un rectangle...)

Cordialement.

Salut a tous, salut forum

Merci pour vos réponses et conseils, je vais adapter les codes a mon programme.

Je vous souhaite une très bonne journée a vous.

Merci pour votre savoir partager, ca m'a bien aider.

Cdlt Raymond

Rechercher des sujets similaires à "comment ecrire vba forme"