Declancher un userform sur un bouton special et un prob avec le pleine ecran!

jimmy59940

XLDnaute Nouveau
Bonjour,
j'ai deux petites questions qui me sont assez complexe!:)

Je pense que la première doit être assez simple mais je n'arrive pas à comprendre! Dans mon thisworbook j'ai placé ma programmation suivante:

Code:
Option Explicit
Private Sub Workbook_Open()
  boolResult = False
  Application.DisplayFullScreen = False
  Sheets("feuil1").Select
ActiveWindow.DisplayWorkbookTabs = False
Worksheets(1).ScrollArea = "A1:K30"
End sub

Mon problème est que si je mets "Application.DisplayFullScreen = True" mon fichier s'ouvre en pleine écran, si je presse la touche "echap" je ne suis plus en pleine écran mais je ne peux plus rien faire mes onglets sont bloquer! Aucun click possible!
Vous pourriez m'aider à me dire pourquoi mes onglets reste fixe?

Ma deuxième question est plus complexe enfin pour moi!

Voilà, j’ai programmé mon customer, mon thisworkbook, et un module de manière à avoir un seul onglet avec un bouton "enter password" au démarrage, et quand je click dessus tous les autres onglets classiques d'excel reviennent avec un nouvel onglet qui contient un bouton pour revenir avec just l'onglet de départ!!(confére image et code en dessous)

Cela fonctionne très bien mais j'aimerais que l'userform que j'ai créé "demande de password" soit ouvert quand je click sur le bouton "enter password",si le nom d'utilisateur et le mot de passe sont correct après la validation,j'ai mes onglets classiques et mon nouvel onglet qui apparaissent!

Pour résumer, ma programmation fonctionne mais maintenant j'aimerais quel fonctionne seulement si les informations de l'userform sont correct! Si elles sont incorrectes, on annule et j'ai toujours que mon onglet perso !
Quelqu'un peut-il m'assister ?car la je m'arrache les cheveux!!!!

Merci d'avance à tous,en espérant avoir était le plus clair possible!

Ma programmation thisworkbook est au dessus

Code customer:

Code:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RubanCharge">
<ribbon startFromScratch="false">

<tabs>
  <tab idMso="TabHome" getVisible="GestionTabStd"/>
  <tab idMso="TabInsert" getVisible="GestionTabStd"/>
  <tab idMso="TabPageLayoutExcel" getVisible="GestionTabStd"/>
  <tab idMso="TabFormulas" getVisible="GestionTabStd"/>
  <tab idMso="TabData" getVisible="GestionTabStd"/>
  <tab idMso="TabReview" getVisible="GestionTabStd"/>
  <tab idMso="TabView" getVisible="GestionTabStd"/>
  <tab idMso="TabDeveloper" getVisible="GestionTabStd"/>
  <tab idMso="TabReview" getVisible="GestionTabStd"/>
  <tab idMso="TabAddIns" getVisible="GestionTabStd"/>

       <tab id="Tab01" label="lock in" getVisible="GestionTabPerso">
         <group id="Groupe01" label="lock in">
           <button id="button01" 
             imageMso="HappyFace" 
             size="large" 
             label="Enter password" 
             onAction="ModifAffichage" />
         </group>
       </tab>

        <tab id="Tab02" label="lock out" getVisible="GestionTabStd">
     <group id="Groupe02" label="lock out">
                <button id="button02" 
                   imageMso="HappyFace" 
                   size="large" 
                   label="lock out" 
                   onAction="ModifAffichage" />
         </group>
        </tab>

</tabs>

</ribbon>
</customUI>

Voici le module pour les callbacks

Code:
Option Explicit
Public boolResult As Boolean
Public objRuban As IRibbonUI
 
 
'Callback for customUI.onLoad
    'Est déclenché lors du chargement du ruban personnalisé.
Sub RubanCharge(ribbon As IRibbonUI)
    Set objRuban = ribbon
End Sub
 
 
'Callback for getVisible
Sub GestionTabStd(control As IRibbonControl, ByRef returnedVal)
    returnedVal = boolResult
End Sub
 
 
'Callback for Tab01 getVisible
Sub GestionTabPerso(control As IRibbonControl, ByRef returnedVal)
    returnedVal = Not boolResult
