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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau 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
    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 chevronné
    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
    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 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
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    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
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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