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 :

[vba excel] lancer 3 module a l'ouverture de mon userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut [vba excel] lancer 3 module a l'ouverture de mon userform
    bonjour a tous
    j'aimerai lancer 3 modules à l'ouverture de mon fichier ainsi qu'a chaque fois que je valide ( je click sur le commandbutton valider )

    voila j'ai trois module pour compter le nombre de fois que j'ai une expression dans une colonne differente ( exemple module1=elementC calcul le nombre de fois que j'ai le mot element dans la colonne c et colle la valeur obtenu dans une textbox sur mon userform

    j'utilise mon userform pour saisir mes nouvelle donnees puis lors que je valide ma textbox doit prendre la nouvelle valeur
    si j'arrive a lancer mon module elementc à l'ouverture de mon usreform et à chaque fois que j' appuie sur valider ça sera trop bien !!!

    je pensais placer dans workbook_open mais il prend pas
    erreur de compilation: variable ou procedure attendu et non un module

  2. #2
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Points : 712
    Points
    712
    Par défaut
    Bonjour à tous
    Bonjour CIBOOX

    Tu pourrais déposer un bout de fichier STP ce sera plus facile pour nous

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Laisse tomber le Workbook_open

    Dans ton module, tu crée une sub auto_open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub auto_open()
       Call traitement1
       Call traitement2
       Call traitement3 
    End Sub
    Cet module s'éexécutera dès le lancement de ton fichier
    Pour le bouton valider, normalment, si tu doubles clique sur le bouton, tu vas te retrouver dans l'évenement click et en y metttant tes modules, cela devrait marcher.....

  4. #4
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    salut helios77
    j'ai deja essaye mais sur le bouton valider il me met le meme message d'erreur variable ou procedure attendu et non module

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    tu as moyen d'envoyer ton fichier ??
    Je suis sur que ce n'est rien du tout à régler

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Montre nous le code des traitement

    Starec

  7. #7
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    bonjour starec
    voici mon code pour un module
    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
    Option Explicit
     
    Sub Comptemail()
    Dim tabonglet As Variant
    Dim onglet As String
    Dim n As Long
    Dim j As Byte, w As Byte, v As Byte
    Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer, g As Integer, h As Integer, r As Integer
     
     
    Dim rng As Range
     
    tabonglet = Array("paris7m", "paris13m", "paris16m")
    w = 3
    v = 15
    For j = 0 To UBound(tabonglet)
    Sheets("bd").Activate
     
    onglet = tabonglet(j)
        a = 0
        b = 0
        c = 0
        d = 0
        e = 0
        f = 0
        g = 0
        h = 0
        r = 0
     
        With Worksheets("bd")
            .Range("S2").Activate
            .Range("S2").End(xlDown).Select
            Set rng = ActiveCell
            For n = 1 To rng.Row
     
                If .Range("S" & n) = onglet And .Range("u" & n) = "personnelle" Then a = a + 1
                If .Range("S" & n) = onglet And .Range("u" & n) = "personnall+" Then b = b + 1
                If .Range("S" & n) = onglet And .Range("u" & n) = "fonctionnelle" Then c = c + 1
                If .Range("S" & n) = onglet And .Range("u" & n) = "fonctionnall+" Then d = d + 1
                If .Range("S" & n) = onglet And .Range("l" & n) <> "" Then r = r + 1
                If .Range("u" & n) = "personnelle" Then e = e + 1' ici je compte toute les boites email personnelle
                If .Range("u" & n) = "personnall+" Then f = f + 1' ic je compte toutes les boites email personnall+
                If .Range("u" & n) = "fonctionnelle" Then g = g + 1
                If .Range("u" & n) = "fonctionnall+" Then h = h + 1
     
     
     
            Next n
            Sheets("ttl").Range("I" & w) = a
            Sheets("ttl").Range("J" & w) = b
            Sheets("ttl").Range("K" & w) = c
            Sheets("ttl").Range("L" & w) = d
            Sheets("ttl").Range("I" & v) = r
            Sheets("ttl").Range("I6") = e
            Sheets("ttl").Range("j6") = f
            Sheets("ttl").Range("k6") = g
            Sheets("ttl").Range("l6") = h
     
     
            w = w + 1
            v = v + 1
        End With
    Next j
     
    Worksheets("bd").Range("S1").Activate
    End Sub
    voila j'aurrai moyen de l'alleger mais pour l'instant je verifie si il tourne
    voila j'ai un feuille "bd" ou se trouve ma base de donnee puis je compte le nombre de fois et je reporte les valeurs calculé dans la feuille "ttl"
    dans ma feuille "bd" la colonne s contient les villes paris7m paris13m et paris 16m
    dans ma feuille "bd" la colonne contient les quatres variable ( personnelle,personnall+, fonctionnelle,fonctionnnall+)
    puis je reporte les chiffres obtenu par le module dans un userform
    ( j'utilise un stabtrip avec des onglets par villes )
    le trucs que je voudrai mettre en place c'est qu'a chaque fois que j'ouvre l' userform le module se lance afin d'initialiser les chiffres dans mon tabstrip je pense qu'une peice jointe serai la bienvenu je vous la prepare pour ce soir

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Il ne faut pas que tu lances les modules, mais les routines une à une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    call Comptemail
    call ...
    Starec

  9. #9
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    bonjour
    voic mon fichier pour tester

    j'ai deux petites questions....
    la premiere deja posé mais pour plus de precision:
    j'aimerai lancer mes 3 modules a l'ouverture de mon userform et a chaque fois que je clique sur le bouton valider
    ( voir fichier )

    ma deuxieme question :
    j'aimerai compter le nombre de fois que j'ai le mot pret dans une colonne specifique avec un mot precis dans une autre colonne
    exemple je veux compter le nombre de ligne avec 1eretage dans la colonne a et le mot pret dans la colonne c

    ceci afin de savoir combien d'ordinateur sont en pret au 1er etage

    troisieme question
    comment simplifier ma codification ?
    Fichiers attachés Fichiers attachés

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Salut,


    J'ai modifié ton fichier, les modifications répondent aux questions 1 et 2. Pour la 3 il aurait trop de choses à faire A l'ouverture la procédure ComptePret rempli le tableau pret. Je ne l'ai pas fait pour les autres tableaux, à toi de le faire. Il faut appeler les procédures dans l'événement Initialize du Userform.

    Tu n'as pas suivi les conseils d'AlainTech . L'opérateur LIKE rempli parfaitement son rôle !

    Si tu ignores l'aide que certains te proposent, ce n'est pas correcte, surtout lorsque que celle-ci est pertinente.
    Fichiers attachés Fichiers attachés

  11. #11
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    merci choucks et merci alain tech aussi
    j'ai bien relus ton code sub comptepret
    je n'avais pas compris comment definir like en fait like est une fonction !!!!
    moi j'avais defini dim like as variant

    c'est resolu
    la troisieme question peu attendre ...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par CIBOOX
    je n'avais pas compris comment definir like en fait like est une fonction !!!!
    Ciboox tu vas te prendre une

    LIKE EST UN OPERATEUR comme +, =, >, etc. Tu prends le temps de lire l'aide ? c'est le meilleur moyen de progresser.

    a+

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Pour rendre ton code plus maintenable, je te conseillerais de faire ne sorte d'initialiser ton tableau tabonlet à un seul endroit. Ainsi, le jour ou çà change ou que tu rajoutes quelque chose, tu ne le fais qu'à un seul endroit

    Après pour le reste, je pense qu'il y a moyen de faire une procédure apramétrable car tout tes traitements sont quasimenent identiques
    ==> avec de bons parametres, tu devrais pouvoir faire un seul moduleau lieu d'en avoir 4 comme tu as actuellement

  14. #14
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    bonjour helios77
    je debute en vba alors je fais pleins de petits modules.....

    comment faire pour lancer une boucle sur tous mes traitements ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    je vais récupérer le fichier et je vais essayer de tout te centraliser

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Voilà ton fichier
    J'ai centralisé tous tes modules mais tu ne gagnes pas forcément en lisibilité car c'était pas trop paramétrable en fait

    ==> j'ai laissé tous les modules en place et j'en ai rajouté 2
    Demarrage qui initialise ton tableau au départ et qui remplace ce que tu avasi mis dans workbook_open
    MoteurBase où j'ai regroupé tout tes modules mais en y rajoutant un paramtre pour qu'il fasse ce que tu veux

    Si tu préfères utiliser le module qui centralise tout, utilise le avec les paramtres comme j'ai mis en commentaires
    Sinon, utilises lesmodules que tu as mis en place c'est pareil

    Sauf que dans moteur base, j'ai un peu fait le ménage des trucs qui ne servaient à rien

    J'ai aussi rajouter un truc pour qu'au lancement de tondormulaire les case de l'onglet immeuble s'initialise correctement

    Je pense qdonc que ton idée de faire 4 modules séparés est la meilleurs et la plus clair
    Fichiers attachés Fichiers attachés

  17. #17
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    helios77
    ta methode de select case est tres interessante

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Merci pour ton ironie

    c'est pour çà que j'ai précisé que çà n'apportait pas grand chose de tout centralisé

  19. #19
    Membre du Club Avatar de CIBOOX
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 194
    Points : 67
    Points
    67
    Par défaut
    non je suis serieux !!!!
    ta methode va surement m'etre utile pour un autre fichier que je dois mettre en place
    encore une fois merci pour ton aide et tes conseils !!!

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Excuse moi
    J'ai vraiment cruq eu tu tefoutais de ma poire
    Bon courage pour ts développement et hereux d'avoir pu t'aider involontairement ;-)

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

Discussions similaires

  1. [VBA PP]Executer un module des l'ouverture d'un pps
    Par Pikasacha dans le forum Général VBA
    Réponses: 7
    Dernier message: 05/06/2007, 17h38
  2. [vba Excel ] Organisation Des Modules
    Par CIBOOX dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2007, 11h30
  3. [VBA-Excel] renommer un module
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/12/2006, 12h03
  4. [VBA][Excel] Lancer procédure
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 28/07/2006, 10h13
  5. [VBA-Excel] Lancer une option de la barre des menu
    Par vovor dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2006, 15h41

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