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

Sondages et Débats Discussion :

Intérêt des modules de fonction en VBA


Sujet :

Sondages et Débats

  1. #1
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut Intérêt des modules de fonction en VBA
    Bonjour,

    Je développe une base depuis quelques années qui devient de plus en plus complexe.

    Pour la première fois je suis confronté à la mise en place de modules. Variable public (pas le choix) et module avec une fonction.

    Alors je me posais la question, hormis bien sur l'intérêt d'éclaircir le code d'un formulaire, cela donne t-il plus de rapidité à la base de données ?

    Effectivement ou il y a intérêt c'est si il y a répétition utilisant cette fonction. Mais encore une fois le fait de faire appel à un module ne ralenti t-elle pas le code ?

    Voilà c'est une question existentielle mais peut être que quelqu'un pourra t-il répondre.

    Marcopololo

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Cela ne doit pas avoir un impact majeur, autant que je sache VBA charge un module en mémoire à la première utilisation et après s'en ressert. Donc le surcout, si tu n'a pas de probllème de mémoire vive doit être minime.

    Les avantages en temps de maintenance et de dévoloppement doivent, à mon avis largement compenser le temps d'exécution même sur un Pentium 1ère génération :-).

    Quand tu dis que tu n'a pas le choix pour les variables globales, peux-tu développer un peu parce qu'à priori il y a toujours une solution alternative ou du moins plus sécuritaire (ex : module de classe).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    J'ouvre un formulaire ou je choisi un client, puis en cliquant sur un bouton export vers excel, j'ouvre un autre formulaire qui me permet de saisir le nom du fichier. Mais comme celui ci ne reste pas ou vert je me retrouve avec une variable que mon premier formulaire ne trouve plus.

    J'ai don créé un module avec des variables public. Au départ j'ai tenté cela avec un module de classe mais impossible de le faire fonctionner.

    Voilà mon module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Compare Database
    Option Explicit
     
     
    Public xlfile As String
    Public xlchemin As String
    Public xlannule As Boolean
    Code premier formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DoCmd.OpenForm ("fichier excel"), WindowMode:=acDialog
                                            If xlannule = True Then                 'Permet d'arrêter le code du formulaire si le bouton annuler du formulaire excel a été clické
                                                Exit Sub                            ' sortie de la routine objet
                                            Else
                                            End If
                                       'NameExcel = DLookup("[xlname]", "excel")  'Récupération du champ du formulaire fichier excel dans la table excel pour nommer le fichier exportation
                                        NameExcel = xlfile
     
                    ' Nom complet du fichier excel
     
                    strxlfile = "d:\bases extincteurs\Access 2007\" & NameExcel & ".xls"
    Code second formulaire
    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
    Private Sub Validation_Click()
     
                    xlannule = False
    'Si aucune nom de fichier, je sors message d'alerte
                    If Nz(Me.NomExcel, "") = "" Then
                    MsgBox "Nom de fichier obligatoire", vbOKOnly
                    'DoCmd.OpenForm ("message nom fichier obligatoire"), WindowMode:=acDialog
                    Exit Sub     ' Sortie de la routine
                    'Sinon, je continue
                    Else
                    End If
     
                    xlfile = Me.NomExcel
     
            DoCmd.Close acForm, Me.Name  'ferme le formulaire en cours
     
    End Sub

Discussions similaires

  1. [vba Excel ] Organisation Des Modules
    Par CIBOOX dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2007, 11h30
  2. Protection des modules VBA sous Excel
    Par Bercud dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/09/2006, 12h35
  3. [VBA-WORD] Supprésion des modules et userform
    Par ftcalvados dans le forum VBA Word
    Réponses: 9
    Dernier message: 22/09/2006, 17h25
  4. [VBA-E] Créer des lignes en fonction d'un champ
    Par antakini dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/04/2006, 20h23
  5. Réponses: 8
    Dernier message: 22/02/2006, 15h09

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