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
 

Farscape

XLDnaute Junior
Ca marche sans marcher cad
quand je change la barre de defilement ca m'execute la macro alors que moi j'aimerais que ca affecte la macro au bouton de commande

Merci quand meme pour ta reponse
 

_Thierry

XLDnaute Barbatruc
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
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]
 

Fichiers joints

_Thierry

XLDnaute Barbatruc
=> 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]
 

Fichiers joints

Farscape

XLDnaute Junior
Re:=> DEMO UserForm Planning Avec Control Calendar

petit probleme ca me met impossible de charger l'objet car il n'est pas disponible sur la machine
 

Farscape

XLDnaute Junior
Re:=> DEMO UserForm Planning Avec Control Calendar

c'est celà qui coince :

Private Sub UserForm_Initialize()
With Me
.Caption = T
.Calendar1 = Date
.CheckBox1 = True
End With
Initiator
End Sub


et Date est surligné
 

_Thierry

XLDnaute Barbatruc
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
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
 

Fichiers joints

_Thierry

XLDnaute Barbatruc
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]
 

Farscape

XLDnaute Junior
Re:=> DEMO UserForm Planning Avec Control Calendar

ok j'ai trouver le pourquoi du comment
en fait, le fichier mscal.osx n'est pas installé avec excel mais avec accessqui lui n'etait pas installé
donc j'ai pu voir le fichier USF planning
il me convient bien, il faut que je le regarde de plus près pour l'adapter a ce que je doit faire.
a+ si j'ai un prob et non je ne ferait pas encore un autre message ce sera sur celui là.
 

Farscape

XLDnaute Junior
Re:=> DEMO UserForm Planning Avec Control Calendar

Re bonsoir

Alors ça fonctionne nickel et me va très bien, juste une petite question comment fait-on pour rajouter des mois sans que ca nous dissent version demo limité

Merci d'avance.

Bonne soirée.
 

_Thierry

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

RE Farscape,

Ah Ah Ah pour enlever le message 'version demo limité ' il faut faire 'AlloPass' au 08 09 50 41 41 et ceci 71 fois d'affilée à 50 cents HT l'appel !!! lol lol lol

Meuh Non on est pas comme ça ici Mort de Rire !!!!

C'est ce que je t'expliquais plus haut :

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
.

Si tu ajoutes AOUT 2006 par exemple en ligne 90 de ma démo...
Tu copies la plage de Juillet soit de 'A84;AF89' (tu auras ainsi les Formats...
Tu colles en 'A90' et tu changes JUILLET 2006 par AOUT 2006...
En B91 tu saisis 01/08/2006 et tu 'tires' cette date vers la Gauche jusqu'en AF91 ... C'est tout....

Si vraiment tu avais besoin on peut aussi le faire par Macro mais bon c'est quand même pas sorcier à faire... En plus c'est toi qui gères les noms des employés présents ce mois là (tu peux saisir n'importe qui, le UserForm est Dynamique pour le mois sélectionné dans le Calendar et te listera uniquement les employés listés pour ce mois là...)

Bonne Découverte et Heureux que tu aies pu faire fonctionner ce UserForm.
[ol]@+Thierry[/ol]

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

FP1954

XLDnaute Nouveau
Re:=> DEMO UserForm Planning Avec Control Calendar

bon, j'ai le même problème, mais ou donc ranger cet ocx etsurtout, comment le faire apparaître dans la liste des objets excel ? peut être avez-vous une réponse ?
merci à vous
francis
 
Haut Bas