Microsoft 365 Bulle : affichage - position et format texte

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite un beau WE :)

Le but est d'afficher à chaque clic, ma Bulle comme l'affichage 1.
Mais voilà, à chaque clic, l'affichage se modifie Grrrr ! :mad:
Je n'arrive pas à fixer l'affichage de ma "bulle Bulle" dans mon fichier de travail :
1650108399356.png

Malgré de multiples tentatives et recherches ... Rien à faire, je n'y arrive pas.

Voici le code que j'utilise :
VB:
With Shapes("bulle1_affectez")
        Shapes("bulle1_affectez").Visible = True
        .Left = ActiveCell.Offset(, 3).Left + 10
        .Top = ActiveCell.Top + 3
     
        If Shapes("bulle1_affectez").Visible = True Then
            ActiveSheet.Shapes.Range(Array("bulle1_affectez")).Select
            Application.CommandBars("Format Object").Visible = False
            Selection.ShapeRange.IncrementLeft -38.5714173228
            Selection.ShapeRange.IncrementTop -2.1428346457
            Selection.ShapeRange.ScaleWidth 0.8197110362, msoFalse, msoScaleFromBottomRight
            Selection.ShapeRange.Height = 85.0393700787
                With Selection.ShapeRange.TextFrame2.TextRange.Font
                .NameComplexScript = "Arial"
                .NameFarEast = "Arial"
                .Name = "Arial"
                End With
                Selection.ShapeRange.TextFrame2.TextRange.Font.Size = 12
        End If
Auriez-vous le bon code ?
Si besoin, je ferai un p'tit fichier test.
Un GRAND merci par avance :)
Et je continue mes recherches ...
Amicalement,
lionel :)
 
Dernière édition:
Solution
Re-Bonjour :)
J'ai résolu le gras ou pas gras avec :
Selection.ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue
VB:
With Shapes("bulle1_affectez")
        ActiveWindow.ScrollRow = Selection.Row
        .Left = ActiveCell.Offset(, 3).Left
        .Top = ActiveCell.Top
        .Visible = CStr([adresse]) <> ActiveCell.Address Or .Visible = False
            If Shapes("bulle1_affectez").Visible = True Then
            ActiveCell.RowHeight = 300
            ActiveSheet.Shapes.Range(Array("bulle1_affectez")).Select
            Application.CommandBars("Format Object").Visible = False
            Selection.ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue
            Selection.ShapeRange.Height = 90...

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Il me semble que vous avez déjà posté sur le sujet.
Même si ce n'est pas exactement la même chose, avec un petit effort de compréhension vous devriez vous en tirer.
bon courage

[Edit] hello @Bernard_XLD [/Edit)]
 

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour,

Après bien des essais, j'ai réussi à avancer sur mon code :
VB:
With Shapes("bulle1_affectez")
        ActiveWindow.ScrollRow = Selection.Row
        .Left = ActiveCell.Offset(, 3).Left
        .Top = ActiveCell.Top
        .Visible = CStr([adresse]) <> ActiveCell.Address Or .Visible = False
        If Shapes("bulle1_affectez").Visible = True Then
        ActiveCell.RowHeight = 300
        ActiveSheet.Shapes.Range(Array("bulle1_affectez")).Select
        Application.CommandBars("Format Object").Visible = False
        Selection.ShapeRange.Height = 60
        ActiveSheet.Shapes.Range(Array("bulle1_affectez")).Select
        Selection.ShapeRange.IncrementLeft -29.2857480315
        Selection.ShapeRange.IncrementTop -0.7142519685
            With Selection.ShapeRange.TextFrame2.TextRange.Font
            .NameComplexScript = "Calibri"
            .NameFarEast = "Calibri"
            .Name = "Calibri"
            End With
'            With Shapes("bulle1_affectez").TextRange.Font
'            .Font.Bold = True
'            End With
            Selection.ShapeRange.TextFrame2.TextRange.Font.Size = 12
        End If
C'est bon : l'affichage de ma "bulle Bulle" est fixé : ça ne bouge plus ;)
En revanche, je n'arrive pas à mettre le texte en gras !
Je continue mes recherches,
lionel :)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour :)
J'ai résolu le gras ou pas gras avec :
Selection.ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue
VB:
With Shapes("bulle1_affectez")
        ActiveWindow.ScrollRow = Selection.Row
        .Left = ActiveCell.Offset(, 3).Left
        .Top = ActiveCell.Top
        .Visible = CStr([adresse]) <> ActiveCell.Address Or .Visible = False
            If Shapes("bulle1_affectez").Visible = True Then
            ActiveCell.RowHeight = 300
            ActiveSheet.Shapes.Range(Array("bulle1_affectez")).Select
            Application.CommandBars("Format Object").Visible = False
            Selection.ShapeRange.TextFrame2.TextRange.Font.Bold = msoTrue
            Selection.ShapeRange.Height = 90
            ActiveSheet.Shapes.Range(Array("bulle1_affectez")).Select
            Selection.ShapeRange.IncrementLeft -29.2857480315
            Selection.ShapeRange.IncrementTop -0.7142519685
                With Selection.ShapeRange.TextFrame2.TextRange.Font
                .NameComplexScript = "Calibri"
                .NameFarEast = "Calibri"
                .Name = "Calibri"
                End With
                Selection.ShapeRange.TextFrame2.TextRange.Font.Size = 12
            End If
Donc tout fonctionne.
Mais je pense qu'il y a mieux à faire et je ne suis pas du niveau :)
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard :)
Comme dit ma demande, l'affichage de la bulle se modifiait à chaque clic et ça me posait un gros souci.
"J'avoue ne pas comprendre pourquoi tu tripotes ta Shape.
Que viennent faire ici IncrementLeft et IncrementTop ???"
C'est pour cela que j'ai "trifouillé" dans le code jusqu'à ce que j'arrive au code du post 8 qui fonctionne.
"Et je vois que tu n'utilises pas bien le bloc With/End With."
Effectivement, il y a certainement possibilité de faire un bien meilleur code ??
lionel :)
 

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki