Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

récupérer une valeur d'une cellule par rapport à postion d'un bouton...

4 réponses
Avatar
Michel
Bonsoir à toutes et tous
Je v'ai essayer d'être précis et simple.

J'ai positionné des petits ronds pour faire
office de boutons sur une feuille. quand je
clique sur un rond, il lance une macro bien
précise qui renvoi une valeur. Cette fameuse
valeur je voudrai que la macro l'a récupére elle
même dans la cellule qui est précisément en
dessous d'elle au lieu que je l'écrive
manuellement dans la macro, comme cela si ma
liste change, le bouton lui lancera la macro en
récupérant la valeur qui est dans la cellule en
arrière plan.

est ce possible ? et comment ??? merci d'avance.


un petit bout du code qui me sert actuellement..
sur ma feuille actuelle, j'ai de rond1 à rond18

Sub rond11_quandclic()
ronds_quandclic (11)
End Sub
'-----------------
Sub rond12_quandclic()
ronds_quandclic (12)
End Sub
'-----------------
Sub rond13_quandclic()
ronds_quandclic (13)
End Sub
'-----------------
Sub rond14_quandclic()
ronds_quandclic (14)
End Sub
'-----------------
Sub ronds_quandclic(mavar As Integer)
If mavar = 11 Then rond = "dep" 'je voudrai
que rond récupére la valeur de la cellule J30 qui
contient ce fameux "rin" comme cela si je change
la valeur de J30, rond sera égal à son contenu.
If mavar = 12 Then rond = "dex" ' égal valeur
de J31
If mavar = 13 Then rond = "fin" 'égal
valeur de J32
If mavar = 14 Then rond = "fox" 'etc...

--
Amicalement
Michel . P

4 réponses

Avatar
michdenis
Bonjour Michel,

Comme je n'ai pas vraiment tout compris de que tu voulais faire, essaie de comprendre ce que j'ai compris et pourquoi je
te suggère ceci :

Tu attaches cette macro (la même) à chacun de tes boutons ronds

'----------------------------------
Sub UnClicSurLeRond()

Dim Adr As String, SonNom As String

SonNom = Application.Caller
With ActiveSheet.Shapes(SonNom).OLEFormat.Object
Adr = .TopLeftCell.Address
End With
With Worksheets("Feuil1")
Select Case Right(SonNom, 2)
Case 11
.Range(Adr) = .Range("j30")
Case 12
.Range(Adr) = .Range("j31")
Case 13
.Range(Adr) = .Range("j32")
Case 14
.Range(Adr) = .Range("j33")
End Select
End With

Set Sh = Nothing

End Sub
'----------------------------------


Salutations!




"Michel" a écrit dans le message de news:
Bonsoir à toutes et tous
Je v'ai essayer d'être précis et simple.

J'ai positionné des petits ronds pour faire
office de boutons sur une feuille. quand je
clique sur un rond, il lance une macro bien
précise qui renvoi une valeur. Cette fameuse
valeur je voudrai que la macro l'a récupére elle
même dans la cellule qui est précisément en
dessous d'elle au lieu que je l'écrive
manuellement dans la macro, comme cela si ma
liste change, le bouton lui lancera la macro en
récupérant la valeur qui est dans la cellule en
arrière plan.

est ce possible ? et comment ??? merci d'avance.


un petit bout du code qui me sert actuellement..
sur ma feuille actuelle, j'ai de rond1 à rond18

Sub rond11_quandclic()
ronds_quandclic (11)
End Sub
'-----------------
Sub rond12_quandclic()
ronds_quandclic (12)
End Sub
'-----------------
Sub rond13_quandclic()
ronds_quandclic (13)
End Sub
'-----------------
Sub rond14_quandclic()
ronds_quandclic (14)
End Sub
'-----------------
Sub ronds_quandclic(mavar As Integer)
If mavar = 11 Then rond = "dep" 'je voudrai
que rond récupére la valeur de la cellule J30 qui
contient ce fameux "rin" comme cela si je change
la valeur de J30, rond sera égal à son contenu.
If mavar = 12 Then rond = "dex" ' égal valeur
de J31
If mavar = 13 Then rond = "fin" 'égal
valeur de J32
If mavar = 14 Then rond = "fox" 'etc...

--
Amicalement
Michel . P
Avatar
garnote
Salut Michel,

Si ton cercle est tout entier dans ta cellule et que
cette cellule contient un nombre, alors tu peux le récupérer
de la façon suivante.
Il te suffit d'associer à chacun de tes cercles cette macro :

Sub Valeur_Sous_Cercle()
Dim cercle As String
cercle = Application.Caller
v = ActiveSheet.Shapes(cercle).TopLeftCell
End Sub

Ai-je bien compris ?

Serge



"Michel" a écrit dans le message de
news:
Bonsoir à toutes et tous
Je v'ai essayer d'être précis et simple.

J'ai positionné des petits ronds pour faire
office de boutons sur une feuille. quand je
clique sur un rond, il lance une macro bien
précise qui renvoi une valeur. Cette fameuse
valeur je voudrai que la macro l'a récupére elle
même dans la cellule qui est précisément en
dessous d'elle au lieu que je l'écrive
manuellement dans la macro, comme cela si ma
liste change, le bouton lui lancera la macro en
récupérant la valeur qui est dans la cellule en
arrière plan.

est ce possible ? et comment ??? merci d'avance.


un petit bout du code qui me sert actuellement..
sur ma feuille actuelle, j'ai de rond1 à rond18

Sub rond11_quandclic()
ronds_quandclic (11)
End Sub
'-----------------
Sub rond12_quandclic()
ronds_quandclic (12)
End Sub
'-----------------
Sub rond13_quandclic()
ronds_quandclic (13)
End Sub
'-----------------
Sub rond14_quandclic()
ronds_quandclic (14)
End Sub
'-----------------
Sub ronds_quandclic(mavar As Integer)
If mavar = 11 Then rond = "dep" 'je voudrai
que rond récupére la valeur de la cellule J30 qui
contient ce fameux "rin" comme cela si je change
la valeur de J30, rond sera égal à son contenu.
If mavar = 12 Then rond = "dex" ' égal valeur
de J31
If mavar = 13 Then rond = "fin" 'égal
valeur de J32
If mavar = 14 Then rond = "fox" 'etc...

--
Amicalement
Michel . P



Avatar
Michel
Oui Serge tu as bien compris, le résultat est
parfait, la valeur de la cellule est bien
récupérée comme je le voulais.
merci et bonne soirée

--
Amicalement
Michel . P
Avatar
Michel
Bonsoir Michdenis, je pense que tu as bien
compris et je décortique ta réponse pour
l'adapter.
Merci d'avoir fait fumer ton clavier pour moi et
bonne soirée.

--
Amicalement
Michel . P