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 :

alléger un code répétitif


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Points : 75
    Points
    75
    Par défaut alléger un code répétitif
    "Bonjour"
    Voici mon code. il me permet de sélectionner une plage de valeur selon deux critères. Le soucis dans ce code c'est juste au moment de déclarer les cellules à sélectionner je répete trop de code,. Y a t'il un moyen d'éviter ça????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Plage1 Is Nothing Then Set Plage1 = Union(Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10)) Else Set Plage1 = Union(Plage1, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10))
    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
    'celle ci permet de créer tous les tableaux DUREE CURATIF SEMAINE
    Sub SelectionnerLignes1(Feuille As Worksheet, ValA As Variant, ValB As Variant)
      Dim Cellule As Range
      Dim i As Long
      Dim z As Integer
      Dim Legraph As ChartObject
     
     
     
      For Each Cellule In Feuille.Range("B3:b" & Feuille.Range("b" & Feuille.Rows.Count).End(xlUp).Row)
            If Not IsEmpty(ValB) Then
                If Cellule = ValA And Cellule(1, 2) = ValB Then
                    If Plage Is Nothing Then Set Plage = Union(Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10)) Else Set Plage = Union(Plage, Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10))
                End If
            Else
                If Cellule = ValA And Not (Cellule(1, 2) = ValB) Then
                    If Plage1 Is Nothing Then Set Plage1 = Union(Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10)) Else Set Plage1 = Union(Plage1, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10))
                End If
            End If
        Next Cellule
        Feuille.Select
     
     
        For Each Legraph In ActiveSheet.ChartObjects
        Legraph.Delete
        Next
         If Not Plage1 Is Nothing Then GraphiqueBaton1
     
        If Not Plage Is Nothing Then UserForm2.Show
     
        End Sub
    "Merci"

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Union(Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10))
    équivaut à
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Plage1 = Union(Plage1, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5), Cellule(1, 6), Cellule(1, 7), Cellule(1, 8), Cellule(1, 9), Cellule(1, 10))
    équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Union(Plage1, Range("B1","J1"))
    Bonne chance pour la suite !

Discussions similaires

  1. Alléger le code flash
    Par unreal2me dans le forum Flash
    Réponses: 3
    Dernier message: 27/03/2008, 22h21
  2. Gestion thread pour alléger le code
    Par modaffar dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/02/2008, 16h45
  3. [SQL + VB.NET] Alléger mon code pour un accès plus rapide
    Par Miles Raymond dans le forum VB.NET
    Réponses: 8
    Dernier message: 15/10/2007, 23h09
  4. Réponses: 1
    Dernier message: 26/02/2007, 21h47
  5. code répétitif
    Par aroune dans le forum Langage
    Réponses: 9
    Dernier message: 06/11/2005, 18h52

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