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 :

selectionner un shape particulier [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut selectionner un shape particulier
    Bonjour,

    Je suis face à un problème. J'aimerai réussir à selectionner un shape particulier. J'ai sur un feuilles plusieurs bouton qui me permettent de creer un graphique. J'aimerai positionner le graphique à un certain endroit d'où ce code qui vient de l'enregistreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
        ThisWorkbook.ActiveSheet.Shapes.AddChart.Select
        With ActiveChart
        .ChartType = xlColumnStacked
        .SetSourceData Source:=ThisWorkbook.ActiveSheet.Range("A1:I6")
        For i = 1 To .SeriesCollection.Count
        .SeriesCollection(i).ApplyDataLabels
        Next i
        .SetElement (msoElementDataLabelCenter)
        End With
        ActiveSheet.Shapes(1).IncrementLeft -345
        ActiveSheet.Shapes(1).IncrementTop 112.5
        ActiveSheet.Shapes(1).ScaleWidth 1.5333333333, msoFalse, msoScaleFromTopLeft
    End Sub
    Je bloque à cette partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     ActiveSheet.Shapes(1).IncrementLeft -345
        ActiveSheet.Shapes(1).IncrementTop 112.5
        ActiveSheet.Shapes(1).ScaleWidth 1.5333333333, msoFalse, msoScaleFromTopLeft
    En effet si je met le nom du shape créer et que je supprime le graphique et que j'en crée 1 nouveau, le nom n'est plus le même et j'ai une erreur. Je voulais donc selectionner le shapes actif qui est mon graphique et activeshapes n'existe pas... J'ai donc voulu passer par shapes(1) mais mon shapes(1) est mon bouton.... et oui quel dommage...

    Finalement peut etre que le problème peut être gérer en disant directement où placer le graphique et quelle taille doit il faire or je ne trouve pas cette propriété... j'ai cherch" du coté des propriété de addchart mais ca ne fonctionnait pas quand j'ai fait ceci:

    ThisWorkbook.ActiveSheet.Shapes.AddChart(,-345,112.5,,).Select 
    Merci d'avance de votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    En le déclarant au prélable? Quelquechose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim OShap As Shape
    Dim OChart As Chart
        Set OShap = ThisWorkbook.ActiveSheet.Shapes.AddChart
        OShap.Select
        ....

  3. #3
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    merci pour ta réponse
    Ca ne marchait pas plus en déclarant...

    Par contre j'ai trouvé, j'ai finalement pu dimensionner directement le graphique lors de ca création:
    et du coup plus besoin de passer par le shape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
        ThisWorkbook.ActiveSheet.Shapes.AddChart(xlColumnStacked, 10, 240, 500).Select
        With ActiveChart
        .SetSourceData Source:=ThisWorkbook.ActiveSheet.Range("A1:I6")
        .SetElement (msoElementDataLabelCenter)
        End With
    End Sub
    Par contre si je souhaite le mettre dans une autre feuille j'ai un message d'erreur 91 objet ou variable with non défini:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
        ThisWorkbook.Worksheets("Graph").Shapes.AddChart(xlColumnStacked, 10, 240, 500).Select
        With ActiveChart
        .SetSourceData Source:=ThisWorkbook.Worksheets("indus").Range("A1:I6") ' erreur 91
        .SetElement (msoElementDataLabelCenter)
        End With
    End Sub
    je ne comprend pas pourquoi....

    EDIT: j'ai trouvé la solution , il suffit d'activer la feuille cible avant de faire le code mais pourquoi donc?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro1()
    ThisWorkbook.Worksheets("Graph").Activate
        ThisWorkbook.Worksheets("Graph").Shapes.AddChart(xlColumnStacked, 10, 10, 500).Select
        With ActiveChart
        .SetSourceData Source:=ThisWorkbook.Worksheets("indus").Range("A1:I6")
        .SetElement (msoElementDataLabelCenter)
        End With
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] SELECTIONNER un OBJET "SHAPE"
    Par MichelSM dans le forum Excel
    Réponses: 2
    Dernier message: 19/05/2015, 10h05
  2. [Toutes versions] selectionner un thème de dégradé pour les shapes
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/10/2012, 20h23
  3. Comment selectionner un Dossier en particulier
    Par morphdown dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 02/09/2010, 09h00
  4. Réponses: 1
    Dernier message: 26/06/2006, 17h29
  5. [VB6] [FileListBox] Récupérer les éléments sélectionnés
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/10/2002, 09h11

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