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 :

Puis-je mettre ce code dans un module ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Puis-je mettre ce code dans un module ?
    Bonjour le forum,

    Mon sujet est dans le titre, est-ce que je peux mettre ce code tel quel dans un module et ainsi l'appeler dans mes 52 feuilles sans être obligé de recopier toutes ces lignes ?
    Merci par avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub WorkSheet_SelectionChange(ByVal Target As Range)
        If Not Range("A12").Address = ActiveCell.Address Then Exit Sub
        Load FrmTrav
        FrmTrav.Show
        FrmTrav.Height = 160
    End Sub

  2. #2
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Points : 178
    Points
    178
    Par défaut
    Je dirais que non parce que la méthode WorkSheet_SelectionChange est propre à une feuille MAIS tu peux créer une sub dans le module qui y ressemble, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub LoadForm()
        Load FrmTrav
        FrmTrav.Show
        FrmTrav.Height = 160
    End Sub
    Dans tes 52 feuilles, il resterait le même code partout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub WorkSheet_SelectionChange(ByVal Target As Range)
        If Not Range("A12").Address = ActiveCell.Address Then Exit Sub
        LoadForm
    End Sub
    A essayer...

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour AnneCa,

    A quelques lignes de différences, cela ne change pas grand chose.
    Merci tout de même pour ta suggestion.
    Je vais creuser la question.

  4. #4
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour

    Dit comme cela ça ne change pas grand chose !
    Sauf qu'une macro d'interruption ne peut etre lancée que dans le module dont elle dépend. dans les modules standards, tu ne peux avoir de macros événementielles.

    maintenant, si on connaissait le But final, on pourrait mieux te répondre

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour Wilfried,

    En fait, je répète ce code 52 fois. Lorsque j'y apporte une modif, je dois la répèter 52 fois. Donc si je n'avais qu'un seul code pour les 52 feuilles cela me serait très pratique.

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Re,
    tu peux simplifier le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub WorkSheet_SelectionChange(ByVal Target As Range)
        If Not Range("A12").Address = ActiveCell.Address Then Exit Sub
        LoadForm
    End Sub
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IPrivate Sub WorkSheet_SelectionChange(ByVal Target As Range)
        If ActiveCell.Address = "$A$12" then LoadForm
    End Sub

  7. #7
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    dans Thisworkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     
    End Sub
    tu peux tester le nom de la feuille avec sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if left(sh.nam,3) = "Sem" then 
    mon code
    end if

  8. #8
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Excuse moi Wilfried, mais je ne comprend pas ta réponse. C'est lundi et je rame un peu.

    Dans ThisWorkBook je mets le code que tu viens de m'apporter.
    Dans un module je mets mon code
    Est-ce bien cela ?

  9. #9
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je ne sais pas comment est fait ton classeur. si tu n'as que 52 feuilles (autement dit : toutes les feuille sont concernées) alors dans le module ThisWorkBook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        If Not Range("A12").Address = ActiveCell.Address Then Exit Sub
        Load FrmTrav
        FrmTrav.Show
        FrmTrav.Height = 160 
    End Sub

  10. #10
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Dans mon fichier j'ai plus de 52 feuilles (65 en tout) mais seulement 52 sont concernées par ce code.

  11. #11
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je m'en doutais un peu lol
    elles doivent avoir un nom structuré ca doit concerner des semaines : sem01 à sem 52

    je ne vais pas devoir passer en mode torture non ??? , donne moi les noms de feuille, du moins leur structure précise

    @ te lire

  12. #12
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par NEC14 Voir le message
    Dans mon fichier j'ai plus de 52 feuilles (65 en tout) mais seulement 52 sont concernées par ce code.
    Alors en debut de ta sub tu testes soit les feuilles à sélectionner, soit celles à ne pas sélectionner en fonction du test le plus court ou le plus rapide. Tout dépend du nom de tes feuilles à sélectionner ou à ne pas sélectionner.

    Si tu as un préfixe commun, c'est l'idéal.

  13. #13
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Désolé Wilfried, on va éviter la torture, surtout un lundi.
    Mes 52 feuilles sont intitulées "S1, S2, S3, etc...

  14. #14
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    et les autres? car si elle ne commence pas par un S le test est tout trouvé

  15. #15
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    essaye çà dans le module thisWorkBook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        If Not Range("A12").Address = ActiveCell.Address Then Exit Sub
        if left(sh.name,1) = "S" then
            if val(mid(sh.name,2,len(sh.name)-1))>0 then ' je me mefie, si tu as une feuille qui commen par S comme Salut)
                   Load FrmTrav
                   FrmTrav.Show
                   FrmTrav.Height = 160
            end if
        end if 
    End Sub
    ps: enleve les autre codes de ce type mis dans les feuilles

  16. #16
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Et les 13 autres, aussi s* ou pas ?!?
    si non tu peux coder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if left(sh.name, 1) = "S" then

  17. #17
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Il y a 3 autres feuilles commençant par un "S", Stock faible, Stock, Select et je ne peux pas changer leur nom, trop de travail de mise à jour par la suite.
    Je vais essayer vos propositions. Si entre-temps vous en avez d'autres n'hésitez pas.
    Merci pour votre participation

  18. #18
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Prends la solution de Wilfried.
    Comme d'hab il a LA bonne solution.
    ------
    Salut Wilfried.

  19. #19
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Que faire d'autre que de m'incliner devant autant de savoir.
    Merci beaucoup Wilfried ça fonctionne du tonnerre

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

Discussions similaires

  1. [VBA-E] Insérer du code dans un module
    Par cafeine dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/05/2007, 10h34
  2. Réponses: 2
    Dernier message: 07/02/2007, 18h31
  3. Comment puis-je mettre un include dans une variable
    Par pierrot10 dans le forum Langage
    Réponses: 17
    Dernier message: 31/08/2006, 08h45
  4. Impossible de mettre du code dans <HEAD>
    Par sunshine33 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/06/2006, 11h31
  5. Comparaison de code dans plusieurs modules
    Par jbaudin dans le forum Access
    Réponses: 2
    Dernier message: 03/10/2005, 11h47

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