lancer une macro dans une cellule à la place du bouton [ RESOLU ]

al1.2loin

XLDnaute Occasionnel
Bonjour, toujours en perte de vitesse, je demande si cela est possible de lancer une macro uniquement en cliquant sur un cellule à la place d'un bouton.
ci joint mon fichier pour mieux m'expliquer:
En B4 j'ai mon bouton de ma macro, je voudrais que ma macro s'exécute en cliquant uniquement dans la cellule B4.
Cela est il possible?
Grâce au forum je récupère des exemple qui me sont très utile, mais je n'ai pas trouvé le bonne exemple.
 

Pièces jointes

  • Macro_Max.xlsm
    52.9 KB · Affichages: 46
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : lancer une macro dans une cellule à la place du bouton

Bonjour al1

Code à mettre dans la feuille "janvier"
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then
Zéro_Max
End If
End Sub

et modifier la procédure Zéro_max
Code:
Sub Zéro_Max()
    Range("B6").Select
    Selection.AutoFill Destination:=Range("B6:B36"), Type:=xlFillDefault
    Range("B6:B36").Select
    Range("B5").Select    ' j'ai modifié la ligne Range("B4").select
End Sub

à+
Philippe
 

Chris401

XLDnaute Accro
Re : lancer une macro dans une cellule à la place du bouton

Bonjour

Je suppose que tu as également les feuilles février, mars ...

Code à placer dans ThisWorkbook
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$B$4" Then Range("B6").AutoFill Destination:=Range("B6:B36")
End Sub

Tu peux supprimer la macro Zéro_Max

Cordialement
Chris
 

Staple1600

XLDnaute Barbatruc
Re : lancer une macro dans une cellule à la place du bouton

Bonjour à tous

Ma proposition pour éviter l'autofill et les Select
Code:
Sub Zéro_Max()
Range("B6:B36") = "=IF(RC[-1]="""","""",INDEX(Cycle_Max,MOD(RC[-1]-Départ,Durée)+1))"
End Sub
 

Si...

XLDnaute Barbatruc
Re : lancer une macro dans une cellule à la place du bouton

salut

Autre proposition, dans ThisWorbook
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal R As Range)
  If R(1, 1) = "MAX" Then [B6:B36] = [B6].Formula
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : lancer une macro dans une cellule à la place du bouton

[...suite...]

modification si on clique pour chaque prénom
Dans le code de la feuille
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B4:H4")) Is Nothing Then
Zéro_Max
End If
End Sub
Dans un module standard
Code:
Sub Zéro_Max()
Dim a As Range, nom$, formule$
Set a = ActiveCell
Select Case a.Column
Case 2 To 8
NOM = Choose(a.Column - 1, "Cycle_Max", "Cycle_Lionel", "Cycle_Marie_Line", "Cycle_Alain", "Cycle_Kader", "Cycle_Raymond", "Cycle_Tommy")
End Select
formule = "=IF(RC1="""","""",INDEX(" & NOM & ",MOD(RC1-Départ,Durée)+1))"
Cells(6, a.Column).Resize(31).FormulaR1C1 = formule
End Sub

Reste à savoir si avec ces modifs, tu obtiens les résultats que tu souhaites ?

EDITION: Salut JCGL, comme dirait l'autre : J'achète !!!
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B4:H4")) Is Nothing Then
Range("B6:H36") = "=IF(RC1="""","""",IFERROR(INDEX(INDIRECT(""Cycle_""&R4C ),MOD(RC1-Départ,Durée)+1),""""))"
End If
End Sub
ou simplement
Code:
Private Sub Worksheet_SelectionChange(ByVal t As Range)
If t.Address = "$B$4" Then
Range("B6:H36") = "=IF(RC1="""","""",IFERROR(INDEX(INDIRECT(""Cycle_""&R4C ),MOD(RC1-Départ,Durée)+1),""""))"
End If
End Sub
 
Dernière édition:

Chris401

XLDnaute Accro
Re : lancer une macro dans une cellule à la place du bouton

Re

Autre façon :

1 - Ecrire MARIE_LINE au lieu de Marie-Line en D4 (comme indiqué par JCGL)

2 -Pour remplir toutes les cellules en cliquant uniquement sur B4 (Code dans ThisWorkbook)
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$B$4" Then
            Range("B6:H36").FormulaR1C1 = _
        "=IF(RC1="""","""",INDEX(INDIRECT(""Cycle_""&R4C),MOD(RC1-Départ,Durée)+1))"
    End If
End Sub

Chris
 

Staple1600

XLDnaute Barbatruc
Re : lancer une macro dans une cellule à la place du bouton

Re

[humour]
Une minute trop tard, Chris401 ;)
(voir l'édition de 13h13 de mon précédent message )
[/humour]

Au moins maintenant, on a la version single sheet et la version multiple sheet ;)
 
Dernière édition:

al1.2loin

XLDnaute Occasionnel
Re : lancer une macro dans une cellule à la place du bouton

Merci encore pour votre implication, j'ai repris vos codes et cela marche, je vais encore user de vos connaissances,je sais que ce n'est pas le même fil de discutions, mais je souhaiterai maintenant que les cellules B3:H4 restent bloquées pour ne pas effacer malencontreusement le planning une fois rempli.
J'ai essayé la protection contre l'écriture mais cela donne quand même accès aux cellules .
PS:
après plusieurs tentatives j'ai réussi à obtenir je que voulais mes cellules B3:H4 sont bloquées et tous le reste de ma feuilles est opérationnel, et encore milles fois merci pour votre aide.
Quand je vois vos réponses, c'est à celui qui donnera la meilleur solution, ne changer rien vous êtes formidable.
 

Pièces jointes

  • Plannings_2015 CYCLE_ EQUIPE_B.xlsm
    65.9 KB · Affichages: 33
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16