Optimisation d'un code VBA

gibtoul

XLDnaute Junior
Bonjour à tous

j'ai le code suivant qui me permet lors de sa premiere activation de :
Copier les valeurs en VERT de X vers W
sauf les valeurs deja presente dans W qui passe en rouge

Mon problème est que si je l'active une deuxième fois , toute les cellule de W passe en rouge

Est-il possible d'empecher le fonctionnement du code lors d'une deuxieme activation par exemple en testant si des valeurs sont en vert dans la colonne W



Merci pour votre aide

A+

Code:
Sub PRICE()

    Dim Derlg As Integer, i As Integer
    
    With Sheets("feuil1")
        Derlg = .Range("X" & .Rows.Count).End(xlUp).Row
        For i = 80 To Derlg
            If Len(.Range("W" & i).Value) > 0 Then
                .Range("W" & i).Font.Color = vbRed
            Else
                .Range("W" & i).Value = .Range("X" & i).Value
                .Range("W" & i).Font.Color = vbGreen
            End If
        Next i
    End With

End Sub
 

Pièces jointes

  • testV0.xlsm
    113.5 KB · Affichages: 26
  • testV0.xlsm
    113.5 KB · Affichages: 27
  • testV0.xlsm
    113.5 KB · Affichages: 22

Robert

XLDnaute Barbatruc
Repose en paix
Re : Optimisation d'un code VBA

Bonjour Gibtoul, bonjour le forum,

Pas sûr d'avoir bien compris... Peut-être comme ça :
Code:
        If Len(.Range("W" & i).Value) > 0 Then
            .Range("W" & i).Font.Color = IIf(.Range("W" & i).Font.Color = vbGreen, vbGreen, vbRed)
        Else
 
C

Compte Supprimé 979

Guest
Re : Optimisation d'un code VBA

Bonjour Gibtoul

Simple, je pense, il suffit de mettre la date d'exécution du code dans une cellule
et si la date est celle du jour le code n'est pas exécuté

A+
 

Statistiques des forums

Discussions
312 215
Messages
2 086 338
Membres
103 192
dernier inscrit
Corpdacier