Excel 2003

Résolu
bobtilt
Messages postés
4
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
25 mars 2008
- 21 mars 2008 à 17:01
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
- 25 mars 2008 à 09:51
bonjour à tous,
je rencontre un problème simple semble-t-il mais mes neurones fatigués ne suivent plus.
j'ai écrit du code pour créer une feuille de calcul sur la quelle je colle un bouton, et à celui-ci j'affecte une procédure évènementielle click qui me permet de supprimer la feuille que je viens de créer.
mon souci c'est que VBE ne disparait pas de mon écran lorsque la macro a créé ma feuille et donc je suis obligé de le fermer  manuellement pour pouvoir accéder à la feuille que je viens de créer.
la propriété screenupdating ne peut m'aider; qui pourra m'aiguiller sachant que la ligne ActiveWorkbook.VBProject.Visible = False me génère une erreur de propriété.
pour info voici le code.
Sub Macrotest()
Dim NouvelleFeuille As Worksheet
Dim Monobjet As OLEObject
Dim laMacro As String
Dim x As Integer
Application.ScreenUpdating = True
Application.EnableEvents = True
'Ajoute une nouvelle feuille
Set NouvelleFeuille = Sheets.Add
'ajoute un bouton dans la nouvelle feuille
Set Monobjet = NouvelleFeuille.OLEObjects.Add("Forms.CommandButton.1")
With Monobjet
    .Name = "Levoyant" 'renomme le bouton
    .Left = 50 'position horizontale par rapport au bord gauche de la feuille
    .Top = 50 'position verticale par rapport au bord haut de la feuille
    .Width = 150 'largeur
    .Height = 30 'hauteur
    .Object.Caption = "Revenir au Récapitulatif"
End With
'Ajoute la procédure dans la feuille
Mavar = ActiveSheet.Name
Set VBCodeMod =ActiveWorkbook.VBProject.VBComponents(ActiveWorkbook.Worksheets(Mavar).CodeName).CodeModule
StartLine = VBCodeMod.CreateEventProc("Click", "Levoyant") + 1
VBCodeMod.InsertLines StartLine, "ActiveSheet.Delete"
'ActiveWorkbook.VBProject.Visible = False
'Application.ScreenUpdating = True
'application.enableEvents=true
merci d'avance pour vos suggestions
End Sub

bobtilt

7 réponses

us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
23 mars 2008 à 11:01
Oui, je sais, j'ai testé ton code. La commande est à mettre juste avant "End Sub"... Cela refermera VBE automatiquement.

De mémoire, il y a une autre façon de faire pour passer des lignes de code... IL suffit d'envoyer directement toutes les lignes à taper (du début à la fin des Sub, compris les "Sub"); donc absolument tout comme si on tape tout ou qu'on fait "coller". Contrairement, à ce que tu proposes, qui consiste à utiliser le repérage des "Sub" qui sont crées par VBE lors de la sélection... Je ne suis peut-être très clair -:);
Peut-être que par ce biais, l'ouverture de VBE ne sera pas déclenchée. Notons que l'ouverture est déclenchée par les 2 dernières commandes, qui impose à VBE sont activation pour interprêter les commandes. En effet, par exemple, "CreateEventProc" force VBE à créer automatiquement la procédure, qui ne peut se faire que si VBE est actif...

Amicalement,
Us.
3
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
25 mars 2008 à 09:51
Bonjour,

Si la réponse de US30 (salut) a résolu ton problème, pense à valider sa réponse en cliquant sur le bouton "Accepter".

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
21 mars 2008 à 21:33
Je n'ai pas de suggestion, mais une question...
Pourquoi créer une nouvelle feuille avec un bouton qui détruit celle-ci ?!?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
bobtilt
Messages postés
4
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
25 mars 2008

22 mars 2008 à 07:57
c'est une bonne question,
il s'agit de la copie d'une feuille contenant des données qui fait l'objet d'un traitement de mise en forme et qui est ensuite imprimée puis archivée.
Mais pour la compréhension du phénomène, ainsi que pour les tests, il m'était plus facile de la détruire.
ceci dit le problème reste, la fenêtre VBE s'ouvre quand même.

bobtilt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
22 mars 2008 à 15:01
Bonjour,

Pour fermer VBE :

Application.VBE.MainWindow.Visible = False

Mais le mieux, serait de ne pas l'ouvrir...

Amicalement,
Us.
0
bobtilt
Messages postés
4
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
25 mars 2008

23 mars 2008 à 07:49
merci beaucoup us_30, mais VBE s'ouvre de lui-même lorsque je teste la macro depuis la feuille de calcul sans que j'appuie sur "alt F11".
cette réponse me convient tout de même je la testerait mardi.
bonne journée

bobtilt
0
bobtilt
Messages postés
4
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
25 mars 2008

25 mars 2008 à 09:13
merci beaucoup us_30; problème résolu.

bobtilt
0