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

VBA Discussion :

de If vers Case


Sujet :

VBA

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 175
    Points : 52
    Points
    52
    Par défaut de If vers Case
    Bonjour a tous,

    j'ai une macro qui contien bcp de If et je veux mettre a la place des If des case afin que mon code soit bien structuré

    ma macro et
    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
     
    ub CouleursIndex1()
        For i = 3 To 167
          For j = 6 To 14
          If Cells(i, j) = Empty Or Cells(i, j).Value <> ED Or Cells(i, j).Value <> AF Or Cells(i, j).Value <> DP Or Cells(i, j).Value <> CB Or Cells(i, j).Value <> RO Or Cells(i, j).Value <> JPF Then
           Cells(i, j).Interior.ColorIndex = 0
            End If
            If Cells(i, j).Value = "PG" Then
             Cells(i, j).Interior.ColorIndex = 3
            End If
            If Cells(i, j).Value = "JPF" Then
             Cells(i, j).Interior.ColorIndex = 4
            End If
            If Cells(i, j).Value = "RO" Then
             Cells(i, j).Interior.ColorIndex = 5
            End If
            If Cells(i, j).Value = "CB" Then
             Cells(i, j).Interior.ColorIndex = 6
            End If
            If Cells(i, j).Value = "DP" Then
             Cells(i, j).Interior.ColorIndex = 7
            End If
            If Cells(i, j).Value = "AF" Then
            Cells(i, j).Interior.ColorIndex = 8
            End If
            If Cells(i, j).Value = "ED" Then
             Cells(i, j).Interior.ColorIndex = 15
            End If
         Next
        Next
    End Sub

    pour remplcer les iF par des case j'ai fait
    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
     
    Sub CouleursIndex3()
    Dim i As Integer
    Dim j As Integer
     
        For i = 3 To 167
          For j = 6 To 14
          Select Case Cells(i, j)
           Case Cells(i, j) = Empty Or Cells(i, j).Value <> ED Or Cells(i, j).Value <> AF _
           Or Cells(i, j).Value <> DP Or Cells(i, j).Value <> CB Or Cells(i, j).Value <> RO _
           Or Cells(i, j).Value <> JPF
                Cells(i, j).Interior.ColorIndex = 0
           Case Cells(i, j).Value = "PG"
                Cells(i, j).Interior.ColorIndex = 3
           Case Cells(i, j).Value = "JPF"
                Cells(i, j).Interior.ColorIndex = 4
           Case Cells(i, j).Value = "RO"
                Cells(i, j).Interior.ColorIndex = 5
           Case Cells(i, j).Value = "CB"
                Cells(i, j).Interior.ColorIndex = 6
           Case Cells(i, j).Value = "DP"
                Cells(i, j).Interior.ColorIndex = 7
           Case Cells(i, j).Value = "AF"
                Cells(i, j).Interior.ColorIndex = 8
           Case Cells(i, j).Value = "ED"
                Cells(i, j).Interior.ColorIndex = 15
            End Select
         Next
        Next
    End Sub

    mais sa na pas bien marché , par ce que la macro devvrais colorée selon certains conditions . la macro des Case donne a toutes les cellules la même couleur ui est le Rouge.

    merci de m'expliquer commment sa marche la Condition Case

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    Bonjour
    quand tu fais un select case, tu n'a pas besoin de rappeler ce que tu testes ainsi dans ton cas:
    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
    Sub CouleursIndex3()
    Dim i As Integer
    Dim j As Integer
     
        For i = 3 To 167
          For j = 6 To 14
          Select Case Cells(i, j).value
           Case "PG"
                Cells(i, j).Interior.ColorIndex = 3
           Case "JPF"
                Cells(i, j).Interior.ColorIndex = 4
           Case "RO"
                Cells(i, j).Interior.ColorIndex = 5
           Case "CB"
                Cells(i, j).Interior.ColorIndex = 6
           Case "DP"
                Cells(i, j).Interior.ColorIndex = 7
           Case "AF"
                Cells(i, j).Interior.ColorIndex = 8
           Case "ED"
                Cells(i, j).Interior.ColorIndex = 15
           Case Else
                Cells(i, j).Interior.ColorIndex = 0
            End Select
         Next
        Next
    End Sub
    rémi

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 175
    Points : 52
    Points
    52
    Par défaut
    Merci gruget , c'est plus partique et plus jolie avec les CASES

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

Discussions similaires

  1. navigation-case vers ailleurs
    Par thierryler dans le forum JSF
    Réponses: 7
    Dernier message: 11/02/2009, 23h19
  2. Réponses: 2
    Dernier message: 18/03/2008, 16h07
  3. Syntaxe incorrecte vers le mot clé 'case'.
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/08/2007, 18h25
  4. script case, redirigé vers url extérieure
    Par nath70 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 14
    Dernier message: 11/10/2006, 15h58
  5. Transosition d'un IIF vers CASE
    Par Jos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/01/2006, 10h58

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