0/5 (19 avis)
Vue 18 020 fois - Téléchargée 570 fois
' Il faut rajouter la référence suivante : ' Microsoft Visual Basic for Applications 6.0 Extensibility ' (Program Files\Microsoft Visual Studio\VB98\VB6EXT) '*** 1 ERE POSSIBILITE : SUPPRESSION OBJET *** ' Càd les UserForm, Module, Module de Classe Sub EffaceModule() Workbooks.Open ("C:\Chemin\Nom Fichier.xls") 'une boite de dialogue se trouve dans le fichier excel(Zip) pour le ' choix, au lieu de mettre le nom du chemin en dur On Error Goto ErrHandle ' ici on supprime le composant nommé "Module1", dans le projet du classeur actif ActiveWorkbook.VBProject.VBComponents.Remove ActiveWorkbook.VBProject.VBComponents("Module1") MsgBox "Le Module a été suprimer" ActiveWorkbook.Close True Exit Sub ErrHandle: MsgBox "ERREUR dans la suppression du Module", vbOKOnly + vbCritical End Sub '*** 2 NDE POSSIBILITE : SUPPRESSION CODE DANS OBJET *** ' Càd dans les UserForm, Module, Module de Classe (pour ThisWorkbook_Open, voir 3eme possibilité) Sub EffaceCodeObjet() Workbooks.Open ("C:\Chemin\Nom Fichier.xls") 'une boite de dialogue se trouve dans le fichier excel(Zip) pour le ' choix, au lieu de mettre le nom du chemin en dur On Error Goto ErrHandle ' l'exemple au dessous c'est pour effacer le code dans Module1 (on peut faire pareil 'en remplacant 'Module1' par 'UserForm1', 'Class1'.(bref, mettre les noms de vos objets)) ' ici on supprime le code dans "Module1", dans le projet du classeur actif With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule .DeleteLines 1, .CountOfLines 'de la 1ere à la derniere ligne End With MsgBox "Le code du Module a été suprimer" ActiveWorkbook.Close True Exit Sub ErrHandle: MsgBox "ERREUR dans la suppression du code du Module", vbOKOnly + vbCritical End Sub '*** 3 EME POSSIBILITE : SUPPRESSION CODE DANS THISWORKBOOK_OPEN *** ' qui dit ThisWorkbook_Open dit execution du code lors de l'ouverture du fichier. ' je n'arrive pas à désactiver les macros sans désactiver cette procédure donc j'ai dût tricher : 'Cette procédure sert uniquement à ouvrir le fichier voulu, SANS le rendre VISIBLE. 'Il faut placer le code placer en commentaire dans cette procédure en tout premier 'dans ThisWorkbook_Open du CLASSEUR ORIGINAL. Cela servira à effacer le code QUE SI 'le classeur est invisible. Sub EffaceCodeThisWorkBook() Dim xlApp As New Excel.Application Dim xlBook As Workbook Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False Set xlBook = xlApp.Workbooks.Open("C:\Chemin\Nom Fichier.xls") 'une boite de dialogue se trouve dans le fichier ' excel(Zip) pour le choix, au lieu de mettre le nom du chemin en dur xlApp.Visible = True xlBook.Close True Set xlBook = Nothing Set xlApp = Nothing 'En utilisant cette procédure pour effacer dans ThisWorkbook_Open, 'il faut absolument placer ce code ci-dessous dans ThisWorkbook_Open 'du classeur original, en premier dans la pocédure 'If Application.Visible = False Then ' With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule ' .DeleteLines 1, .CountOfLines ' End With 'End If End Sub
3 sept. 2006 à 02:52
y'a pas grand chose a faire, le code de l'un et l'autre sont très similaires...
(1ère étape, Projet > Références > Microsoft Excel X.0)
2 sept. 2006 à 18:46
Je reviens sur ce code et essaye de l'adapter en VB6.
Y a t'il des sources vb6 traitant ce type d'objet (excel)?
Je cherche en vain.
Merci
27 août 2006 à 15:18
suite à une demande sur le forum :
Si vous souhaitez traiter un classeur protégé, il faut connaître le mot de passe, dans ce cas, faite ceci :
il faut aller dans cette procédure :
Sub Cherche_Composants()
' *** 2ème dernière procédure du module Module1
Ensuite, modifier l'instrucion Workbooks.Open (FichierATraiter) par
Workbooks.Open Filename:=FichierATraiter, Password:="mot de passe"
++
23 août 2006 à 19:32
C'est ce que j'allais mettre en lien, comme quoi le dernier message de ce Topic répondait certainement à sa demande :
http://www.vbfrance.com/infomsg_FAIRE-APPARAITRE-USERFORM_800977.aspx#7
++
23 août 2006 à 14:47
Cela fonctionne.
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.