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 :

REMOVE et IMPORT module.bas [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut REMOVE et IMPORT module.bas
    Bonjour le forum

    Je suis vraiment à bout de ressource.

    Dans Sub workbook_open je veux remettre à jour tous les modules et userform du classeur lors de son ouverture. Les modules et userform se trouvent sur le serveur.
    voici le code:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    Private Sub Workbook_Open()
    Sheets("Ouverture").Select
    On Error GoTo errorhandler:
    Application.EnableCancelKey = xlErrorHandler
     
    Dim Domaine As String
    Dim Keylogger As String
    Dim NbLigne As Integer
    Dim Name As String
    Dim Ok As Boolean
    Dim Serveur As String
     
     
                              'Mise a jour des modules et userforms
    If ThisWorkbook.Name <> "RPAv1-CLIENT.xlsm" Or ThisWorkbook.Name <> "RPAv1-CLIENTessai.xlsm" Then
       ThisWorkbook.VBProject.VBComponents.Remove .Item("AvantagesImpDed")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("Calcul_Complet")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("CalculParLigne")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("Impression")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("MaxPrestILD")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("Mise_A_jour_Nais")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("PrimeSimule")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("PrimeSimuleNormative")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("TableaudesTries")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("ClassesCompare")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("CompPrime")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("ExclusionDuPAE")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("MontantFixeParGarantie")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("MSPAClasse")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("MSPAInd")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("NouvelEmpl")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("PeriodePaye")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("PourcParGarantie")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("PourcSalaire")
       ThisWorkbook.VBProject.VBComponents.Remove .Item("Repartition")
     
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\AvantagesImpDed.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Calcul_Complet.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\CalculParLigne.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Impression.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\MaxPrestILD.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Mise_A_jour_Nais.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PrimeSimule.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PrimeSimuleNormative.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\TableaudesTries.bas"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\ClassesCompare.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\CompPrime.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\ExclusionDuPAE.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\MontantFixeParGarantie.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\.modules\MSPAClasse.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\MSPAInd.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\NouvelEmpl.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PeriodePaye.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PourcParGarantie.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\PourcSalaire.frm"
       ThisWorkbook.VBProject.VBComponents.Import "Z:\modules\Repartition.frm"
    End If
     
                             'Valider s'il y a des employés inscris au fichier
    Worksheets("Couverture_Primes").Select
    NbLigne = Cells(Rows.Count, 2).End(xlUp).Row - 13
    Sheets("Couverture_Primes").Cells(10, 3) = NbLigne
     
    Application.EnableEvents = False
     
    If DateValue(Worksheets("Etendu_Garantie").Cells(1, 17)) < Date And NbLigne > 0 Then
       Ok = True
       Call MiseAJourNais(Ok) 'Mise à jour des âges des employés
       MsgBox "Mise à jour des âges terminée", vbInformation
    End If
    Ok = False
    Application.EnableEvents = True
     
    GoTo 20:
     
    errorhandler: 'Une CancelKey a été capturée
    If Err.Number = 18 Then
       Sheets("Etendu_Garantie").Cells(6, 17) = ""
       ThisWorkbook.Saved = True
       ActiveWorkbook.Close
    Else
       Sheets("Etendu_Garantie").Cells(6, 17) = ""
       ThisWorkbook.Saved = True
       ActiveWorkbook.Close
    End If
    20:
    End Sub
    Le compilateur n'accepte pas les lignes de code .REMOVE avec seulemnnt .ITEM. Si j'écris la ligne différemment soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents.Item("AvantagesImpDed")
    le compilateur l'accepte.

    Mais j'ai quand une erreur 60061 Application-defined or object-defined error à l'ouverture du classeur. Et dansle project explorer Tous les modules originaux sont remplacer par les mêmes nom de module amsi avec une extension 1 (comme si c'était un doublon) et les userform n'y sont plus.

    J'ai activé le Microsoft Visual Basic for Application Extensibility 5.3.

    J'ai vraiement besoin de cette application, car j'utilise un classeur maitre pour modifier le programme et j'ai 27 classeurs qui doivent être modifiés à chaque fois que je fais un changement.

    Merci pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    c'est pas plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents.item("    ").remove
    ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Merci pour ton intérêt.

    Non sur une de mes recherches sur ce site en particulier à deux reprise, il est mention que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents.Remove .Item("AvantagesImpDed")
    Avec un espace entre Remove et Item

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.VBProject.VBComponents
        .Remove .Item("Module1")
    End With

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Merci mercatog

    Je crois que mon programme est écrit comme tu expliques, mais sans le With.
    Est-ce que je comprends bien ?

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'ai essayé ceci et ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With ThisWorkbook.VBProject.VBComponents
        .Remove .Item("Module1")
        .Remove .Item("Module2")
        .Import "C:\Users\user\Desktop\Module2.bas"
    End With
    Pour ta question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ThisWorkbook.VBProject.VBComponents
        .Remove .Item("Module1")
    End With
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents.Item("Module1")

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Bonjour

    Mercatog, j'ai essayé ton idée et j'ai la même erreur 600061. Après avoir passé pas à pas chaque REMOVE et chaque IMPORT à la fin, je n'ai plus de userform en place et tous les modules qui restes sont ceux avec le suffixe 1 tel qu'expliqué auparavant.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    If ThisWorkbook.Name <> "RPAv1-CLIENT.xlsm" Or ThisWorkbook.Name <> "RPAv1-CLIENTessai.xlsm" Then
       With ThisWorkbook.VBProject.VBComponents
          .Remove .Item("AvantagesImpDed")
          .Remove .Item("Calcul_Complet")
          .Remove .Item("CalculParLigne")
          .Remove .Item("Impression")
          .Remove .Item("MaxPrestILD")
          .Remove .Item("Mise_A_jour_Nais")
          .Remove .Item("PrimeSimule")
          .Remove .Item("PrimeSimuleNormative")
          .Remove .Item("TableaudesTries")
          .Remove .Item("ClassesCompare")
          .Remove .Item("CompPrime")
          .Remove .Item("ExclusionDuPAE")
          .Remove .Item("MontantFixeParGarantie")
          .Remove .Item("MSPAClasse")
          .Remove .Item("MSPAInd")
          .Remove .Item("NouvelEmpl")
          .Remove .Item("PeriodePaye")
          .Remove .Item("PourcParGarantie")
          .Remove .Item("PourcSalaire")
          .Remove .Item("Repartition")
          .Import "Z:\modules\AvantagesImpDed.bas"
          .Import "Z:\modules\Calcul_Complet.bas"
          .Import "Z:\modules\CalculParLigne.bas"
          .Impo0rt "Z:\modules\Impression.bas"
          .Import "Z:\modules\MaxPrestILD.bas"
          .Import "Z:\modules\Mise_A_jour_Nais.bas"
          .Import "Z:\modules\PrimeSimule.bas"
          .Import "Z:\modules\PrimeSimuleNormative.bas"
          .Import "Z:\modules\TableaudesTries.bas"
          .Import "Z:\modules\ClassesCompare.frm"
          .Import "Z:\modules\CompPrime.frm"
          .Import "Z:\modules\ExclusionDuPAE.frm"
          .Import "Z:\modules\MontantFixeParGarantie.frm"
          .Import "Z:\modules\MSPAClasse.frm"
          .Import "Z:\modules\MSPAInd.frm"
          .Import "Z:\modules\NouvelEmpl.frm"
          .Import "Z:\modules\PeriodePaye.frm"
          .Import "Z:\modules\PourcParGarantie.frm"
          .Import "Z:\modules\PourcSalaire.frm"
          .Import "Z:\modules\Repartition.frm"
       End With
    End If

  8. #8
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'ai refais le test avec un module et un useform! mais sur le même poste (pas de serveur) et j'ai un résultat sans erreur.
    j'ai ajouté un doevents au cas où le problème viendrait seulement de l'import à partir d'un serveur (mais je ne suis pas sur. sur un même poste ça fonctionne sans le doevents)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_Open()
    With ThisWorkbook.VBProject.VBComponents
        DoEvents
        On Error Resume Next  'gestion d'erreur au cas où un composent est absent
        .Remove .Item("Module1")
        .Remove .Item("UserForm1")
        On Error GoTo 0
        .Import "C:\Documents and Settings\Administrateur\Bureau\Module1.bas"
        .Import "C:\Documents and Settings\Administrateur\Bureau\UserForm1.frm"
    End With
    End Sub
    as tu essayé seulement la partie de suppression (sans l'import) et si tes modules et userform sont supprimés?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Rebonjour

    Désolé du délai, j'ai un décalage de 6 heures avec vous.

    J'ai essayé de avec le et cela ne change rien.

    J'ai essayé REMOVE et IMPORT avec 2 fichier à la fois et sur tous les fichier afin de m'assurer que les liens réseaux fonctionnent.

    On dirait que le nombre de fichier est un problème.

    Une remarque supplémentaire que je dois faire suivant mes essais.

    On dirait que le classeur ne met pas à jour la présence ou pas des modules et userforms lorsqu'il y a REMOVE et IMPORT.

    Lorsque je fais un pas à pas dans la section .REMOVE, les modules et userform ne disparaissent pas du Project explorer.

    si je continu le pas à pas avec les .IMPORT les modules s'importent mais en doublon avec un suffixe 1. Lorsque j'arrive au .IMPORT pour le premier userform c'est là que j'ai une erreur et que la routine s'arrête.

    A ce point si je regade le Project explorer tous es modules et userform sont disparu et il ne reste que les modules doublons avec l'extension 1.

    j'espère que cela peut aider.

    Autre commentaire

    Je viens de placer toute la suite de .REMOVE et IMPORT dans un module lequel est appelé par un à partir du Workbook_open.

    J'ai l'ai la même erreur.

    Cependant, si j'exécute les .REMOVE et .IMPORT directement dans le module, le tout fonctionne parfaitement.

    Donc le problème semble venir du module Thisworbook.

    Encore une fois j'espère que cea vous aide.

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'avais fais le test mais tous les fichiers (module et usf) sur le même poste de travail sur le workbook_open et ça fonctionne.

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut h
    bonjour


    tu a au depart un module du nom "toto"

    tu l'exporte

    tu le supprime

    et tu le reload malheuresement dans la memoire il y est toujour il faut qu'il ai un autre nom sinon ca marche pas

    il serai peut etre mieux de loader les module en format text les lire et les reecrire dynamiquement en vba


    enfin c'est une idée

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Merci Patrick pour ta réponse

    Ce que tu m'avance est logique, mais je ne crois pas que ce soit cela le problème, car mercatog qui a fait des essais n'a pas eu ce problème et si je fais l'essai sur un classeur neuf et vide je n'ai pas de probleme.

    J'ai fait des essais cette fin de semaine et j'en viens à la conclusion suivante: puisque certaines de mes routines s'appelent entre elles, lorsque j'élimine (avec .REMOVE) une routine qui se fait appelé par une autre, je coupe la référence et VBA crée un faute.

    Exemple: Dans mon programme Workbook_open appel Mise_a_jour_Nais, s'il y a un changement, Calcul_par_Ligne se fait appelé qui peut aussi appelé MSPAInd.

    Il y a un lien à 4 niveaux.

    Je n'ai pas d'autre réponse. S'il y en a d'autre qui ont une réponse, je suis tout ouïe, en fait façon de parler.

    Merci à tous pour votre aide

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour

    daccors je comprend mieux

    donc tu va devoir travailler comme j'ai l'abitude de travailler c'est a dire



    puisque certaines macros s'appelles entre elles tu va de voir les metre dans le meme module meme les macro qui sont dans les sheets et dans les sheets tu y met juste les appels

    j'espere avoir été clair
    un exemple :
    si tu a dans le sheet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("a1").Value = "bonjour"
    End Sub
    et bien tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    call dis_bonjour
    End Sub
    et dans le module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sub dis_bonjour()
    sheets (1).range ("a1")="bonjour"
    end sub
    et pareille pour tout les modules (thisworkbook et chaque feuilles)


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Merci Patrick

    J'en viens à la même conclusion et je crois que cela règlerait le problème.

    Je vais l'essayer cette semaine.

    Merci

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Par défaut comment il fonctionne VBComponents.Remove
    Il y a un astuce à savoir, c'est que .Remove n'enlève pas le Module tout de suite si celui-ci est en exécution, mais à la fin de l'exécution. Alors .Import, pour ne pas écrire dessus, ajoute un "1" à la fin du nom. Quand seulement l'exécution de la fonction est finie, le Module est enlevé.

    La solution est de renommer systématiquement tout objet enlevé (puisqu'on sait pas lesquels sont en exécution ou pas), avant .Remove. Le code pour l'import devient qqch du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With ThisWorkbook.VBProject.VBComponents
        Nom = .Item(i).Name
        .Item(i).Name = Nom + "_"
        .Remove .Item(i)
        .Import (NomFichier)
    End With
    On peut aussi utiliser un objet type VBComponent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim VBComp As VBComponent
    Set VBComp = ThisWorkbook.VBProject.VBComponents(Nom)
    ThisWorkbook.VBProject.VBComponents.Remove VBComp
    ...
    Pour les UserForm-s il y a un autre truc, c'est qu'il faut utiliser DoEvents. Mettre donc juste après .Remove
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If ExtensionFile = "frm" Then  ' pour les UserForm-s; ExtensionFile = variable programme
        Sleep 500
        DoEvents
    End If
    La fonction Sleep il faut la déclarer en début de programme comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Elle sert à s'assurer que le système a bien eu le temps de faire le .Remove. C'est la partie la plus délicate les UserForm-s, moi j'ai fait comme ça et ça a marché.

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

Discussions similaires

  1. Import module.bas script vbs
    Par typhoon751 dans le forum VBScript
    Réponses: 2
    Dernier message: 19/10/2010, 12h41
  2. [XL-2007] REMOVE et IMPORT module.bas
    Par Bugzy1963 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/09/2010, 15h50
  3. Procédure & Fontion module .bas
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2007, 13h38
  4. [wsad/erreur import war]Error importing module file
    Par valal dans le forum Websphere
    Réponses: 1
    Dernier message: 05/09/2006, 15h01
  5. module .bas et connection
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 12/07/2006, 14h09

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