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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 64
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    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 expérimenté
    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
    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 : 64
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    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 Expert 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 : 63
    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
    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 : 64
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    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 Expert 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 : 63
    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
    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

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    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

+ 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