OVH Cloud OVH Cloud

Fichiers .CLS

5 réponses
Avatar
jamesTcarville
Bonjour,

Dans VBE, j'ai 84 feuilles .cls qui ne servent =E0 rien (je crois) =E0
c=F4t=E9 de ma dizaine de macros dont je me sers. Est-ce que quelqu'un
sait comment supprimer ces fichiers qui rendent illisible l'afficahge ?

Merci par avance.=20

A+

J=2E

5 réponses

Avatar
michdenis
Bonjour James,

Prend le temps de lire la procédure et désactive les lignes de code qui ne s'applique pas à ton cas.

Attention, tu dois adapter les noms des 2 (ou plus) modules standard que tu désires conserver ...ainsi que la condtion le cas
échéant.


'--------------------------------------
Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object
Dim VBComps As Object

Set VBComps = ActiveWorkbook.VBProject.VBComponents

For Each VBComp In VBComps

Select Case VBComp.Type

Case 1 'Supprime module standard sanf
'module1 et module2)
If VBComp.Name <> "Module1" And _
VBComp.Name <> "Module2" Then
VBComp.Remove VBComp
End If

Case 2 'Supprime module de classe
If VBComp.Name <> "Classe1" Then
VBComp.Remove VBComp
End If

Case 3 'Supprime Userform
VBComp.Remove VBComp

Case 100 'Supprime tout le code des feuilles modules
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
Set VBComp = Nothing: Set VBComps = Nothing
End Sub
'--------------------------------------


Salutations!



a écrit dans le message de news:
Bonjour,

Dans VBE, j'ai 84 feuilles .cls qui ne servent à rien (je crois) à
côté de ma dizaine de macros dont je me sers. Est-ce que quelqu'un
sait comment supprimer ces fichiers qui rendent illisible l'afficahge ?

Merci par avance.

A+

J.
Avatar
jamesTcarville
Salut Michdenis,

Merci pour ta réponse, mais le code ne semble pas fonctionner.
Peut-être devrais-je préciser que ces 84 feuilles se situent dans
VBAProject(perso.xls).
Aurais-tu une autre idée ?
A+

J.
Avatar
michdenis
Bonjour James,

Tu as remarqué cette ligne de code de la procédure :

Set VBComps = ActiveWorkbook.VBProject.VBComponents

ActiveWorkbook = le classeur dans lequel la procédure est copiée

Tu peux modifier cette ligne de code pour signifier n'importe qu'elle autre classeur OUVERT.

Set VBComps = Workbooks("Perso.xls").VBProject.VBComponents


Salutations!


a écrit dans le message de news:
Salut Michdenis,

Merci pour ta réponse, mais le code ne semble pas fonctionner.
Peut-être devrais-je préciser que ces 84 feuilles se situent dans
VBAProject(perso.xls).
Aurais-tu une autre idée ?
A+

J.
Avatar
jamesTcarville
Merci, mais ce n'est pas encore cela.
Les feuilles sont situées dans le dossier "Microsoft Excel Objets" de
VBE.
Est-ce que ça aide ?
Merci, merci, merci !

A+
J.
Avatar
michdenis
Bonjour James,

Peux-tu m'expliquer à quoi "Microsoft Excel Objets" fait référence ?

Habituellement, on y retrouve :
des Modules Standard,
des modules de classe,
des formulaires (userforms)
des Feuilles (Les objets)
et le ThisWorkbook

Si tu veux faire disparaître les "Feuille en tant qu'objet" dans la fenêtre VBE, tu dois pour ce faire écrire une procédure pour
supprimer les feuilles du classeur à partir du "Nom" des onglets des feuilles et non pas à partir de la propriété "Name" de l'objet
Feuille.

Une petite macro comme celle-là devrait faire l'affaire:

Remplace dans la procédure le nom du classeur et le nom des feuilles que tu désires conserver.
'------------------------------
Sub SupprimerFeuilles()
Dim Sh As Worksheet

Application.DisplayAlerts = False
With Workbooks("LeNomDuClasseur.xls")
For Each Sh In .Worksheets
If Sh.Name <> "NomOngletFeuille1Aconserver" And _
Sh.Name <> "NomOngletFeuille2Aconserver" Then
Sh.Delete
End If
Next
End With
Application.DisplayAlerts = True
Set Sh = Nothing
End Sub
'------------------------------


Salutations!


a écrit dans le message de news:
Merci, mais ce n'est pas encore cela.
Les feuilles sont situées dans le dossier "Microsoft Excel Objets" de
VBE.
Est-ce que ça aide ?
Merci, merci, merci !

A+
J.