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 :

Simplification code structure conditionnelle [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Par défaut Simplification code structure conditionnelle
    Bonjour,

    j'écris un code pour alimenter un tableau en fonction des mois:
    l’alimentation consiste à faire la somme de données dans deux tableaux sur la même feuille pour chaque mois.

    j'ai écris un code qui marche mais il est trop long et je doit le dupliquer sur d'autre valeur alors je cherche moyens de l'écrire de la meilleure façon afin de pouvoir dupliquer le modèle. y a t il moyen de combiner deux structure en boucle " for ...each .. next " et" if" sinon quel est le meilleur moyen ? merci de votre aide
    voici donc le 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
    16
    17
     
    sub synthese_mensuelle
    Sheets("SYNTHESE").Select
     
    If Range("C2").Value = "Janvier" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("C61") + Sheets("COUT").Range("C14")
    If Range("C2").Value = "Février" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("D61") + Sheets("COUT").Range("D14")
    If Range("C2").Value = "Mars" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("E61") + Sheets("COUT").Range("E14")
    If Range("C2").Value = "Avril" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("F61") + Sheets("COUT").Range("F14")
    If Range("C2").Value = "Mai" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("G61") + Sheets("COUT").Range("G14")
    If Range("C2").Value = "Juin" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("H61") + Sheets("COUT").Range("H14")
    If Range("C2").Value = "Juillet" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("I61") + Sheets("COUT").Range("I14")
    If Range("C2").Value = "Août" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("J61") + Sheets("COUT").Range("J14")
    If Range("C2").Value = "Septembre" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("K61") + Sheets("COUT").Range("K14")
    If Range("C2").Value = "Octobre" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("L61") + Sheets("COUT").Range("L14")
    If Range("C2").Value = "Novembre" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("M61") + Sheets("COUT").Range("M14")
    If Range("C2").Value = "Décembre" And Range("C3").Value = "2014" Then Range("C7").Formula = Sheets("COUT").Range("N61") + Sheets("COUT").Range("N14")
    end sub

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une suggestion, mais pas la plus propre (manque de temps)

    puisque tu actives la feuille avant le traitement, tu peux tester ça (j'ai pas testé) :

    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
     
    Sub synthese_mensuelle()
     
    Dim TabMois() As Variant
     
    TabMois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
     
    Sheets("SYNTHESE").Select
     
    If Range("C3").Value = "2014" Then
     
        For i = LBound(TabMois) To UBound(TabMois)
     
            If Range("C2") = TabMois(i) Then
     
                Range("C7").Formula = Sheets("COUT").Cells(61, i + 3) + Sheets("COUT").Cells(14, i + 3)
     
            End If
     
        Next i
     
    End If
     
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Par défaut
    Bonjour,

    j'ai testé ça marche ça donne le même résultat et ça l'avantage d’être plus simple et plus rapide à écrire c'est déjà une avancé pour moi merci !

    merci encore joe.levrai

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

Discussions similaires

  1. structure conditionnelle dans la clause where
    Par liberty74 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2007, 23h18
  2. [XSLT] Erreur partielle - Simplification Code ?
    Par Sam 069 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 13/04/2007, 11h45
  3. [XSLT]la structure conditionnelle.
    Par Extra-Nitro dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 22/08/2006, 13h46
  4. [Language][Compilateur]Objets et structures conditionnelles
    Par goran kajfes dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2005, 22h55
  5. [CODE] Compilation conditionnelle ?
    Par Cornell dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2003, 18h16

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