End Sub
 
 
'Callback for button01 and button 02 onAction
Sub ModifAffichage(control As IRibbonControl)
    boolResult = Not boolResult
    objRuban.Invalidate
End Sub

code de mon userform :
Code:
Option Explicit


Private Sub cmdValider_Click()
    lblMessage.Caption = ""
        If txtUtilisateur.Text = "admin" Then
            If txtMotDePasse.Text = "rclens" Then
                Unload Me
              Else
                Beep
                lblMessage.Caption = "Mot de passe incorect"
                txtMotDePasse.SelStart = 0
                txtMotDePasse.SelLength = Len(txtMotDePasse.Text)
                txtMotDePasse.SetFocus
            End If
          Else
            Beep
            lblMessage.Caption = "Nom d'utilisateur incorect"
            txtUtilisateur.SelStart = 0
            txtUtilisateur.SelLength = Len(txtUtilisateur.Text)
            txtUtilisateur.SetFocus
     End If
End Sub


Private Sub ActiverChamps(ok As Boolean)
    txtUtilisateur.Enabled = ok
    txtMotDePasse.Enabled = ok
    txtUtilisateur.Text = IIf(ok, txtUtilisateur.Text, "")
    txtMotDePasse.Text = IIf(ok, txtMotDePasse.Text, "")
    If ok Then txtUtilisateur.SetFocus
End Sub

et pour finir photo au démarrage du fichier,on voit le bouton "enter password"!

1240751863_Capturer3333333333.JPG
[/URL][/img]
 

MichelXld

XLDnaute Barbatruc
Re : Declancher un userform sur un bouton special et un prob avec le pleine ecran!

Rebonjour,


Mon problème est que si je mets "Application.DisplayFullScreen = True" mon fichier s'ouvre en pleine écran, si je presse la touche "echap" je ne suis plus en pleine écran mais je ne peux plus rien faire mes onglets sont bloquer! Aucun click possible!
Je ne pense pas que le mode plein écran et la gestion personnalisée du ruban soit compatible.
Tu devras préalablement spécifier :
Code:
Application.DisplayFullScreen = False


Ma deuxième question
Une autre approche qui gére le mot de passe directement depuis un menu personnalisé du ruban (mdp="RCLENS" dans cet exemple)

Code:
<customUI xmlns="" 
   onLoad="RubanCharge" > 
<ribbon startFromScratch="false"> 
 
<tabs> 
  <tab idMso="TabHome" getVisible="GestionTabStd"/> 
  <tab idMso="TabInsert" getVisible="GestionTabStd"/> 
  <tab idMso="TabPageLayoutExcel" getVisible="GestionTabStd"/> 
  <tab idMso="TabFormulas" getVisible="GestionTabStd"/> 
  <tab idMso="TabData" getVisible="GestionTabStd"/> 
  <tab idMso="TabReview" getVisible="GestionTabStd"/> 
  <tab idMso="TabView" getVisible="GestionTabStd"/> 
  <tab idMso="TabDeveloper" getVisible="GestionTabStd"/> 
  <tab idMso="TabReview" getVisible="GestionTabStd"/> 
  <tab idMso="TabAddIns" getVisible="GestionTabStd"/> 
 
    <tab id="Tab01" label="Onglet perso 01" getVisible="GestionTabPerso"> 
       <group id="MdP" label="Mot de passe"> 
       <gallery id="gallery01" 
           size = "normal" 
           imageMso = "CalculateNow" 
           label = "Saisissez le mot de passe :" 
           columns = "6" 
           rows = "6" 
           getItemCount = "NbCaracteres" 
           showItemLabel = "true" 
           getItemLabel = "LabelCaractere" 
           screentip = "Sélectionnez les caractéres dans la galerie, puis validez le mot de passe." 
           onAction="SelectCaractere" > 
           <button id="Bt02" label="Effacez la saisie." 
               imageMso="ClearMenu" onAction="EffaceContenuLabel"/> 
       </gallery> 
       <box id="Box01" boxStyle="horizontal"> 
           <labelControl id="LC01" getLabel="ContenuLabel" /> 
       </box> 
       <button id="Bt01" imageMso="FileStartWorkflow" size="normal" 
           label="Validez le mot de passe" visible="true" onAction="ValidationMdP" /> 
       </group> 
     </tab> 
 
        <tab id="Tab02" label="Onglet perso 02" getVisible="GestionTabStd"> 
       <group id="Groupe02" label="Essai"> 
                <button id="button02"  
                   imageMso="CalculateNow"  
                   size="large"  
                   label="Masquer les onglets standards"  
                   onAction="ModifAffichage" /> 
         </group> 
        </tab> 
 
