Comparer entre deux colonnes et mise en évidence

Bonjour le forum,

Je permets de revenir vers vous, j'ai besoin d'aide

8classeur1.xlsx (10.08 Ko)

.
J'ai un fichier dans lequel je voudrais faire une recherche verticale dans une colonne et la comparer avec une cellule.

Je m'explique, ci-joint un fichier avec deux colonnes, colonne 1 et colonne 2.
Dans la colonne 1 il y des infos figées et dans la colonne 2 ce sont des infos rentrées par l'utilisateur.
J'aimerais que si l'utilisateur rentre une donnée qui est égale à une donnée dans la colonne 1, cela mette en évidence la cellule de la colonne 2 afin de changer la donnée.

J'espère avoir été claire

Merci d'avance
Meilleures salutations

Bonjour Nini, bonjour le forum,

Je te propose cette événementielle Change à placer dans l'onglet concerné :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range 'déclare la variable R (Recherche)

If Target.Column <> 2 Then Exit Sub 'si la cellule modifiée n'est pas dans la colonne 2, sort de la procédure
Set R = Columns(1).Find(Target.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur entière de la cellule modifiée dans la colonne 1)
If Not R Is Nothing Then 's'il existe au moins une occurrence trouvée
    Target.Font.ColorIndex = 3 'couleur de la police de la cellule modifié rouge
Else 'sinon
    Target.Font.ColorIndex = xlAutomatic 'couleur de la police de la cellule modifiée automatique
End If 'fin de la condition
End Sub

Bonjour ThauThème,

Je te remercie pour ton message et ton aide.
Dans mon fichier posté cela fonctionne mais malheureusement pas dans mon fichier de base.

Dans mon fichier j'ai déjà un bout de code VB avec Worksheet_Change(ci-dessous).
Ils entre en conflit

(Date et heure à l'enregistrement)

Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.feuil1change
End Sub

Re,

Tu ne peux avoir qu'un seul et unique Worksheet_Change. Il faudrait arriver à combiner le code que je t'ai proposé avec celui qui existe déjà . C'est souvent faisable mais il me faudrait ce code car ce que tu donnes renvoie, je pense, sur une procédure que tu ne fournis pas...

Re,

Voila ci-dessous le code complet

Option Compare Text

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Call Enreg
End Sub
--------------------------------------------------------------------
Private Sub ListBox1_Click()
  ActiveWindow.ScrollRow = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
  'Cells(Me.ListBox1.List(Me.ListBox1.ListIndex, 1), 1) = "x"
End Sub
--------------------------------------------------------------------
Private Sub Scroller_Click()
n = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
Application.Goto Reference:=Range("A" & n), Scroll:=True
End Sub
--------------------------------------------------------------------
Private Sub TextBox1_Change()
Application.ScreenUpdating = False

    Range("C9:C335").Interior.ColorIndex = 2

    [A9:A335] = ""
    ActiveWindow.ScrollRow = 9
    With Me.ListBox1
      .Clear
      .ColumnCount = 2
      .ColumnWidths = "-1;0"
      .Height = 85
      .Width = 230
    End With
    If TextBox1 <> "" Then
        For ligne = 9 To Cells(Rows.Count, 2).End(xlUp).Row 'modifié pour éviter la boucle jusqu'en ligne 1000
            If Cells(ligne, 2) Like "*" & TextBox1 & "*" Then
                Cells(ligne, 1) = "x" 'on inscrit le "x" ici
                ListBox1.AddItem Cells(ligne, 2)
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = ligne
            End If
        Next
    End If

End Sub
------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.feuil1change
End Sub

Re,

Heu... c'est ce code qu'il me faut : feuil1change. Il se trouve dans le composant ThisWorkbook...

J'ai comme l'impression que tes codes ne se trouvent pas au bon endroit. Le fichier permettrait de vérifier tout ça...

Re,

Ci-joint le fichier.

En fait ce sont les raccourci des commandes d'AutoCAD afin de les personnalisés et ne pas mettre le même raccourci pour plusieurs commande.

6acad-pgp-2021.xlsm (79.98 Ko)

Bonjour …

autre proposition (Tableau avec MFC ou VBA)

nb si tableau

On peut ajouter des lignes si nécessaire cette dans la macro évènementielle , comme ThisWorkbook.feuil1change.

5nb-si-table.xlsm (34.68 Ko)

Re,


Ok, j'ai compris et j'ai adapté. Remplace le code actuel Worksheet_Change par :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range 'déclare la variable R (Recherche)

ThisWorkbook.feuil1change
If Target.Column <> 4 Then Exit Sub 'si la cellule modifiée n'est pas dans la colonne 4, sort de la procédure
Set R = Columns(3).Find(Target.Value, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur entière de la cellule modifiée dans la colonne 3)
If Not R Is Nothing Then 's'il existe au moins une occurrence trouvée
    Target.Font.ColorIndex = 3 'couleur de la police de la cellule modifié rouge
Else 'sinon
    Target.Font.ColorIndex = xlAutomatic 'couleur de la police de la cellule modifiée automatique
End If 'fin de la condition
End Sub

Re,

Super merci à vous deux, le forum toujours au top

Les deux solutions vont bien

Meilleures salutations

Rechercher des sujets similaires à "comparer entre deux colonnes mise evidence"