Lancer l'interface VBA à l'ouverture de excel

Résolu/Fermé
Pouloupe - Modifié par Pouloupe le 29/10/2010 à 09:35
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 29 oct. 2010 à 14:08
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.


A voir également:

4 réponses

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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 oct. 2010 à 10:15
Oui. Tu ajoutes, dans le code d'activation de ton UserForm :
Private Sub UserForm_Activate()
    ActiveWindow.Visible = False
End Sub
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 29/10/2010 à 10:26
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 oct. 2010 à 10:42
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 oct. 2010 à 11:28
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
29 oct. 2010 à 14:08
tu as tout à fait raison

Bon WE
cordialement
0
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 oct. 2010 à 09:59
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
je viens de trouver la solution :

https://codes-sources.commentcamarche.net/
0
Merci de vos réponses au fait.
Cordialement.
0