</tabs> 
 
</ribbon> 
</customUI>




Code:
Option Explicit 
 
Private Sub Workbook_Open() 
    boolResult = False 
    'Définit les caractères utilisables pour la saisie du mot de passe 
    Tableau = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", _ 
        "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", _ 
        "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9") 
End Sub


Code:
Option Explicit 
Option Base 1 
 
Public boolResult As Boolean 
Public objRuban As IRibbonUI 
Public Cible As String 
Public Tableau As Variant 
 
'Callback for customUI.onLoad 
    'Est déclenché lors du chargement du ruban personnalisé. 
Sub RubanCharge(ribbon As IRibbonUI) 
    Set objRuban = ribbon 
End Sub 
 
'Callback for getVisible 
Sub GestionTabStd(control As IRibbonControl, ByRef returnedVal) 
    returnedVal = boolResult 
End Sub 
 
'Callback for Tab01 getVisible 
Sub GestionTabPerso(control As IRibbonControl, ByRef returnedVal) 
    returnedVal = Not boolResult 
    'objRuban.Invalidate 
End Sub 
 
'Callback for button 02 onAction 
Sub ModifAffichage(control As IRibbonControl) 
    boolResult = False 
    objRuban.Invalidate 
End Sub 
 
'Callback for Bt01 onAction 
'Validaton du mot de passe 
Sub ValidationMdP(control As IRibbonControl) 
    If Cible = "RCLENS" Then 
        MsgBox "Confirmation du mot de passe." 
 
        boolResult = True 
        objRuban.Invalidate 
    Else 
        MsgBox "Mot de passe erroné." 
    End If 
 
    Cible = "" 
    objRuban.InvalidateControl "LC01" 
End Sub 
 
'Callback for gallery01 getItemCount 
'Définit le nombre d'élément dans la galerie 
Sub NbCaracteres(control As IRibbonControl, ByRef returnedVal) 
    returnedVal = UBound(Tableau) + 1 
End Sub 
 
 
'Callback for gallery01 getItemLabel 
'Création des éléments dans la galerie 
Sub LabelCaractere(control As IRibbonControl, index As Integer, ByRef returnedVal) 
    returnedVal = Tableau(index) 
End Sub 
 
 
'Callback for gallery01 onAction 
'Met à jour le label après avoir sélectionné un caractère dans la galerie 
Sub SelectCaractere(control As IRibbonControl, id As String, index As Integer) 
    Cible = Cible & Tableau(index) 
    objRuban.InvalidateControl "LC01" 
End Sub 
 
 
'Callback for LC01 getLabel 
'Affiche des asteriques dans le label en lieu et place des caractères 
Sub ContenuLabel(control As IRibbonControl, ByRef returnedVal) 
    returnedVal = Application.WorksheetFunction.Rept("*", Len(Cible)) 
End Sub 
 
'Callback for Bt02 onAction 
'réinitialisation: Efface le contenu du label en cas d'erreur 
'de saisie. 
Sub EffaceContenuLabel(control As IRibbonControl) 
    Cible = "" 
    objRuban.InvalidateControl "LC01" 
End Sub


bonne journée
michel
 

jimmy59940

XLDnaute Nouveau
Re : Declancher un userform sur un bouton special et un prob avec le pleine ecran!

waouuuuuuuuuuuuuuuuuuu!!!!

Franchement un grand grand merci Michel!c'est exactement ce que je chercher!!
Vue mon niveau et le tiens!!il y a rien à dire tu est un Boss!!:):):):):):):):):):)!

Je vais continuer à chercher pour la mise en pleine écran car cela est vraiment important que mon classeur s'ouvre en pleine écran!

Je pensais que si j'utilise une macro qui va se déclencher à l'ouverture du classeur contournerai "Application.DisplayFullScreen = False",pense-tu que cela soit-possible?

en tout cas encore un grand merci!
 

Discussions similaires

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT