Rendre un encadré flottant

Bonjour,

J'ai beau cherché... je n'ai pas trouvé la solution pour rendre un encadré... flottant dans une feuille, dans le sens qu'il reste au même endroit sur l'écran tout en descendant vers le bas.

Je joins un tableur qui "explique" beaucoup mieux mon souci.

Excellente journée

Tonthon

269encadre-flottant.xlsm (19.66 Ko)

Bonjour,

Mets ce code dans la feuil1 et adapte les positions à ton cas:

' gestion de la position de l'image
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveCell.Row < 10 Then
        Shapes("image 5").Top = Target.Top + 50
        Shapes("image 5").Left = Target.Left - 200
    Else
        Shapes("image 5").Top = Target.Top - 75
        Shapes("image 5").Left = Target.Left - 200
   End If
End Sub

Cordialement

ddetp88


He,

Je n'avais pas tout vu. Ton image n'a pas été créée avec la fonction appareil photo.

Ce qui est intéressant c'est que l'image s'adapte à ton tableau original. Si tu changes une valeur, celle-ci change aussi dans l'image qui suit ton curseur.

Regarde ton fichier modifié.

ddetp88

Salut ddetp88

J'étais en train d'essayer de comprendre ton premier code... et je viens de découvrir le second qui est parfait.

L'idée d'avoir un encadré qui se corrige en fonction de l'original est superbe.

Maintenant, il ne me reste plus qu'à appliquer et je me demande comment tu as fait pour "insérer" dans ton code "image 5" ou "image1"

En comparant les 2 codes, le 'leftt" détermine la position par rapport à la gauche, c'est bien cela ?

A te lire,

Tonthon


j'ai zappé.... cela serait mieux que l'affichage se cantonne lorsque je suis dans la colonne Code par exemple entre E5 : E50.

C'est possible ?

Re,

Déplacé l'image où tu veux á l'aide de la souris et supprime les lignes de code comportant left.

Ensuite ajuste le top.

Cordialement.

ok, je vais essayer....mais cela ne me dit pas comment tu as "insérer" le cadre dans le code

Désolé du contretemps.

Il faut dans un premier temps utiliser l'appareil photo d'excel.

Modifie la barre d'outils rapide. Comme le montre l'image ci-dessous.

1)Ensuite tu sélectionnes les cellules dont tu veux avoir l'image et tu cliques sur l'icône appareil photo.

2)Sélectionne une zone où tu veux voir apparaitre l'image.

3) Garde l'image sélectionnée et renomme l'image comme tu le souhaites. Soit en passant par la zone des noms ou en passant par le gestionnaire de noms de l'onglet Formules.

Ensuite tu n'as plus qu'à adapter le code avec le nom d'image choisi.

Tu demandais aussi comment limiter à la colonne E entre les lignes 5 et 50.

Place ton image en colonne E à l'aide de la souris et modifie le code comme suit:

' gestion de la position de l'image
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveCell.Row > 5 And ActiveCell.Row < 50 Then
        Shapes("image 1").Top = Target.Top + 10

    Else
        Shapes("image 1").Top = Rows(50).Top

   End If
End Sub

Tu peux affiner la position de ton image en augmentant ou diminuant le top.

Exemple target.top +50 ou target.top -75

bonne continuation,

ddetp88

image1

Re avec ce code c'est plus propre

' gestion de la position de l'image
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Row
        Case Is < 5
            Shapes("image 1").Top = Rows(5).Top
        Case 5 To 50
            Shapes("image 1").Top = Target.Top
        Case Else
            Shapes("image 1").Top = Rows(50).Top
    End Select
End Sub

Cordialement

Bonsoir,

Cela parait très clair maintenant.... je m'y mets demain après-midi sans doute.

C'est extraordinaire cette possibilité d'image flottante et qui de surcroît s'actualise en fonction de l'original.

Excellente soirée

Tonthon

Salut ddetp88

J'ai rarement pris autant de plaisir à suivre un "pas à pas" : c'est clair, rien d'omis et tu te mets bien au niveau du néophyte.

La meilleure preuve, c'est que j'ai réussi du premier coup et reproduis de mémoire un encadré dans un autre tableur.

Tu mérites au moins un

J'aurais dû être un tout petit plus précis lors que ma demande

  • cela serait mieux que l'affichage se cantonne lorsque je suis dans la colonne Code par exemple entre E5 : E50.
  • c'était en fait "cela serait mieux que l'affichage se cantonne que lorsque je suis dans la colonne Code par exemple entre E5 : E50.

En l'état, l'affichage se fait bien qu'entre les lignes 5 et 50.... mais peut importe la colonne

Je suis sûr que tu vas trouver la solution

Cordialement

Effectivement ça n'est pas trop difficile.

Remplace le code par celui-ci.:

    ' gestion de la position de l'image
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Select Case Target.Row
            Case Is < 5
                Shapes("image 1").Visible = False
            Case 5 To 50
                Shapes("image 1").Visible = True
                Shapes("image 1").Top = Target.Top
            Case Else
                Shapes("image 1").Visible = False
        End Select
    End Sub

Content d'avoir pu t'aider et merci pour ton enthousiasme!

ddetp88

8)

Je viens de vérifier si j'ai bien repris ton dernier code.... parce que le cadre reste affiché lorsque je sors de la colonne E.

La cerise sur la gâteau est bien que ce cadre s'affiche uniquement lorsque je suis dans la colonne C5 : C150 pour rester dans l'exemple choisi.

Il ne manquerait pas un petit quelque chose ?

Cordialement

Bonjour,

Encore plus simple, il suffit d'un test pour la plage C5: C150.

Voici le code à mettre en place

' gestion de la position de l'image
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [C5:C150]) Is Nothing Then
            Shapes("image 1").Visible = True
            Shapes("image 1").Top = Target.Top
         Else
            Shapes("image 1").Visible = False
     End If
 End Sub

Pense à passer le fil en résolu.

Cordialement

ddetp88

Bonjour ddetp88

Tu bosses de bonne heure....

Outre le fait que ce code devient très simple -j'arrive à le comprendre- cela correspond et résout parfaitement le problème posé.

Je ne vais pas faire de nouveau un triple bravo quoique....

Plus sérieusement j'y vois la possibilité de remplacer avantageusement le système "insérer un commentaire", ton code mérite de figurer dans la liste des solutions à retenir.

Excellente journée

Cordialement

Tonthon

Rechercher des sujets similaires à "rendre encadre flottant"