IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

création shape cercle


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut création shape cercle
    Bonjour,
    Je n'arrive pas a trouver dans l'aide Excel l'instruction permettant de créer un shape cercle de rayon fixé.
    Pouvez-vous m'aider?

    Autre petite question : quand on crée un shape, quelles sont les unités? (le pixel?)

    Merci!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Points : 539
    Points
    539
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub LeCercle()
    Dim Rayon As Single
    Rayon = 50
    ActiveSheet.Shapes.AddShape msoShapeOval, [C3].Left, [C3].Top, Rayon, Rayon
    End Sub
    L'unité est le point.

    Voir l'aide sur AddShape

    ctac

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim shp As Shape
    Dim Xo As Integer, Yo As Integer, R As Integer
     
    Xo = 50: Yo = 200: R = 40
    Set shp = ActiveSheet.Shapes.AddShape(9, Xo, Yo, R, R)

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Une fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Cercle(c As Range, nRadius As Single) As Shape
      ' nRadius in centimeters
      Dim iRadiusInPoints As Long
      iRadiusInPoints = Application.CentimetersToPoints(nRadius)
     
      Set Cercle = c.Parent.Shapes.AddShape(msoShapeOval, _
                                            c.Left, _
                                            c.Top, _
                                            iRadiusInPoints, _
                                            iRadiusInPoints)
    End Function
    Et son appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub TraceCercle()
      Dim shp As Shape
      Set shp = Cercle(ActiveSheet.[C3], 3.5)
    End Sub
    Idem pour un cercle centré sur les gauche/haut d'une cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function CercleCentre(c As Range, nRadius As Single) As Shape
      ' nRadius in centimeters
      Dim iRadiusInPoints As Long
      iRadiusInPoints = Application.CentimetersToPoints(nRadius)
      Set CercleCentre = c.Parent.Shapes.AddShape(msoShapeOval, _
                                            c.Left - (iRadiusInPoints / 2), _
                                            c.Top - (iRadiusInPoints / 2), _
                                            iRadiusInPoints, _
                                            iRadiusInPoints)
    End Function
     
    Sub TraceCercle()
      Dim shp As Shape
      Set shp = CercleCentre(ActiveSheet.[C7], 3.5)
    End Sub

Discussions similaires

  1. [XL-2003] Création shape en vba avec classeur partagé
    Par dbeauhaire dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2012, 11h10
  2. Créations Shape dans une Classe
    Par Gueuz dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 26/12/2010, 11h26
  3. Création des cercles sur un evenement click
    Par juvenalvangu dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/09/2009, 20h24
  4. [Toutes versions] Création shape connector entre cellules
    Par almc.rzo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/08/2009, 02h08
  5. Création d'un cercle plein blanc sur fond noir
    Par Rafoo dans le forum Traitement d'images
    Réponses: 10
    Dernier message: 11/04/2006, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo