Correction code

Adriano43

XLDnaute Occasionnel
Bonjour le forum,

Je me permets d'ouvrir une nouvelle discussion car je suis entrain de programmer quelques macros... Mais pour l'une d'entre elles, bien qu'il n'y ait pas d'erreur lors de l'éxécution, le code n'effectue pas ce qu'il devrait faire, pourriez vous m'aider SVP?

voici le petit bout de code en question:
Code:
Public Sub prcforme()

    Dim i As Integer
    
    With Sheets("BDD")
        For i = Range("A5000").End(xlUp).Row To 2
            If Cells(i, 1).Interior.ColorIndex = 3 Then
            Select Case (Cells(i, 11).Value)
                Case Is = "7, 5"
                    Cells(i, 17).Interior.ColorIndex = 4
                Case Is = "15"
                    Cells(i, 17).Interior.ColorIndex = 6
                Case Is = "22, 5"
                    Cells(i, 17).Interior.ColorIndex = 3
            End Select
            End If
        Next i
    End With
End Sub

N'hésitez pas à me demander une PJ si besoin est

Cordialement

Adriano43
 

titiborregan5

XLDnaute Accro
Re : Correction code

Bonjour Adriano, le forum,

comme ça, sans chercher bien loin, je dirais qu'il manque le step-1 à la fin de ton for i =

Comme tu lui fais démarrer du bas pour remonter, il faut lui dire de combien...

Après, il se peut que ce ne soit pas (que) ça ...

A+
Tibo

Edit: Bonjour Pierrot
 

Adriano43

XLDnaute Occasionnel
Re : Correction code

Mais avant de la résoudre!!!, Comment accélérer cette macro qui met quelques secondes à s'éxécuter?
Et quelle est la manip à mettre en place pour qu'elle s'éxécute automatiquement au changement de valeur de la colonne K?

Cordialement

Adriano43
 

Pierrot93

XLDnaute Barbatruc
Re : Correction code

Re,

pour accélérer le code :
Code:
With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
'ton code
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

pour l'automatisation au changement d'une cellule, regarde du coté des procédures événementielles, de nombreux exemples sur le forum... mais là nous nous éloignons du sujet initial...
 

Adriano43

XLDnaute Occasionnel
Re : Correction code

Re Pierrot93,

Le code est tout de même affreusement long à s'éxécuter alors que la matrice ne comporte que 200 lignes... et seulement 20 lignes en fond rouge, j'ai l'impression qu'elle s'applique à toutes les lignes comme si elle ne tiendrait pas compte de la condition fond rouge...:confused:
 

Adriano43

XLDnaute Occasionnel
Re : Correction code

Re,

Oui voici le code dans son intégralité, mais je trouve cela bien long... mais c'est peut être normal
Code:
With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
    With Sheets("BDD")
     For i = Range("A5000").End(xlUp).Row To 2 Step -1
       If Cells(i, 1).Interior.ColorIndex = 3 Then
         Select Case (Cells(i, 11).Value)
           Case Is = "7,5"
             Cells(i, 17).Interior.ColorIndex = 4
           Case Is = "15"
             Cells(i, 17).Interior.ColorIndex = 6
           Case Is = "22,5"
             Cells(i, 17).Interior.ColorIndex = 3
           Case Is = ("")
             Cells(i, 17).Interior.ColorIndex = 0
           Case Is = ("0")
             Cells(i, 17).Interior.ColorIndex = 0
          End Select
        End If
      Next i
    End With
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    End With
 

Discussions similaires

Réponses
5
Affichages
195

Statistiques des forums

Discussions
312 305
Messages
2 087 090
Membres
103 464
dernier inscrit
Inconnu2