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 :

Optimisation de mon code


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Optimisation de mon code
    Bonjour, Comment puis-je optimiser ce 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
    Private Sub OptionButton4_Click()
        Select Case ActiveSheet.Name
            Case "Janv"
            [Janv!N1].Value = 2
            Case "Fév"
            [Fév!N1].Value = 2
            Case "Mars"
            [Mars!N1].Value = 2
            Case "Avril"
            [Avril!N1].Value = 2
            Case "Mai"
            [Mai!N1].Value = 2
            Case "Juin"
            [Juin!N1].Value = 2
    End Sub
    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
    Private Sub OptionButton5_Click()
        Select Case ActiveSheet.Name
            Case "Janv"
            [Janv!N2].Value = 2
            Case "Fév"
            [Fév!N2].Value = 2
            Case "Mars"
            [Mars!N2].Value = 2
            Case "Avril"
            [Avril!N2].Value = 2
            Case "Mai"
            [Mai!N2].Value = 2
            Case "Juin"
            [Juin!N2].Value = 2
        End Select
    End Sub
    Merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut ordner et le forum
    Comment puis-je optimiser ce code?
    Et si tu expliquais ce que tu veux faire ?
    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bjr,

    Je souhaiterais ne créer qu'une fonction car la seule chose qui différencie ces deux fonctions est le nom des boutons d'option. Le contenu reste le même.

    Par exemple mais cela ne marche pas:

    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
    Private Sub OptionButton(4,5)_Click()
    Select Case ActiveSheet.Name
    Case "Janv"
    [Janv!N2].Value = 2
    Case "Fév"
    [Fév!N2].Value = 2
    Case "Mars"
    [Mars!N2].Value = 2
    Case "Avril"
    [Avril!N2].Value = 2
    Case "Mai"
    [Mai!N2].Value = 2
    Case "Juin"
    [Juin!N2].Value = 2
    End Select
    End Sub
    Je ferais ainsi un gain de place.
    Merci.

  4. #4
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Dans ce cas, fait une fonction
    Et avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub OptionButton4_Click()
    Call ProcGloabale
    End Sub
     
    Private Sub OptionButton5_Click()
    Call ProcGloabale
    End Sub
    Dans les deux boutons, tu apelles la même procédure.

    Sinon, tu peux laisser ta fonction Bouton4 comme elle est et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub OptionButton5_Click()
    Call OptionButton4_Click
    End Sub

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut ordner et le forum
    Je souhaiterais ne créer qu'une fonction car la seule chose qui différencie ces deux fonctions est le nom des boutons d'option. Le contenu reste le même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Select Case application.caller
         case "OptionButton4"
              ActiveSheet.[N1] = 2
         case "OptionButton5"
              ActiveSheet.[N2] = 2
    End Select
    End Sub
    Tes deux OptionButton lancent la macro test
    A+

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour ordner drakkar_agfa Gorfael le forum

    a moins de passer par un module de classe pour avoir le resultat que tu cherches!! le pb.. cree un module de classe pour 2 malheureux optio..
    par contre tes optio...sont numerotes 4 & 5 si tu en as d autres qui font la meme chose sur des cellules differentes le module de classe peut etre interessant

    je t ais aussi fais un petit ex j appelle les feuilles par leur numero & non leur nom
    dans un userform

    Option Explicit
    Dim s As Variant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub OptionButton4_Click()
    Macro1
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub OptionButton5_Click()
    Macro1
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
    For Each s In Array(1, 2, 3, 4, 5, 6)
    Sheets(s).Activate: If OptionButton4 = True Then [n1] = 2 Else [n2] = 2
     Next s
    End Sub

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses. Bonne journée à tous.

Discussions similaires

  1. [MySQL] Optimisation de mon code utilisant simple xml
    Par heretik25 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 05/08/2011, 21h13
  2. Réponses: 5
    Dernier message: 23/05/2007, 11h25
  3. Optimisation de mon code ActionScript
    Par amnesias dans le forum Flash
    Réponses: 9
    Dernier message: 01/04/2007, 23h04
  4. OPTIMISER mon code
    Par valoji dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/03/2006, 19h45
  5. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 11h29

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