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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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")

+ 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