IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Savoir si un module existe ou pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut Savoir si un module existe ou pas
    Bonjour à tous,

    Existe t'il une fonction en VBA, permettant de savoir si un module est présent ou absent dans un classeur

    par exemple, dans une condition if je cherche a savoir si le Module1 est présent.

    Merci

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Test ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub cherche_module()
    Dim VBC As Object
    With ActiveWorkbook.VBProject
    For Each VBC In .VBComponents
    If VBC.Name = "Module1" Then
    MsgBox VBC.Name & " est présent"
    Else
    MsgBox VBC.Name & " n'existe pas"
    End If
    Next VBC
    End With
    End Sub

  3. #3
    Membre éclairé Avatar de Djohn
    Profil pro
    Inscrit en
    Février 2007
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 309
    Par défaut
    j'ai un message d'erreur au niveau de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveWorkbook.VBProject
    Erreur d'exécution '1004' :
    Erreur définie par l'application ou par l'objet

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    ah ? Etrange, j'ai testé avant de te le proposer et ça fonctionne nickel chez moi (Excel 2000). Il me semble pourtant que ce code a déjà tourné sur des versions d'excel plus récentes.

  5. #5
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Bonjour
    en complément de la solution de fring qui marche trés bien,je vous suggère ce code qui liste tout les modules standard présents dans le classeur active.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ModulesExiste()
    Dim VBComp As Object
        Set VBmodule = ThisWorkbook.VBProject.VBComponents
            For Each VBComp In VBmodule
                If VBComp.Type <> 100 Then 
                   MsgBox VBComp.Name & " : >> Existe dans ce classeur"
             End If
        Next
    End Sub
    Bonne journée

    Abed_H

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Par défaut
    Citation Envoyé par Djohn Voir le message
    j'ai un message d'erreur au niveau de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveWorkbook.VBProject
    Erreur d'exécution '1004' :
    Erreur définie par l'application ou par l'objet
    Bonjour,
    J'ai eu le même pb aujourdh'ui, il faut
    aller dans Excel, Outils, Macro, Securité,
    L'onglet source fiable et cocher la case : faire confiance à VB
    Si t'as encore des pb et qu'il te faut une référence à VBIDE, c'est dans VBE
    Outils, références
    coche la case "Microsoft Visual Basic for Applications Extensibility 5.3"

    Voilà, @plus

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    avec un peu de retard ... ;o)
    il n'est pas nécessaire de boucler sur les modules pour vérifier s'il existe :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Test()
        'Nécéssite d'activer la référence
        '"Visual basic For Application Extensibility 5.3"
        '
        MsgBox VerifierExistenceModule(Workbooks("NomClasseur.xls"), "Module2")
    End Sub
     
     
    Function VerifierExistenceModule(Wb As Workbook, Mdl As String) As Boolean
        Dim VBComp As VBComponent
     
        On Error Resume Next
        Set VBComp = Wb.VBProject.VBComponents(Mdl)
     
        If VBComp Is Nothing Then
            VerifierExistenceModule = False
            Else
            VerifierExistenceModule = True
        End If
    End Function

    http://silkyroad.developpez.com/VBA/...cEditor/#LIV-B



    bonne journée
    michel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]Comment savoir si un répertoire existe
    Par pendragon dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 30/09/2016, 06h42
  2. un module sur joomla: pays et carte géo ca existe ou pas
    Par Nadjia.ccce dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/05/2007, 19h19
  3. [Module de chargement] Ça existe ou pas ?
    Par brisso dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2006, 12h47
  4. Savoir si un controle existe (n'est pas null)
    Par Orangina dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/04/2006, 14h13
  5. [C#] Comment savoir si on est logué ou pas?
    Par pc152 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/05/2004, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo