Microsoft 365 Bulle : affichage à droite de la cellule cliquée

Usine à gaz

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

Je fais appel à nos ténors pour un affichage que je ne sais pas faire.
Est-il possible :
1649494874849.png

Mes tests et recherches sont infructueuses.
Auriez-vous le bon code ?

Je joins un p'tit fichier test,
Et je continue à chercher.
Un grand merci, encore une fois,
Amicalement,
lionel :)
 

Pièces jointes

  • bulle_position.xlsm
    20.9 KB · Affichages: 9
Solution
Bonjour Lionel, le forum,

Oui ce n'est pas très facile, il faut repérer l'adresse de la cellule active :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
With Shapes("Bulle narrative : rectangle à coins arrondis 1")
    If Intersect(ActiveCell, Range("a2:a6")) Is Nothing Then .Visible = False: Exit Sub
    .Left = ActiveCell.Offset(, 1).Left
    .Top = ActiveCell.Top
    .Visible = CStr([adresse]) <> ActiveCell.Address Or .Visible = False
    ThisWorkbook.Names.Add "adresse", ActiveCell.Address 'repérage
    Application.EnableEvents = False
    [a1].Select
    Application.EnableEvents = True
End With
End Sub
A+

Usine à gaz

XLDnaute Barbatruc
Re :
Il y a bien
VB:
ActiveSheet.Shapes("Bulle narrative : rectangle à coins arrondis 1").Top = 25
ActiveSheet.Shapes("Bulle narrative : rectangle à coins arrondis 1").Left = 65
Mais je ne sais pas faire à droite de la cellule cliquée,
:)
 

JM27

XLDnaute Barbatruc
bonjour
et comme cela ?
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Range("a1:a6")) Is Nothing Then
        Application.EnableEvents = False
        If Sheets("Feuil1").Shapes("Bulle narrative : rectangle à coins arrondis 1").Visible = False Then
            Sheets("Feuil1").Shapes("Bulle narrative : rectangle à coins arrondis 1").Visible = True
            Sheets("Feuil1").Shapes("Bulle narrative : rectangle à coins arrondis 1").Top = ActiveCell.Top
            Sheets("Feuil1").Shapes("Bulle narrative : rectangle à coins arrondis 1").Left = ActiveCell.Left + ActiveCell.Width
            [a1].Select
            Application.EnableEvents = True
            Exit Sub
        Else
            Application.EnableEvents = False
            Sheets("Feuil1").Shapes("Bulle narrative : rectangle à coins arrondis 1").Visible = False
            [a1].Select
            Application.EnableEvents = True
            Exit Sub
        End If
    End If
End Sub
 

Pièces jointes

  • bulle_position.xlsm
    20 KB · Affichages: 7
Bonjour lionel, phil69970, JM27, le forum

Un exemple de placement !

Cordialement, @+
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A6")) Is Nothing Then
    With ActiveSheet.Shapes("Bulle narrative : rectangle à coins arrondis 1")
        If Not .Top = Target.Top Then
            .Visible = True
            .Top = Target.Top
            .Left = Target.Left + Target.Width
        End If
    End With
End If
End Sub
 

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,

Oui ce n'est pas très facile, il faut repérer l'adresse de la cellule active :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
With Shapes("Bulle narrative : rectangle à coins arrondis 1")
    If Intersect(ActiveCell, Range("a2:a6")) Is Nothing Then .Visible = False: Exit Sub
    .Left = ActiveCell.Offset(, 1).Left
    .Top = ActiveCell.Top
    .Visible = CStr([adresse]) <> ActiveCell.Address Or .Visible = False
    ThisWorkbook.Names.Add "adresse", ActiveCell.Address 'repérage
    Application.EnableEvents = False
    [a1].Select
    Application.EnableEvents = True
End With
End Sub
A+
 

Pièces jointes

  • bulle_position.xlsm
    24.1 KB · Affichages: 11

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour,

@ Gérard : nickel de chez nickel, merci :)
ton code a un supplément important : " ThisWorkbook.Names.Add "adresse", ActiveCell.Address 'repérage"

@ Bernard_XLD : J'ai pas réussi à faire fonctionner ton code mais j'ai besoin du code en "(ByVal R As Range)

Un grand merci, une fois de plus,
lionel :)
 

Collins

XLDnaute Occasionnel
Bonjour Usine à gaz, JM27, Bernard_XLD, Job75, le forum.

Je trouve intéressante cette macro pour ouvrir une zone texte en cliquant sur une cellule.
Je voudrai l'adapter à un de mes fichiers.
J'ai donc insérer une zone texte : Insertion/illustration/formes/zone de texte
J'ai mis un nom sur cette zone de texte
J'ai rajouté votre macro dans la page et j'ai voulu changer le nom dans With Shapes("Bulle narrative : rectangle à coins arrondis 1") au lieu de Bulle narrative : rectangle à coins arrondis 1 j'ai mis le nom de ma zone de texte.
Et ca ne marche pas.
Faut il garder Bulle narrative : rectangle à coins arrondis 1 comme nom.
Si vous pouviez m'expliquer un petit peu la procédure
Je vous remercie
Bonne après-midi

 

Usine à gaz

XLDnaute Barbatruc
Bonjour Collins :)
NON, c'est bien le nom de votre bulle qu'il faut mettre à la place de "Bulle narrative : rectangle à coins arrondis 1".

Mais attention, vous me parlez d'une "zone de texte" et le code est fait pour une "bulle" et une "bulle" n'est pas une zone de texte.
Cela me parait donc normal que ça ne fonctionne pas.

Créez un #post pour votre ""zone de texte".
Rappelez ce post en copiant le lien dans votre nouveau #post et joignez un fichier test "anonymisé"
@+,
lionel :)
 

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 155
Membres
112 671
dernier inscrit
Sylvain14