XL 2019 Désactiver "Option Explicit" par VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ThierryP

XLDnaute Occasionnel
Bonjour le forum,

Pour une appli de suivi, je crée des fichiers Excel à partir de fichiers xML, dans lesquels j'injecte du code par VBA. Jusqu'ici, tout va bien !

Sur mon poste, j'ai bien sûr activé la déclaration de variables obligatoires et du coup, petit souci : la mention "Option Explicit" vient s'ajouter après la dernière de code de chaque onglet ou module, et évidemment cela génère une erreur. J'ai tenté des recherches sur le Net, mais sans grand succès......

Si quelqu'un a une piste quelconque, soit pour insérer cette ligne avant d'injecter le code, soit pour désactiver temporairement cette option, je prend !!!

Merci d'avance,

ThierryP
 
Bonjour le forum,

Pour une appli de suivi, je crée des fichiers Excel à partir de fichiers xML, dans lesquels j'injecte du code par VBA. Jusqu'ici, tout va bien !

Sur mon poste, j'ai bien sûr activé la déclaration de variables obligatoires et du coup, petit souci : la mention "Option Explicit" vient s'ajouter après la dernière de code de chaque onglet ou module, et évidemment cela génère une erreur. J'ai tenté des recherches sur le Net, mais sans grand succès......

Si quelqu'un a une piste quelconque, soit pour insérer cette ligne avant d'injecter le code, soit pour désactiver temporairement cette option, je prend !!!

Merci d'avance,

ThierryP
Bonjour,
Pour désactiver Option Explicit dans VBA
Depuis l'explorateur, Menu OUTILS --> OPTIONS --> Editeur et décocher "Déclaration..."

Bien lire Editeur (je me suis tromper dans le surlignement)
1677514036305.png
 
Bonjour ThierryP, M12,

Mettez ces 2 macros où vous voulez :
VB:
Option Explicit

Sub Desactiver()
Dim VBC As Object, i&
For Each VBC In ThisWorkbook.VBProject.VBComponents
    With VBC.Codemodule
        For i = 1 To .CountOfLines
            If .Lines(i, 1) Like "Option Explicit*" Then
                .ReplaceLine i, Replace(.Lines(i, 1), "Option Explicit", "'Option Explicit")
                Exit For
            End If
        Next
    End With
Next
End Sub

Sub Reactiver()
Dim VBC As Object, i&
For Each VBC In ThisWorkbook.VBProject.VBComponents
    With VBC.Codemodule
        For i = 1 To .CountOfLines
            If .Lines(i, 1) Like "'Option Explicit*" Then
                .ReplaceLine i, Replace(.Lines(i, 1), "'Option Explicit", "Option Explicit")
                Exit For
            End If
        Next
    End With
Next
End Sub
Pour accéder au VBAProject Il faut avoir coché l'option Accès approuvé au modèle d'objet du projet VBA (onglet Fichier-Options-Centre de gestion de la confidentialité-Paramètres...-Paramètres des macros).

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour