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

Insertion de formes

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 !

dionys0s

XLDnaute Impliqué
Bonsoir le forum 🙂

Je souhaite créer une petite macro de rien du tout qui servirait d'assistant pour du dessin assez sommaire.

En gros, quand je sélectionne une plage, j'aimerais qu'il trace un trait du coin haut gauche de la première cellule de la plage (au moment du clic) jusqu'au coin bas droit de la dernière cellule de la plage (au moment du relâchement de la souris.

Je ne sais pas trop si c'est possible. Je lutte déjà pour trouver le nom de cette forme, et l'enregistreur de macro ne m'est d'aucune utilité pour trouver des indices puisqu'il n'enregistre rien...

En tout cas merci d'avance pour votre aide

dionys0s
 
Re : Insertion de formes

Bonsoir dionys0s,

Je souhaite créer une petite macro de rien du tout (...)

La voici, dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel1 As Range, cel2 As Range
If Target.Areas.Count = 1 And Target.Count > 1 Then
  On Error Resume Next
  Set cel1 = Target(1, 1)
  Set cel2 = cel1.Offset(Target.Rows.Count, Target.Columns.Count)
  ActiveSheet.Shapes.AddConnector msoConnectorStraight, _
    cel1.Left, cel1.Top, cel2.Left - cel1.Left, cel2.Top - cel1.Top
End If
End Sub
Je l'ai testée sous Excel 2003.

Il ne vous reste plus qu'à sélectionner une plage de cellules.

A+
 
Dernière édition:
Re : Insertion de formes

Re,

Si l'on veut colorer l'objet :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel1 As Range, cel2 As Range, o As Object
If Target.Areas.Count = 1 And Target.Count > 1 Then
  On Error Resume Next
  Set cel1 = Target(1, 1)
  Set cel2 = cel1.Offset(Target.Rows.Count, Target.Columns.Count)
  Set o = ActiveSheet.Shapes.AddConnector(msoConnectorStraight, _
    cel1.Left, cel1.Top, cel2.Left - cel1.Left, cel2.Top - cel1.Top)
  o.Line.ForeColor.SchemeColor = 10 'rouge
End If
End Sub
A+
 
- 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

Discussions similaires

I
Réponses
10
Affichages
1 K
insosama
I
M
Réponses
5
Affichages
6 K
M
J
Réponses
17
Affichages
5 K
Jaksnoopy
J
K
Réponses
5
Affichages
2 K
kuma_buzz
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…