• Initiateur de la discussion Initiateur de la discussion jeffjeff
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jeffjeff

Guest
bonjour tout le monde,
je souhaite inserer un shape (rectangle par exemple) mais un endroit precis.
l'insertion est à l'angle supérieur gauche de la cellule C2. sachant que la largeur des colonnes sont ajustables.
merci de votre aide
 
bonsoir dranred,
le left et top, si je ne dis pas de bêtise sont les coordonnées du shape (ou autre chose comme USF) à partir du bord superieur gauche de l'ecran
la je souhaire placer un rectangle a partir du coin superieur gauche d'une cellule, et que la largeur des colonnes peuvent varier.
si j'augmente la largeur de la colonne B, le shape doit toujour etre afficher par rapport a la colonne C.
 
Ah, je croyais seulement que vous ne saviez pas comment le positionner à la création.
On ne peut pas détecter un changement de largeur de colonne, mais normalement il suit si vous avez aussi mis sa propriété Placement à xlMove ou xlMoveAndSize. C'est seulement si elle est à xlFreeFloating qu'il ne suit pas.
Edit: Ce n'est pas comme les Left et Top d'un UserForm: ces dernier sont par rapport à l'écran et non par rapport au document comme pour les Range et les Shape.
 
Bonsoir,
VB:
sub insertion_objet_rectangle()
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 120, 15, 94.5, 38.25).Select
'AddShape( Type , Left , Top , Width , Height )
End sub

avec :
Type : msoShapeRectangle
Left =distance à partir de gauche: 120 pts
Top = distance à partir du haut : 15 pts
Width = Largeur de l'objet : 94.5 pts
Height= Hauteur de l'objet : 38.25 pts
 
merci pour avoir pris soin d'etudier mon probleme et repondu
mais je n'ai pas tout a fait ma reponse
je vais la tourner différemment.
je souhaite inserer un shape rectangle a la partie superieur gauche de la cellule active.
donc je ne connais pas les coordonnées de ma cellule.
y a t'il une fonction pour ca?
 
Re,
Je crois tu auras ton bonheur avec ce code.

VB:
Sub addshapetocell()

Dim clLeft As Double
Dim clTop As Double
Dim clWidth As Double
Dim clHeight As Double

Dim cl As Range
Dim my_shape As Shape

Set cl = Range(Selection.Address)

clLeft = cl.Left
clTop = cl.Top
clHeight = cl.Height
clWidth = cl.Width

Set my_shape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, clLeft, clTop, 90, 40)
End Sub

avec 90 et 40 = largeur et hauteur du rectangle en pts.
 
Bonsoir le fil, le forum

Même réponse que Dranreb avec un petit exemple
(A TESTER UNIQUEMENT SUR UNE FEUILLE VIERGE)
VB:
Sub M_Shape()
Dim shp As Shape, r As Range
Set r = Range("c8")
ActiveSheet.DrawingObjects.Delete
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, r.Left, r.Top, 5, 5)
'juste pour exemple
MsgBox shp.Name
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL pour MAC fonction si
Réponses
5
Affichages
312
Réponses
16
Affichages
464
Réponses
6
Affichages
268
  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
329
Réponses
16
Affichages
393
Réponses
5
Affichages
955
Retour