bobtilt
Messages postés4Date d'inscriptionjeudi 13 décembre 2007StatutMembreDernière intervention25 mars 2008
-
21 mars 2008 à 17:01
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 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...
bobtilt
Messages postés4Date d'inscriptionjeudi 13 décembre 2007StatutMembreDernière intervention25 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
bobtilt
Messages postés4Date d'inscriptionjeudi 13 décembre 2007StatutMembreDernière intervention25 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