Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
#bpAC1GFKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
#bpAC1GFKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
OGh4cJHFKHA.3708@TK2MSFTNGP02.phx.gbl...
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uuscR$GFKHA.1252@TK2MSFTNGP04.phx.gbl...
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
#bpAC1GFKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
OGh4cJHFKHA.3708@TK2MSFTNGP02.phx.gbl...
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uuscR$GFKHA.1252@TK2MSFTNGP04.phx.gbl...
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
#bpAC1GFKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
OGh4cJHFKHA.3708@TK2MSFTNGP02.phx.gbl...
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uuscR$GFKHA.1252@TK2MSFTNGP04.phx.gbl...
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
#bpAC1GFKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
La macro que tu as besoin est celle-ci :
Valide pour Excel 2007 seulement
'--------------------------------
Sub Rotation()
Dim Nom As String
With Feuil1
Nom = .Shapes(Application.Caller).ParentGroup.Name
.Shapes(Nom).IncrementRotation 90
End With
End Sub
'--------------------------------
"MichDenis" a écrit dans le message de groupe de
discussion :
#
Il faut pas me dire n'importe quoi !
Malheureusement pour toi, j'ai aussi une version Excel 2003
d'installer sur mon ordi.
;-)
Cette procédure fonctionne sous les 2 versions d'Excel (2003 et 2007)
'------------------------------------
Sub Rotation()
'Nom des 2 shapes en L3
Set forme = ActiveSheet.Shapes("Groupe 6")
forme.IncrementRotation 90
End Sub
'------------------------------------
Maintenant sous la version 2003, cette version de la
macro se plante, parce que application.Caller retourne
le nom de l'un des 2 objets de la shape et non le nom
du groupe de la shape.
'-------------------------------------
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
'-------------------------------------
Sous Excel 2007, cette macro fonctionne mais pour l'élément
retourné par "Application.Caller" et non pour le groupe.
Ta question est équivalent à se demander est-ce que l'on peut
savoir à quel groupe appartient chaque objet, car pour obtenir
ce que tu désires, nous devons passer à l'argument "Shapes" le nom
du groupe et non le nom de l'objet isolé.
"garnote" a écrit dans le message de groupe de
discussion :
uONnN$
Salut Denis,
Astucieux mais si j'ai une centaine de groupes,
ça devient un peu lourd !
Sous Excel 2003, si j'associais une macro à des
formes groupées, MsgBox Application.Caller
me renvoyait le nom du groupe.
M'enfin il me semble. Pourrais-tu vérifier ?
Sous 2007, quand je clique sur le groupe,
MsgBox Application.Caller me renvoie
le nom de la forme du groupe sur laquelle je clique !
Serge
"MichDenis" a écrit dans le message de news:
%Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la
rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
La macro que tu as besoin est celle-ci :
Valide pour Excel 2007 seulement
'--------------------------------
Sub Rotation()
Dim Nom As String
With Feuil1
Nom = .Shapes(Application.Caller).ParentGroup.Name
.Shapes(Nom).IncrementRotation 90
End With
End Sub
'--------------------------------
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion :
#HnNGgVFKHA.4004@TK2MSFTNGP05.phx.gbl...
Il faut pas me dire n'importe quoi !
Malheureusement pour toi, j'ai aussi une version Excel 2003
d'installer sur mon ordi.
;-)
Cette procédure fonctionne sous les 2 versions d'Excel (2003 et 2007)
'------------------------------------
Sub Rotation()
'Nom des 2 shapes en L3
Set forme = ActiveSheet.Shapes("Groupe 6")
forme.IncrementRotation 90
End Sub
'------------------------------------
Maintenant sous la version 2003, cette version de la
macro se plante, parce que application.Caller retourne
le nom de l'un des 2 objets de la shape et non le nom
du groupe de la shape.
'-------------------------------------
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
'-------------------------------------
Sous Excel 2007, cette macro fonctionne mais pour l'élément
retourné par "Application.Caller" et non pour le groupe.
Ta question est équivalent à se demander est-ce que l'on peut
savoir à quel groupe appartient chaque objet, car pour obtenir
ce que tu désires, nous devons passer à l'argument "Shapes" le nom
du groupe et non le nom de l'objet isolé.
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
uONnN$UFKHA.4432@TK2MSFTNGP05.phx.gbl...
Salut Denis,
Astucieux mais si j'ai une centaine de groupes,
ça devient un peu lourd !
Sous Excel 2003, si j'associais une macro à des
formes groupées, MsgBox Application.Caller
me renvoyait le nom du groupe.
M'enfin il me semble. Pourrais-tu vérifier ?
Sous 2007, quand je clique sur le groupe,
MsgBox Application.Caller me renvoie
le nom de la forme du groupe sur laquelle je clique !
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23RwZCVHFKHA.4316@TK2MSFTNGP04.phx.gbl...
Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
OGh4cJHFKHA.3708@TK2MSFTNGP02.phx.gbl...
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uuscR$GFKHA.1252@TK2MSFTNGP04.phx.gbl...
Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" <garnote3@videotron.ca> a écrit dans le message de groupe de
discussion :
#bpAC1GFKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la
rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge
La macro que tu as besoin est celle-ci :
Valide pour Excel 2007 seulement
'--------------------------------
Sub Rotation()
Dim Nom As String
With Feuil1
Nom = .Shapes(Application.Caller).ParentGroup.Name
.Shapes(Nom).IncrementRotation 90
End With
End Sub
'--------------------------------
"MichDenis" a écrit dans le message de groupe de
discussion :
#
Il faut pas me dire n'importe quoi !
Malheureusement pour toi, j'ai aussi une version Excel 2003
d'installer sur mon ordi.
;-)
Cette procédure fonctionne sous les 2 versions d'Excel (2003 et 2007)
'------------------------------------
Sub Rotation()
'Nom des 2 shapes en L3
Set forme = ActiveSheet.Shapes("Groupe 6")
forme.IncrementRotation 90
End Sub
'------------------------------------
Maintenant sous la version 2003, cette version de la
macro se plante, parce que application.Caller retourne
le nom de l'un des 2 objets de la shape et non le nom
du groupe de la shape.
'-------------------------------------
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
'-------------------------------------
Sous Excel 2007, cette macro fonctionne mais pour l'élément
retourné par "Application.Caller" et non pour le groupe.
Ta question est équivalent à se demander est-ce que l'on peut
savoir à quel groupe appartient chaque objet, car pour obtenir
ce que tu désires, nous devons passer à l'argument "Shapes" le nom
du groupe et non le nom de l'objet isolé.
"garnote" a écrit dans le message de groupe de
discussion :
uONnN$
Salut Denis,
Astucieux mais si j'ai une centaine de groupes,
ça devient un peu lourd !
Sous Excel 2003, si j'associais une macro à des
formes groupées, MsgBox Application.Caller
me renvoyait le nom du groupe.
M'enfin il me semble. Pourrais-tu vérifier ?
Sous 2007, quand je clique sur le groupe,
MsgBox Application.Caller me renvoie
le nom de la forme du groupe sur laquelle je clique !
Serge
"MichDenis" a écrit dans le message de news:
%Tu peux utiliser un bout de code comme ceci :
Pour la Shape en L3 de la feuille,
si tu veux que chaque groupe réagisse de la même manière
tu ajoutes un "case" dans le select case pour chaque groupe.
'-----------------------------------
Sub Rotation()
With ActiveSheet
x = .Shapes(Application.Caller).Name
Select Case x
Case Is = "Ellipse 7", "Connecteur droit 8"
x = "Connecteur droit 8"
.Shapes(x).OLEFormat.Object.ShapeRange.IncrementRotation 90
' Case is = "Groupe 2"
' Case is = "Groupe 3"
End Select
End With
End Sub
'-----------------------------------
"garnote" a écrit dans le message de groupe de
discussion :
Voici un petite exemple :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijxPVBxu9.xls
Serge
"MichDenis" a écrit dans le message de news:
uuscR$Je n'ai pas compris exactement la "forme" que tu manipules...
mais il y a ceci :
ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.ShapeRange.IncrementRotation
90
"garnote" a écrit dans le message de groupe de
discussion :
#
Bonsoir,
Sous Excel 2007 :
J'ai dessiné plusieurs disques noirs contenant chacun un segment
jaune passant par le centre. J'ai groupé chaque disque avec son
segment et associé la macro suivante à chacun des groupes :
Sub Rotation()
Set forme = ActiveSheet.Shapes(Application.Caller)
forme.IncrementRotation 90
End Sub
Mais voilà, je suis obligé de cliquer sur le segment pour que la
rotation
s'effectue.Si je clique dans le disque mais à côté du segment, il ne se
passe rien. Comment remédier à ce léger embarras ?
Il me semble que je n'avais pas ce problème sous 2003.
Et quand pourrons-nous enfin utiliser l'enregistreur de macros
quand on tripote des formes :-)
Serge