Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déplacement automatique forme

ascarter

XLDnaute Junior
Bonjour à tous, mon problème est le suivant. J'ai placé une forme géométrique dans ma feuille à laquelle j'ai affecté une macro. Est- ce possible que cette forme ("validation valeur") se déplace automatiquement en hauteur pour ne pas cacher le texte de la colonne B. J'aimerais en fait que la forme reste dans la colonne B mais que sa position s'adapte en fonction du contenu de la colonne. Je ne sais pas si ceci est réalisable. Je vous met en piéces jointes un fichier exemple. Merci d'avance pour vos réponses.
 

Pièces jointes

  • Test 2.xls
    53 KB · Affichages: 45
  • Test 2.xls
    53 KB · Affichages: 51
  • Test 2.xls
    53 KB · Affichages: 46

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Déplacement automatique forme

Bonjour ascarter,

pourquoi ne pas mettre cette forme au dessus de la colonne B
et éventuellement figer la première ligne

à+
Philippe
 

Pièces jointes

  • 111.xls
    60 KB · Affichages: 36
  • 111.xls
    60 KB · Affichages: 42
  • 111.xls
    60 KB · Affichages: 44

Hulk

XLDnaute Barbatruc
Re : Déplacement automatique forme

Slt Ascater, Philippe, Forum

Ou bêtement l'afficher ou le masquer selon...

Placer ceci ActiveSheet.Shapes.Range(Array("Oval 629")).Visible = False en fin de la macro "inventaire"

Puis cela en début de la macro "RAZ" ActiveSheet.Shapes.Range(Array("Oval 629")).Visible = True
 

ascarter

XLDnaute Junior
Re : Déplacement automatique forme

Ce sont de bonnes pistes mais ce n'est pas exactement ce que je veux. J'aimerais que la position de ma forme s'adapte aux élément de la colonne B, qu'elle se place juste après la dernière ligne où il y a du texte. Merci pour votre aide en tout cas.
 

JCGL

XLDnaute Barbatruc
Re : Déplacement automatique forme

Bonjour à tous,
Salut Philippe,
Salut Doc Banner,

Peux-tu essayer ceci dans le code de la feuille :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Top > 10 And Target.Column < 3 Then
Worksheets(1).Shapes("Oval 629").Top = Target.Top + 25
ElseIf Target.Column < 2 Then
Worksheets(1).Shapes("Oval 629").Top = 0
End If
End Sub

Personnellement, je mettrais les SUB dans un module standard.

A++
A+ à tous
 

Discussions similaires

Réponses
8
Affichages
347
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…