Bonjour,
Comment selectionner un objet en VBA en fonction de sa position?
J'aimerais faire quelque chose du type
merci par avance :)Code:
1
2 cells(1,1).selection activeshape(activecell)).select
Version imprimable
Bonjour,
Comment selectionner un objet en VBA en fonction de sa position?
J'aimerais faire quelque chose du type
merci par avance :)Code:
1
2 cells(1,1).selection activeshape(activecell)).select
Salut amaryllis et le forum
Utiliser les Select/Activate est rarement une bonne idée.Heu... tu veux sélectionner la Shape active (qui est donc sélectionnée) ???Code:
1
2 cells(1,1).selection activeshape(activecell)).select
En prenant le problème par l'autre bout :Trouvera la 1re Shape dont la cellule en haut à gauche est au-dessus de la colonne F.Code:
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
A+
Citation:
Heu... tu veux sélectionner la Shape active (qui est donc sélectionnée) ???
Il n'existe de toutes façons pas de Shape active dans Excel.Citation:
activeshape(activecell)).select
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
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+
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:
Il me semble qu'il y avait une solution plus directe que celle proposée par GorfaelCode:
1
2 cells(1,1).selection shape(activecell)).select
Merci de vos réponses :lol:
Bonjour,
Dans l'aide VBA, regardes dans les propriétés TopLeftCell et BottomRightCell de l'objet Shape.
cordialement,
Didier
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:
Problème résolu!! :DCode:
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