appeler une procedure avec plusieurs boutons

  • Initiateur de la discussion Initiateur de la discussion Kikoo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

Kikoo

Guest
Bonsoir à tous,

J'ai un méga problème.

J'ai 5 macros (de couleur1 à couleur5) qui, une fois appellée formate la ou les cellule(s) active(s).

J'ai une autre macro (planning) qui deplace la selection et appelle une couleur.

Mon probleme c'est que j'ai plusieurs couleurs en fonction de different parametres.

En fait ce que je recherche c'est qu'en appuyant le bonton 1 , la couleur du code si-dessous soit couleur1 mais si j'appuie sur le bouton 2, (qui appelle la meme procedure) ce soit la couleur2 au lieu de la couleur1.

J'aimerais que le nom de la couleur soit modifié selon le bouton que j'appuie.

Ce qui me permetterais de ne pas créer 5 fois les memes procedures.

Voici le bout de code:

Sub planning()
ActiveCell.Offset(0, -2).Select
couleur1
ActiveCell.Offset(0, 17).Select
couleur1
ActiveCell.Offset(0, 1).Select
couleur1
ActiveCell.Offset(0, 1).Select
couleur1
ActiveCell.Offset(0, 1).Select
couleur1
ActiveCell.Offset(0, 5).Select
couleur1
ActiveCell.Offset(0, 1).Select
couleur1
ActiveCell.Offset(0, 1).Select
couleur1
End Sub
 
Re : appeler une procedure avec plusieurs boutons

Bonsoir le fil, Kikoo

Par exemple :
l'appui sur un bouton apelle une procédure en lui passant en paramètre le numéro du bouton et dans la procédure apelée, un Select Case gère le topo ... A adapter.
Code:
Sub bouton1()
    Menu 1
End Sub
 
Sub bouton2()
    Menu 2
End Sub
 
Sub bouton3()
    Menu 3
End Sub
 
Sub Menu(ByVal i As Integer)
    Select Case i
        Case 1
            MsgBox "Action bouton 1"
        Case 2
            MsgBox "Action bouton 2"
        Case 3
            MsgBox "Action bouton 3"
    End Select
End Sub
A plus
 
Re : appeler une procedure avec plusieurs boutons

En fait, j'ai cherche toute la nuit et je suis arrivé a ceci qi marche bien.

Mantenant est-ce possible de l'allèger???
Sub Service_Unique()


If ActiveCell = "S1" Then

Select Case MsgBox("Etes-vous sur de vouloir mettre """ & Range("C380") & """ sur la ligne du service 1 ?", vbOKCancel + vbQuestion, "Maladie")
Case vbOK
Service1
End Select

ElseIf ActiveCell = "S2" Then

Select Case MsgBox("Etes-vous sur de vouloir mettre """ & Range("C380") & """ sur la ligne du service 2 ?", vbOKCancel + vbQuestion, "Maladie")
Case vbOK
Service2
End Select

ElseIf ActiveCell = "S3" Then

Select Case MsgBox("Etes-vous sur de vouloir mettre """ & Range("C380") & """ sur la ligne du service 3 ?", vbOKCancel + vbQuestion, "Maladie")
Case vbOK
Service3
End Select

ElseIf ActiveCell = "S4" Then

Select Case MsgBox("Etes-vous sur de vouloir mettre """ & Range("C380") & """ sur la ligne du service 4 ?", vbOKCancel + vbQuestion, "Maladie")
Case vbOK
Service4
End Select

ElseIf ActiveCell = "S5" Then

Select Case MsgBox("Etes-vous sur de vouloir mettre """ & Range("C380") & """ sur la ligne du service 5 ?", vbOKCancel + vbQuestion, "Maladie")
Case vbOK
Service5
End Select

Else
Select Case MsgBox("Attention : vous n'êtes pas sur S1, S2, S3, S4 ou S5", vbOKCancel + vbCritical, "Maladie Service 1")
Case vbCancel
'Rien faire si on appuie annuler
End Select

End If

End Sub


Merci quand meme pour la reponse
 
Re : appeler une procedure avec plusieurs boutons

Re,

Un exemple :
Code:
Sub Service_Unique()
    Dim rep As Long
 
    Select Case [B][COLOR=blue]ActiveCell.Address[/COLOR][/B]
 
        Case [B][COLOR=blue]"$S$1"[/COLOR][/B]
            If Msg(1) = vbOK Then Service1
 
        Case [B][COLOR=blue]"$S$2"[/COLOR][/B]
            If Msg(2) = vbOK Then Service2
 
        Case [B][COLOR=blue]"$S$3"[/COLOR][/B]
            If Msg(3) = vbOK Then Service3
 
        Case [B][COLOR=blue]"$S$4"[/COLOR][/B]
            If Msg(4) = vbOK Then Service4
 
        Case [B][COLOR=blue]"$S$5"[/COLOR][/B]
            If Msg(5) = vbOK Then Service5
 
        Case Else
            rep = MsgBox("Attention : vous n'êtes pas sur S1, S2, S3, S4 ou S5", vbCritical, "Maladie Service 1")
 
    End Select
 
End Sub
 
 
Function Msg(ByVal x%)
    Msg = MsgBox("Etes-vous sur de vouloir mettre """ & [C380] & """ sur la ligne du service " & x & " ?", vbOKCancel + vbQuestion, "Maladie")
End Function
A plus
 
Re : appeler une procedure avec plusieurs boutons

Bonjour chez vous


Voici une digression de l'exemple précédent de soenda

Code:
Sub test()
Dim x As Integer
If Not Intersect(ActiveCell, Range("S1:S5")) Is Nothing Then
x = CInt(Right(ActiveCell.Address(0, 0), 1))
services x
End If
End Sub
Sub services(ByVal service As Integer)
MsgBox "Etes-vous sur de vouloir mettre """ & [C380] & """ sur la ligne du service S" & service & " ?", vbOKCancel + vbQuestion, "Maladie"
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
21
Affichages
2 K
Réponses
4
Affichages
894
  • Question Question
XL pour MAC boucle couleur
Réponses
25
Affichages
1 K
Retour