VBA - Aide pour code

  • Initiateur de la discussion Initiateur de la discussion pepsi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pepsi

XLDnaute Occasionnel
Bonjour ,

Grâce au forum, j'ai pu mettre au point un code qui me permet :

- D'afficher des coches sur les colonnes 4 & 5

- Et de comparer ma feui1 et copie_Feuil1 afin de voir quelles sont les modifications :

a chaque modification sur la feuil1, les cellules du tableau dont le contenu diffère de la feuille copie_Feuil1 sont passées en orange

Cela marche très bien avec les colonnes 6 et 7

Par contre les deux colonnes qui ont des coches (4 et 5) , cela ne marche pas. J'ai mis un code identique au colonne 6 et 7 mais sans succès

Si quelqu'un peut jeter un coup d' oeuil à mon code et m'aider à voir pourquoi cela ne marche pas, ce serait vraiment très gentil



Note : je souhaite garder ce système de coches et ne pas passer sur des coches de type formulaire.

J'ai également un autre problème moindre : de temps en temps à la saisie dans le tableau, je suis automatiquement renvoyée à la ligne 199 ...


Merci d'avance
 

Pièces jointes

Re : VBA - Aide pour code

Bonjour,
C'est plus simple de ne traiter que ce qui change :
VB:
Option Explicit

' AFFICHER LES COCHES "Wingdings"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ligne As Long
    Application.ScreenUpdating = False
    If Target.Count > 1 Then Exit Sub
    ligne = Target.Row
    If (Target.Column = 4 Or Target.Column = 5) And ligne > 5 Then
        Target = IIf(Target = "þ", "", "þ")
        ActiveCell.Offset(0, 2).Select
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Inter As Range, c As Range
    Set Inter = Intersect(Target, Range("D6:G199"))
    If Not Inter Is Nothing Then
        For Each c In Inter
            If c.Value <> Worksheets("copie_Feuil1").Range(c.Address).Value Then
                With c
                    .Interior.ColorIndex = 46
                End With
            Else
                With c
                    .Interior.ColorIndex = 0
                End With
            End If
        Next c
    End If
    Set Inter = Nothing
End Sub
A+
 
Re : VBA - Aide pour code

Bonjour Hippolite,

Je te remercie pour ta réponse et ta proposition de code qui répond parfaitement à ce que je souhaitais obtenir.
Effectivement, à la lecture de ton code , je me rends compte qu'il était vraiment plus "simple" de traiter uniquement ce qui change.

en tout cas merci encore et bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
223
Réponses
6
Affichages
159
Réponses
72
Affichages
1 K
Réponses
10
Affichages
857
Réponses
6
Affichages
299
Retour