Lancer l'interface VBA à l'ouverture de excel

Résolu
Bonjour, j'ai crée un ficher Excel 2010 qui me permet de générer une facture à partir des donner entrer.
J'ai ensuite développer une interface en VBA sous forme de formulaire pour que l'on rentre les données de manière transparente. Mon problème est le suivant:
-je voudrez que lors de l'ouverture de mon fichier Excel l'interface se lance de automatiquement.
- Et je voudrai aussi que l'utilisateur n'ai pas acssée aux feuille de calcule

Je suis débutant en VBA, merci pour votre aide d'avance.

4 réponses

  1. J'ai trouver il faut lancer visual basic et dans l'explorateur de projet on trouve "thisworkbook"

    Après il n'y pas de code et j'ai eu du mal a trouver sa :

    Private Sub Workbook_open()
    Load UserForm1
    UserForm1.Show
    
    End Sub


    Maintenant je il reste la feuille Excel derrière, exist il un moyen pour la faire disparaitre?
    1. Modérateur
      Oui. Tu ajoutes, dans le code d'activation de ton UserForm :
      Private Sub UserForm_Activate()
          ActiveWindow.Visible = False
      End Sub
    2. Modérateur
      Autre possibilité :
      1- Régler la propriété ShowModal de ton UserForm à False
      2- dans le code de lancement de l'UserForm ajouter :

      Private Sub Workbook_open()    
      Application.WindowState = xlMinimized   
      Load UserForm1    
      UserForm1.Show    
      End Sub    
      

      EDIT :
      On peux se passer du 1- (mise à false de la propriété showmodal), en l'intégrant au code. Comme ceci :
      Private Sub Workbook_open()    
      Application.WindowState = xlMinimized   
      Load UserForm1    
      UserForm1.Show vbModeless ' vbModeless peux être remplacer par 0 ou False 
      End Sub    
      
    3. Contributeur
      Bonjour tous les 2

      Et je voudrai aussi que l'utilisateur n'ai pas acssée aux feuille de calcule

      2 méthodes pour empêcher l'accès à une feuille de calcul:
      1/
      dans VBA project:
      1clic gauche sur la feuille voulue
      F4
      cliquer sur xlsheetveryhidden de la propriété visible

      2/ dans Private Sub Workbook_open()
      pour le feuille5 pasr exmple
      sheets(5).visible=2
    4. Modérateur
      Salut michel_m,
      Comment va?
      Le problème, dans ce cas, c'est qu'il ne veux donner l'accès à aucune feuille. Or on ne peux pas masquer toutes les feuilles d'un même classeur. Je suis donc allé faire un tour ici :
      http://www.presence-pc.com/forum/ppc/Programmation/fermeture-userform-excel-sujet-5108-1.htm
      et me suis rendu compte que la meilleure solution pour excel était bien de minimiser le classeur. Mais par contre, ta solution, en complément de la mienne permet de :
      - masquer efficacement les feuilles de calcul du classeur, en laissant une feuille vierge
      - de n'avoir à l'écran que l'USF.

      Donc mixons les deux possibilités, en réglant la propriété "vivible" des feuilles (sauf une vierge) sur xlsheetveryhidden et dans Private Sub Workbook_open() :

      Private Sub Workbook_open()    
      'on suppose ici que l'on ne laisse "accessible" que la feuille "Feuil1" (sur 5)
      sheets(2).visible=2
      sheets(3).visible=2
      sheets(4).visible=2
      sheets(5).visible=2
      Application.WindowState = xlMinimized
      Load UserForm1    
      UserForm1.Show vbModeless 
      End Sub
    5. Contributeur
      tu as tout à fait raison

      Bon WE
      cordialement
  2. je viens de trouver sa : https://forums.commentcamarche.net/forum/affich-1903604-vba-executer-une-macro-a-l-ouverture-de-excel

    mais pas moyen de trouve "thisworkbook" dans excel 2010
    1. Modérateur
      Salut,
      Je ne pense pas que cela soit très différent dans 2010 que dans les versions précédentes...
      Ouvre ton classeur, tape ALT+F11, dans l'éditeur VBA, sur la gauche de l'écran, tu dois avoir la fenêtre "projet". Si cette fenêtre n'est pas affichée : CTRL+R. Dans cette fenêtre projet cherche : VBAProject(nom de ton classeur). Dedans figure le "ThisWorkBook".