Comment à partir de visual basic, prendre possession de excel, se créer un formulaire, y ajouter un bouton et capter l'événe

Soyez le premier à donner votre avis sur cette source.

Vue 25 164 fois - Téléchargée 2 756 fois


Description

Cette application prend possession de Excel en VB et ouvre un classeur en y ajoutant un formulaire vba. Dans ce formulaire on y ajoutera un bouton. Sur ce bouton on gérera l'événement clik. Lors de la fermeture du classeur, les macros sont supprimé le classeur est sauvegardé. Le tout est pour démontrer que l'on peut gérer les macros dynamiquement à partir de VB pour aider l'éditeur, ajouter des outils (macro) à ses fichiers excel, ensuite les supprimer et ouvrir ce même fichier par la suite sans qu'il ne contiennent les macros d'édition.

Conclusion :


Cette application sera mise à jour si vous avez des questions... J'ai terminé mon aplication donc j'ai exploré toutes les zones problèmatique de cette approche. Je peux donc répondre à vos questions si c'est nécessaire.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

BasicInstinct
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10 -
wow cool.
Merci, Merci, Merci
Flyd
Messages postés
6
Date d'inscription
samedi 14 octobre 2000
Statut
Membre
Dernière intervention
11 juillet 2002
-
Pour ceux qui aurais le problème suivant:
"L'accès par programme au projet visual basic n'est pas fiable"
voilà la solution:

Une méthode ou une propriété ne peut pas être utilisée en raison des paramètres de sécurité. Par exemple, les propriétés et les méthodes de l'objet VBE servant à manipuler le code VBA (Microsoft Visual Basic pour Applications) stocké dans un document Microsoft Office sont, par défaut, inaccessibles.
Pour activer l'accès autorisé à Visual Basic Projects :

Dans le menu Outils, pointez sur Macro, puis cliquez sur Sécurité.
Sous l'onglet Sources fiables , activez la case à cocher Faire confiance au projet Visual Basic.

Et votre problème sera réglé ! ;0)

@+
Flyd
Messages postés
6
Date d'inscription
samedi 14 octobre 2000
Statut
Membre
Dernière intervention
11 juillet 2002
-
On m'a demandé pourquoi faire ce genre de choses avec VB quand on peut mettre le tout dans excel directement plus facilement... Ma réponse est la suivante: Le but de cet exercice est de créer un formulaire excel final qui ne contiendra pas de macro... Pourquoi ? Parce que les usagés ont peur d'activer les macros... Il est possible d'y avoir des virus etc... Un application VB qui ouvre ce document pourra y ajouter dynamiquement des macros pour aider l'éditeur à travailler, ensuite on supprimera les macros avant de sauvegarder le fichier sur le disque... Donc si un client ouvre ce document directement (sans l'aide de VB), aucune macro n'est présente donc aucun message de désactivation de macro etc... faites en l'essai en ajoutant ces lignes en dessous du 'on error resume next' du form1 du projet:

' Suppression du formulaire user ajouté
mobjAppz.ActiveWorkbook.VBProject.VBComponents.Remove mobjAppz.VBE.ActiveVBProject.VBComponents("frmUserList")

' Suppression de la macro ajouté dans la sheet 1
mobjAppz.ActiveWorkbook.VBProject.VBComponents(mobjAppz.ActiveWorkbook.Sheets(1).Name).CodeModule.DeleteLines 1, mobjAppz.ActiveWorkbook.VBProject.VBComponents(mobjAppz.ActiveWorkbook.Sheets(1).Name).CodeModule.CountOfLines

' Sauvegarde du formulaire sur le disque sans macro...
mobjAppz.ActiveWorkbook.SaveAs App.Path & "SansMacro.xls"

En passant, ne fermez pas excel directement sinon ça fonctionnera pas... laissez l'application VB gérer excel même pour la fermeture...

@+ Flyd
jamesuc
Messages postés
20
Date d'inscription
vendredi 8 février 2002
Statut
Membre
Dernière intervention
6 février 2004
-
VIRUS !!!
Quand je le décompresse j'ai une alerte comme quoi le fichier form1.frm est infesté par le virus VBA Generic.src !!!
aurelskull
Messages postés
18
Date d'inscription
dimanche 13 avril 2003
Statut
Membre
Dernière intervention
27 mai 2005
-
merci pour l'info "L'accès par programme au projet visual basic n'est pas fiable"
à mon avis on ne doit pas pouvoir activer cette option par programme ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.