Traitement de données

bonjour ,

j ai crée une macro qui m aidait a filtrer une plage de données et de mettre XX dans une cellule que j'ai ajouté devant chaque ligne .

le probléme c'est que une fois je filtre cette feuille la je dois envoyer le fichier a un collegue qui doit verifier encore une fois les champs si on ete bien remplis avant de valider le classeur et l'archiver . je voulais savoir si par exemple il me demande de remodifiè une cellule quelconque (exemple BC 56) une fois la modification est faite la cellule changue de couleur d'une maniére automatique pour qu'il ne revérifiera pas cette ligne encore une fois étant donné que la feuille peut contenir des centaines de lignes.

Bien le bonjour,

Voici deux option.

Première option :

Insérer ce code dans la feuille concernée, puis renommer la "Feuil2" = "Copie".

Ensuite insérer TON TABLEAU, puis enregistrer.

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Sheets("Copie").Range(Target.Address) <> Target Then
    Target.Interior.ColorIndex = 6
  Else
    Target.Interior.ColorIndex = xlNone
  End If
End Sub

Deuxième option :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

  If Target.Interior.ColorIndex = 36 Then
    Target.Interior.ColorIndex = xlNone
  Else
     Target.Interior.ColorIndex = 36
  End If
  Cancel = True
End Sub

Insérer aussi le code dans la feuille concernée.

Double clic sur une cellule et elle sera colorée.

j'espère que cela pourra t'aider.

Cordialement,

Mugiwaraa

Merci beacoup pour votre reponse

Je vais essayer ça et je vous tiendrais au courant !

C'est appliquable aussi pour toute une ligne entière ?

Corialement

Riadh

Bonjour, troisième option, le suivi des modifications interne à excel, moins visuel mais tout autant pratique.

https://forum.excel-pratique.com/cours-astuces/suivi-des-modifications-t4613.html

Bonjour,

A tester.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
  If Sheets("Copie").Range(Target.Address) <> Target Then
  With Target
    .EntireRow.Interior.ColorIndex = 20
  End With
    Else
    Target.Interior.ColorIndex = xlNone
  End If
End Sub

Bonne journée.

Mugiwaraa

Bonjour ,

comment je peux faire pour colorer d'une maniére automatique les cellules qui ont été remplies par des xx

Voici mon code

Sub Decision()

    Dim cell As Range

    Dim i As Integer

    For i = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row

        If CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" Or CStr(ActiveSheet.Cells(i, 31).Value) = "Completed – Inventory available / Complété - Inventaire disponible" Or _
            CStr(ActiveSheet.Cells(i, 31).Value) = "Completed - Pool Created/ Complété - Bassin crée" Then

            ActiveSheet.Cells(i, 42).Value = "XX"

       ' ElseIf ActiveSheet.Cells(i, 4).Text <> "" Then

          ' ActiveSheet.Cells(i, 42).Value = "Complete"

        End If

    Next i

End Sub

Be-bonjour,

En suivant la logique du poste le code suivant colorie la ligne où se trouve les "xx"

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "xx" Then
  With Target
    .EntireRow.Interior.ColorIndex = 20
End With
End If
End Sub

Si tu veux colorier uniquement la cellule voici :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "xx" Then
  With Target
    Target.Interior.ColorIndex = 20
End With
End If
End Sub

J'espère que cela t'aidera.

Cordialement,

Mugiwaraa

Bonjour...

With ActiveSheet.Cells(i, 42)
.Value = "XX"
.Interior.ColorIndex = 13
End With

au lieu de

ActiveSheet.Cells(i, 42).Value = "XX"

merci les gars ca marche super bien ))

Avec plaisir.

Rechercher des sujets similaires à "traitement donnees"