Lancer l'interface VBA à l'ouverture de excel

Résolu
Pouloupe -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Pouloupe
     
    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?
    4
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Oui. Tu ajoutes, dans le code d'activation de ton UserForm :
      Private Sub UserForm_Activate()
          ActiveWindow.Visible = False
      End Sub
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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    
      
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
      0
    5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      tu as tout à fait raison

      Bon WE
      cordialement
      0
  2. Pouloupe
     
    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
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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".
      0
  3. Pouloupe
     
    Merci de vos réponses au fait.
    Cordialement.
    0