Supprimer les commentaires dans un projet VBA

Bonjour à tous,

Voici un petit utilitaire pour supprimer les commentaires dans un projet VBA.

Question : Pourquoi supprimer les commentaires dans le code ?

Plusieurs raisons peuvent être invoquées.

- Pour les grosses application Excel, où le développeur a été prolixe en commentaires, la taille du fichier peut devenir très importante. La suppression des commentaires permet de réduire notablement la taille du classeur. (Personnellement, pour une de mes applis, j'ai réduit la taille de 200 Ko).

- Si vous diffusez l'appli, le code expurgé devient pratiquement illisible, et donc difficilement modifiable. Le projet peut également être protégé par un mot de passe, mais pour certaines fonctions, il devra être déprotégé (exemple : les instructions qui interviennent sur le code lui-même ou ses objets).

L'appli proposée à été utilisée des centaines de fois et fonctionne parfaitement.

Procédure :

- Choix du classeur à traiter (ne propose que les fichiers xlsm).

- Sauvegarde du classeur source sous un nouveau nom (pour ne pas altérer le classeur original). Nouveau nom = idem classeur source avec mention "(SC)" en fin de nom. Si le classeur est déjà présent, une confirmation sera demandée pour son remplacement.

- Sauvegarde du code source dans un fichier texte (Optionnel, case à cocher dans la fenêtre principale). Cette options peut s'avérer pratique si l'on veut conserver le code source avant d'effectuer des modifications (traitement des applis par n° de version, etc.). Dans ce cas le nom du fichier texte sera identique au nom du classeur source avec mention "(Code source)" en fin de nom. L'extension sera ".Bas". S'il est présent sur disque, le contenu est écrasé.

- Suppression des commentaires, des lignes vides et de tous les espaces situés avant et après les instructions. Sauf pour les modules avec mention ' Ignorer ce module (commentaire placé en fin de module).

- Sauvegarde du classeur expurgé.

Concernant le suppression des commentaires :

la cote ( ' ) est le caractère déterminant du commentaires. Pour ne pas prendre de risque, (qui rendrait le programme inutilisable) les commentaires avec guillemet(s) ne seront pas supprimés.

En effet, il est très difficile (informatiquement parlant) de déterminer si un commentaire, contenant un ou plusieurs guillemets, est réellement un commentaire.

Exemple : Avec l'instruction suivante

Ma_Phrase$="Mon oncle vient d'Amérique" ' Affecte "Vient d'Amérique" à la variable Ma_Phrase

Ou encore

Ma_Phrase$="""Mon oncle vient d'Amérique""" ' Affecte "Vient d'Amérique" à la variable Ma_Phrase en conservant les "

Donc ici les commentaires seront conservés.

Si vous souhaitez supprimer tous les commentaires, remplacez les guillemets par d'autres caractères (cotes, crochets, etc.)

Exemple :

Ma_Phrase$="""Mon oncle vient d'Amérique""" ' Affecte ''Vient d'Amérique'' à la variable Ma_Phrase en conservant les '' (double cote)

Une fois le code expurgé, vous pouvez vérifier s'il reste des commentaires en recherchant dans le projet, le caractère cote. (ou cote + espace si vous avez pris l'habitude de mettre un espace après la cote).

Classeur contenant l'appli :

Ps : Le code est verrouillé, ce qui m'évitera de recevoir des commentaires (plus ou moins agréables) sur ma façon de programmer

Bonne journée à tous

Bonsoir,

après un essai il y a une erreur :

image

A priori au vu du message d'information le (SC.) ne se met pas au bon endroit pour la création du fichier de sauvegarde...
Et une application avec le code non accessible... Ici sur la zone de téléchargement ce n'est pas apprécié, après sur le forum je ne sais ce qu'il en est...

Vous créez le chemin du fichier comment ? j'ai l'impression que le SC est répété pour chaque point du chemin d'accès, non ?

@ bientôt

LouReeD

Bonjour,

En effet, le code SC est répété avant chaque point et c'est une anomalie.

Je n'ai pas envisagé cette possibilité car je n'utilise jamais le point dans les noms de chemin et de fichiers (tous comme mes amis de l'assoc). L'utilisation du point, bien que non interdite, est plutôt déconseillée (cf. règles de nommage des dossiers & fichiers).

J'ai modifié mon code en changeant la méthode d'insertion de la mention (SC). Dans ce nouveau code on recherche l'extension ".xlsm" (en partant de la fin du nom de fichier (path inclus), et on remplace par " (SC).xlsm".

Voici le nouveau classeur.

Vous me direz ce qu'il en est.

Bonne journée.

Bonsoir,

en général (tout le temps) je ne mets pas de point mais ici ce n'est pas moi qui l'ait mis c'est mon dossier "User" de Windows qui est comme cela...
Merci pour la modification, je vais essayer de trouver le temps pour essayer.

@ bientôt

LouReeD

Rechercher des sujets similaires à "supprimer commentaires projet vba"