Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/11/2007, 21h59   #1
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
Par défaut [Excel2007] Activation conditionnelle d'un bouton dans un ruban personnalisé

Dans cette procédure, le bouton (créé dans un onglet personnel) est activé uniquement si le contenu de la cellule A1 contient la valeur 1.


Insérez ce code dans le fichier CustomUI.xml :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RubanCharge">
<!-- onLoad="RubanCharge" est déclenché lors du chargement du ruban personnalisé. -->
<ribbon startFromScratch="false">
<tabs>
 
<tab id="OngletPerso" label="OngletPerso" visible="true">
   <group id="Projet01" label="Projet 01">
 
      <!-- onAction="ProcLancement" définit la macro déclenchée lorsque vos cliquez sur le bouton. -->
      <!-- getEnabled="Bouton1_Enabled" gére la condition d'activation ou de désactivation. -->       
      <button id="Bouton1" label="Lancement" onAction="ProcLancement" size="normal" 
         imageMso="Repeat" getEnabled="Bouton1_Enabled"/> 
 
   </group>
</tab>
 
</tabs>
</ribbon>
</customUI>



Dans un module standard :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Explicit
 
Public MonRuban As IRibbonUI
Public boolResult As Boolean
 
 
'Callback for customUI.onLoad
'Est déclenché lors du chargement du ruban personnalisé.
Sub RubanCharge(ribbon As IRibbonUI)
    boolResult = False
    Set MonRuban = ribbon
End Sub
 
 
'Callback for Bouton1 onAction
'La procédure déclenchée lorsque vous cliquez sur le bouton.
Sub ProcLancement(control As IRibbonControl)
    MsgBox "ma procédure."
End Sub
 
 
'Callback for Bouton1 getEnabled
'Active ou désactive le bouton en fonction de la variable boolResult
Sub Bouton1_Enabled(control As IRibbonControl, ByRef returnedVal)
    returnedVal = boolResult
End Sub



Dans le module objet Worksheet de la feuille (où vous allez modifier le contenu de la cellule A1):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
 
'Evenement Change dans la feuille de calcul.
Private Sub Worksheet_Change(ByVal Target As Range)
    'Vérifie si la cellule A1 est modifiée et si la cellule contient la valeur 1.
    If Target.Address = "$A$1" And Target = 1 Then
        boolResult = True
    Else
        boolResult = False
    End If
 
    'Rafraichit le bouton personnalisé
    If Not MonRuban Is Nothing Then MonRuban.InvalidateControl "Bouton1"
End Sub
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web