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 objet en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 30
    Par défaut selectionner un objet en VBA
    Bonjour,


    Comment selectionner un objet en VBA en fonction de sa position?

    J'aimerais faire quelque chose du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cells(1,1).selection 
    activeshape(activecell)).select
    merci par avance

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut amaryllis et le forum
    Utiliser les Select/Activate est rarement une bonne idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cells(1,1).selection 
    activeshape(activecell)).select
    Heu... tu veux sélectionner la Shape active (qui est donc sélectionnée) ???

    En prenant le problème par l'autre bout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim Sh As Shape
    For Each Sh In ActiveSheet.Shapes
        If Not (Intersect(Sh.TopLeftCell, Columns(6)) Is Nothing) Then Exit For
    Next Sh
    If Not (Sh Is Nothing) Then MsgBox Sh.Name
    End Sub
    Trouvera la 1re Shape dont la cellule en haut à gauche est au-dessus de la colonne F.
    A+

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Heu... tu veux sélectionner la Shape active (qui est donc sélectionnée) ???
    activeshape(activecell)).select
    Il n'existe de toutes façons pas de Shape active dans Excel.

    La méthode Activate n'existe pas pour l'objet Shape et il n'y a pas de propriété ActiveShape.

    On peut donc en sélectionner un ou plusieurs, mais on en active aucun.

    cordialement,

    Didier

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Ormonth et le forum
    Oui, je sais, je suis un peu sarcastique : c'était juste pour dire qu'il faut réfléchir avant de se lancer dans du codage.
    A+

  5. #5
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 30
    Par défaut
    Bonjour,

    Merci pour les réponses, mais j'ai dû mal m'exprimer.
    J'ai 5 graphiques sur une feuille excel. Ils changent de nom mais pas de position à chaque fois. C'est pour cela que j'aurais souhaité sélectionner le graphique dont le bord en haut à gauche est dans la cellule A1, celui dans la cellule A20, etc.. J'avais vu quelque part qu'on pouvait sélectionner un objet en fonction de sa position.

    Désolée de mon erreur, c'était plus ça que je voulais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cells(1,1).selection 
    shape(activecell)).select
    Il me semble qu'il y avait une solution plus directe que celle proposée par Gorfael

    Merci de vos réponses

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Dans l'aide VBA, regardes dans les propriétés TopLeftCell et BottomRightCell de l'objet Shape.

    cordialement,

    Didier

  7. #7
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 30
    Par défaut
    Bonjour,

    Merci pour les conseils. Pour info, j'ai utilisé le code suivant pour copier coller le graphique de la cellule A1 en image jpeg:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public sh as shape
    For Each Sh In ActiveSheet.Shapes
        If Sh.TopLeftCell.Address = "$A$1" Then
            Sh.Select
            Selection.Copy
            Sh.Select
            Selection.Delete
            Range("A1").Select
            ActiveSheet.PasteSpecial Format:="Image (JPEG)", Link:=False, _ DisplayAsIcon:=False
            Selection.ShapeRange.ZOrder msoSendToBack
        End If
    Next Sh
    Problème résolu!!

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

Discussions similaires

  1. Objets en VBA
    Par xakool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2007, 09h55
  2. Selectionner un objet graphics
    Par breezer911 dans le forum C#
    Réponses: 3
    Dernier message: 30/03/2007, 11h27
  3. Selectionner un Objet TControl
    Par Didier L dans le forum Delphi
    Réponses: 4
    Dernier message: 02/09/2006, 20h11
  4. pb de déclaration d'objet dans vba
    Par bbgprog dans le forum Access
    Réponses: 10
    Dernier message: 01/08/2006, 14h03
  5. [VBA-E] demande à l'utilisateur de sélectionner un range en VBA
    Par pascal123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/01/2004, 12h47

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