Sur une feuille de calcul, j'ai 45 losanges nommés
respectivement 1, 2, 3, ... ,44, 45 auxquels sont
associés la même macro qui utilise Application.Caller.
Peut-on demander à une autre macro de cliquer sur
le losange 2 et le losange 5 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer SonNom = Application.Caller **** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh) With Sh 'ton code End With
"garnote" a écrit dans le message de news:
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés respectivement 1, 2, 3, ... ,44, 45 auxquels sont associés la même macro qui utilise Application.Caller. Peut-on demander à une autre macro de cliquer sur le losange 2 et le losange 5 ?
Merci, Merci. Serge
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer
SonNom = Application.Caller
**** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix
Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh)
With Sh
'ton code
End With
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
OrNtPRnWHHA.4720@TK2MSFTNGP04.phx.gbl...
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés
respectivement 1, 2, 3, ... ,44, 45 auxquels sont
associés la même macro qui utilise Application.Caller.
Peut-on demander à une autre macro de cliquer sur
le losange 2 et le losange 5 ?
****Application.Caller te retourne l'objet que tu as cliquer SonNom = Application.Caller **** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh) With Sh 'ton code End With
"garnote" a écrit dans le message de news:
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés respectivement 1, 2, 3, ... ,44, 45 auxquels sont associés la même macro qui utilise Application.Caller. Peut-on demander à une autre macro de cliquer sur le losange 2 et le losange 5 ?
Merci, Merci. Serge
garnote
Salut Denis,
J'avais pensé à ça mais c'est plus compliqué ! Je voudrais que la macro "Déplace" s'exécute en utilisant i = Application.Caller quand je clique sur un losange et je voudrais pouvoir appeler "Déplace" en lui passant certaines valeurs de i qui remplaceraient Application.Caller. J'arrive à mes fins en appelant une seconde macro "Déplace2". Est-ce possible de se passer d'une seconde macro? Avec des arguments optionnels, peut-être? Mais il n'y a pas péril en la demeure ;-)
Serge
"MichDenis" a écrit dans le message de news: %
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer SonNom = Application.Caller **** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh) With Sh 'ton code End With
"garnote" a écrit dans le message de news:
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés respectivement 1, 2, 3, ... ,44, 45 auxquels sont associés la même macro qui utilise Application.Caller. Peut-on demander à une autre macro de cliquer sur le losange 2 et le losange 5 ?
Merci, Merci. Serge
Salut Denis,
J'avais pensé à ça mais c'est plus compliqué !
Je voudrais que la macro "Déplace" s'exécute en utilisant
i = Application.Caller quand je clique sur un losange
et je voudrais pouvoir appeler "Déplace" en lui passant
certaines valeurs de i qui remplaceraient Application.Caller.
J'arrive à mes fins en appelant une seconde macro "Déplace2".
Est-ce possible de se passer d'une seconde macro?
Avec des arguments optionnels, peut-être?
Mais il n'y a pas péril en la demeure ;-)
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news: %23U4Q9fnWHHA.3980@TK2MSFTNGP02.phx.gbl...
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer
SonNom = Application.Caller
**** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix
Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh)
With Sh
'ton code
End With
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
OrNtPRnWHHA.4720@TK2MSFTNGP04.phx.gbl...
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés
respectivement 1, 2, 3, ... ,44, 45 auxquels sont
associés la même macro qui utilise Application.Caller.
Peut-on demander à une autre macro de cliquer sur
le losange 2 et le losange 5 ?
J'avais pensé à ça mais c'est plus compliqué ! Je voudrais que la macro "Déplace" s'exécute en utilisant i = Application.Caller quand je clique sur un losange et je voudrais pouvoir appeler "Déplace" en lui passant certaines valeurs de i qui remplaceraient Application.Caller. J'arrive à mes fins en appelant une seconde macro "Déplace2". Est-ce possible de se passer d'une seconde macro? Avec des arguments optionnels, peut-être? Mais il n'y a pas péril en la demeure ;-)
Serge
"MichDenis" a écrit dans le message de news: %
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer SonNom = Application.Caller **** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh) With Sh 'ton code End With
"garnote" a écrit dans le message de news:
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés respectivement 1, 2, 3, ... ,44, 45 auxquels sont associés la même macro qui utilise Application.Caller. Peut-on demander à une autre macro de cliquer sur le losange 2 et le losange 5 ?
Merci, Merci. Serge
MichDenis
à moins que tu aies un ordi "pensant", si tu n'as pas de conditions particulières pour sélectionner quel code fait exécuter selon l'index du losange...c'est une problématique sans issue.
Dans le cas inverse, tu peux utiliser un select case sur la variable "nomduLosange" pour exécuter un bout de code spécifique....
Tu donnes trop peu d'informations pour bâtir un code qui se tient...!
"garnote" a écrit dans le message de news:
Salut Denis,
J'avais pensé à ça mais c'est plus compliqué ! Je voudrais que la macro "Déplace" s'exécute en utilisant i = Application.Caller quand je clique sur un losange et je voudrais pouvoir appeler "Déplace" en lui passant certaines valeurs de i qui remplaceraient Application.Caller. J'arrive à mes fins en appelant une seconde macro "Déplace2". Est-ce possible de se passer d'une seconde macro? Avec des arguments optionnels, peut-être? Mais il n'y a pas péril en la demeure ;-)
Serge
"MichDenis" a écrit dans le message de news: %
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer SonNom = Application.Caller **** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh) With Sh 'ton code End With
"garnote" a écrit dans le message de news:
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés respectivement 1, 2, 3, ... ,44, 45 auxquels sont associés la même macro qui utilise Application.Caller. Peut-on demander à une autre macro de cliquer sur le losange 2 et le losange 5 ?
Merci, Merci. Serge
à moins que tu aies un ordi "pensant", si tu n'as pas de conditions
particulières pour sélectionner quel code fait exécuter selon
l'index du losange...c'est une problématique sans issue.
Dans le cas inverse, tu peux utiliser un select case
sur la variable "nomduLosange" pour exécuter un bout
de code spécifique....
Tu donnes trop peu d'informations pour bâtir un code qui se tient...!
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
edA361oWHHA.4860@TK2MSFTNGP04.phx.gbl...
Salut Denis,
J'avais pensé à ça mais c'est plus compliqué !
Je voudrais que la macro "Déplace" s'exécute en utilisant
i = Application.Caller quand je clique sur un losange
et je voudrais pouvoir appeler "Déplace" en lui passant
certaines valeurs de i qui remplaceraient Application.Caller.
J'arrive à mes fins en appelant une seconde macro "Déplace2".
Est-ce possible de se passer d'une seconde macro?
Avec des arguments optionnels, peut-être?
Mais il n'y a pas péril en la demeure ;-)
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23U4Q9fnWHHA.3980@TK2MSFTNGP02.phx.gbl...
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer
SonNom = Application.Caller
**** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix
Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh)
With Sh
'ton code
End With
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
OrNtPRnWHHA.4720@TK2MSFTNGP04.phx.gbl...
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés
respectivement 1, 2, 3, ... ,44, 45 auxquels sont
associés la même macro qui utilise Application.Caller.
Peut-on demander à une autre macro de cliquer sur
le losange 2 et le losange 5 ?
à moins que tu aies un ordi "pensant", si tu n'as pas de conditions particulières pour sélectionner quel code fait exécuter selon l'index du losange...c'est une problématique sans issue.
Dans le cas inverse, tu peux utiliser un select case sur la variable "nomduLosange" pour exécuter un bout de code spécifique....
Tu donnes trop peu d'informations pour bâtir un code qui se tient...!
"garnote" a écrit dans le message de news:
Salut Denis,
J'avais pensé à ça mais c'est plus compliqué ! Je voudrais que la macro "Déplace" s'exécute en utilisant i = Application.Caller quand je clique sur un losange et je voudrais pouvoir appeler "Déplace" en lui passant certaines valeurs de i qui remplaceraient Application.Caller. J'arrive à mes fins en appelant une seconde macro "Déplace2". Est-ce possible de se passer d'une seconde macro? Avec des arguments optionnels, peut-être? Mais il n'y a pas péril en la demeure ;-)
Serge
"MichDenis" a écrit dans le message de news: %
Dim SonNom As String, Sh As Object
****Application.Caller te retourne l'objet que tu as cliquer SonNom = Application.Caller **** Substitues l'index de SonNom par l'index du contrôle de ton choix
****Tu obtiens une varriable objet représentant le contrôle de ton choix Set Sh = Feuil1.Shapes(SonNom).OLEFormat.Object
tu pourras utiliser l'objet pour le reste de ton code
MsgBox TypeName(Sh) With Sh 'ton code End With
"garnote" a écrit dans le message de news:
Bonjour, Bonjour au monde entier,
Sur une feuille de calcul, j'ai 45 losanges nommés respectivement 1, 2, 3, ... ,44, 45 auxquels sont associés la même macro qui utilise Application.Caller. Peut-on demander à une autre macro de cliquer sur le losange 2 et le losange 5 ?
Merci, Merci. Serge
Modeste
Bonsour® garnote avec ferveur ;o))) vous nous disiez :
Je voudrais que la macro "Déplace" s'exécute en utilisant i = Application.Caller quand je clique sur un losange et je voudrais pouvoir appeler "Déplace" en lui passant certaines valeurs de i qui remplaceraient Application.Caller.
Sub deplace() i = Right(Application.Caller, 1) Select Case i Case 1, 4, 7 x = 20: y = 40 Case 2, 5, 8 x = 40: y = -20 Case 3, 6, 9 x = -20: y = 20 End Select z = 1 + Int(Rnd() * 9) With ActiveSheet.Shapes("Forme automatique " & z) .Left = .Left + x .Top = .Top + y End With End Sub -- -- @+ ;o)))
Bonsour® garnote avec ferveur ;o))) vous nous disiez :
Je voudrais que la macro "Déplace" s'exécute en utilisant
i = Application.Caller quand je clique sur un losange
et je voudrais pouvoir appeler "Déplace" en lui passant
certaines valeurs de i qui remplaceraient Application.Caller.
Sub deplace()
i = Right(Application.Caller, 1)
Select Case i
Case 1, 4, 7
x = 20: y = 40
Case 2, 5, 8
x = 40: y = -20
Case 3, 6, 9
x = -20: y = 20
End Select
z = 1 + Int(Rnd() * 9)
With ActiveSheet.Shapes("Forme automatique " & z)
.Left = .Left + x
.Top = .Top + y
End With
End Sub
--
--
@+
;o)))
Bonsour® garnote avec ferveur ;o))) vous nous disiez :
Je voudrais que la macro "Déplace" s'exécute en utilisant i = Application.Caller quand je clique sur un losange et je voudrais pouvoir appeler "Déplace" en lui passant certaines valeurs de i qui remplaceraient Application.Caller.
Sub deplace() i = Right(Application.Caller, 1) Select Case i Case 1, 4, 7 x = 20: y = 40 Case 2, 5, 8 x = 40: y = -20 Case 3, 6, 9 x = -20: y = 20 End Select z = 1 + Int(Rnd() * 9) With ActiveSheet.Shapes("Forme automatique " & z) .Left = .Left + x .Top = .Top + y End With End Sub -- -- @+ ;o)))