Modifier macros d'un bouton par menu deroulant

Farscape

XLDnaute Junior
Bonjour

J'aimerais savoir comment on modifie la macro affecté a un bouton Via la valeur d'un menu déroulant
J4ai commencé qqchose mais coince.

Sub Zonecombinée9_QuandChangement()
Sheets('Feuil1').Activate
If Feuil1.Range('a5').Value = 1 Then (je ne sais pas quoi mettre)
If Feuil1.Range('a5').Value = 2 Then
If Feuil1.Range('a5').Value = 3 Then

End Sub

En fait faut qu'apres then je dise que 'Bouton8_QuandClic' egale macro1,2,3,....

Et aussi y a t-il un moyen de bloquer de le defilment d'une feuil, car le feuille est un menu et je ne veut pas que l'on puisse descendre , aller droite, avec la souris ou les fleches, voilà

Merci pour votre aide
 

ZZR09

XLDnaute Occasionnel
Bonjour Farscape, le Forum

Je suis très loin des cadors de ce site mais voici une proposition qui devrait fonctionner mais qui deviendrait ingérable si le nombre de macros à lancer est important :

Code:
Code:
Sub Bouton8_QuandClic ()
Sheets('Feuil1').Activate
If Feuil1.Range('a5').Value = 1 Then titi
If Feuil1.Range('a5').Value = 2 Then tata
If Feuil1.Range('a5').Value = 3 Then toto

End Sub

sub titi()
... Tout ce qui doit être effectué dans ce cas
End Sub

sub tata()
...
End Sub

sub toto()
...
End Sub

En fait, la macro Zonecombinée9 sert de procédure de lancement pour les macros titi, tata, toto.

voilà, c'est simple, ça fonctionne mais, il ne faut qu'il y ait un grand choix de macros à lancer!
;)
A+

Message édité par: zzr09, à: 28/08/2005 11:28

Message édité par: zzr09, à: 28/08/2005 11:29

Message édité par: zzr09, à: 28/08/2005 11:36
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Farscape, ZZR le Forum


Ton problème est trop peu détaillé sans avoir un exemple de fichier pour pouvoir t'aider...

Comment Joindre un Fichier dans le Forum XLD

La solution de ZZR peut tout à fait convenir, mais on peut aussi passer par un 'Select Case' qui sera plus 'léger' si tu as beaucoup de cas...

Pour essayer de répondre en partie avec les éléments donnés :

Sub Zonecombinée9_QuandChangement()
Dim MaValeur As String

MaValeur = Feuil1.Range('a5')

Select Case MaValeur
   
Case 1
        MsgBox 'La Valeur en A5 est de UN'
   
Case 2
        MsgBox 'La Valeur en A5 est de DEUX'
   
Case 3
        MsgBox 'La Valeur en A5 est de TROIS'
   
Case 4
        MsgBox 'La Valeur en A5 est de QUATRE'
   
Case Else
        MsgBox 'La Valeur en A5 est AUTRE  : ' & MaValeur
End Select


End Sub


Pour la dernière question tu peux t'orienter vers 'ScrollArea' comme ceci :

Sub WindowScrolling()
    Feuil1.ScrollArea = 'a1:f10'
End Sub


Mais ce genre de propriété est 'volatile' c'est à dire qu'elle ne restera pas en mémoire après fermeture du classeur.... Donc il ffaut la réinitialiser à chaque ouverture avec par exemple un code dans dans le Private Module de 'ThisWorkBook' comme dans le Gif :



Il te suffira de remplacer le Message MsgBox par la macro 'WindowScrolling'

Bon Dimanche
[ol]@+Thierry[/ol]
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour

C'est un peu bizarre comme demande...

Alors c'est l'inverse que tu dois faire, c'est au niveau du Bouton de Commande que tu dois scanner la valeur qui aura été fixée par la sélection de ta 'ZoneCombinée9'...

Private Sub CommandButton1_Click()
Dim MaValeur As String

MaValeur = Feuil1.Range('a5')
Select Case MaValeur
   
Case 1
        Macro1
   
Case 2
        Macro2
   
Case 3
        Macro3
   
Case 4
        Macro4
   
Case Else
        MsgBox 'Alerte pas de Valeur valable en A5'
End Select
End Sub

Sub Macro1()
MsgBox 'Ici la Macro pour Valeur 1...'
End Sub
Sub Macro2()
MsgBox 'Ici la Macro pour Valeur 2...'
End Sub
Sub Macro3()
MsgBox 'Ici la Macro pour Valeur 3...'
End Sub
Sub Macro4()
MsgBox 'Ici la Macro pour Valeur 4...'
End Sub


Bon Courage
[ol]@+Thierry[/ol]
 

Farscape

XLDnaute Junior
oK Ci-joint le fichier que j'ai fait
ce sera plus simple pour comprendre [file name=Appel_20050828122041.zip size=12776]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Appel_20050828122041.zip[/file]
 

Pièces jointes

  • Appel_20050828122041.zip
    12.5 KB · Affichages: 47

_Thierry

XLDnaute Barbatruc
Repose en paix
=> DEMO UserForm Planning Avec Control Calendar

Re Farscape, le Forum

Je reste encore plus perplexe en voyant (excuses-moi l'expression) cette Usine à Gaz !!!

En fait ton souci est de remplir ton Planning en fonction d'une Date et de l'employé sélectionné ?

Il y a bien bien bien plus simple à faire... Enfin pour un UserForm !

La seule contrainte est de respecter des vraies dates dans tes cellules de 1 à 30/31 (ou 28) en mettant cette date au format perso 'J' ou (D) selon ta version.


Bonne Découverte
[ol]@+Thierry[/ol]


[file name=USF_Planning.zip size=19134]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Planning.zip[/file]
 

Pièces jointes

  • USF_Planning.zip
    18.7 KB · Affichages: 37

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO UserForm Planning Avec Control Calendar

Re Bonjour Farscape

Ah oui, pourtant j'ai essayé d'utiliser le Calendar Control 8.0 qui est standard mais c'est exact que j'ai fini le développement sous une autre Bécanne avec Excel 2003 ce qui a du basculer sur un Calendar plus récent. (Mon vieux PC de test commençait à planter, alors j'ai sauvé inextremis et j'ai récupéré sur un autre ordi)

Quelle version d'Excel / Windows utilises-Tu ?

Je vais voir entre-temp ce que je peux faire pour placer un Control Calendar plus ancien.

[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 28/08/2005 17:08
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO UserForm Planning Avec Control Calendar

Re Farscape

Peux-tu essayer ceci :


C'est fait avec un Control Calendar 11.0 d'Office 2003 Pro

[ol]@+Thierry[/ol] [file name=Calendar11.zip size=9281]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Calendar11.zip[/file]

Message édité par: _Thierry, à: 28/08/2005 17:07
 

Pièces jointes

  • Calendar11.zip
    9.1 KB · Affichages: 53

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO UserForm Planning Avec Control Calendar

Re Farscape

on dirait que ton installation d'Office a été 'light' car le Control ActiveX Calendar 11.0 est vraissemblablement d'iorigine azvec Office 2003...

Peux-tu chercher sur ton disque dûr si tu as ce Fichier installé :

MSCAL.OCX

Logiquement il doit se situer sous

C:\Program Files\Microsoft Office\Office11\

[ol]@+Thierry[/ol]
 

Discussions similaires

Statistiques des forums

Discussions
311 540
Messages
2 080 532
Membres
101 234
dernier inscrit
Layani89