Changement de valeur et Liste déroulante

Photosol

XLDnaute Junior
Bonjour,

Je viens vers ce forum pour lui poser une petite question à double tiroir:

En effet voici le code que j'ai mis en place pour que lorsque j'ajoute un nom dans un tableau ce nom prend automatiquement la forme voulu si le nom est déjà dans le tableau. Par exemple si Bernard est surligné en bleu dans mon tableau, lorsque je vais ajouter un Bernard autre part dans le tableau il va devenir bleu automatiquement. Voici le code en question:

Private Sub Worksheet_Change(ByVal Target As Range)
' lorsque l'on ajoute un nom déjà présent dans le tableau, ce nom reprend la mise en forme des autres cases ayant le même nom

If flag Then Exit Sub
flag = True
If Selection.Count > 1 Then Exit Sub

For Each Cel In Range("Tableau2")
If Cel.Value = Selection.Value Then
Cel.Copy Destination:=Selection
End If
Next

flag = False
End Sub

Pour qu'il soit parfait, il faudrait une amélioration:
le Range est le tableau (Range("tableau2")), et je souhaiterais lui dire de ne pas chercher dans tout le tableau si une cellule est similaire, mais seulement dans la colonne en cours. Ainsi il cherchera un nom existant que dans la colonne.

Quelqu'un sait t'il comment faire?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Changement de valeur et Liste déroulante

Bonjour Photosol bonjour le forum,

Peut-être comme ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Integer

If flag Then Exit Sub
flag = True
If Selection.Count > 1 Then Exit Sub
col = Target.Column
For Each Cel In Application.Intersect(Range("Tableau2"), Columns(col))
    If Cel.Value = Target.Value Then
        Cel.Copy Target
    End If
Next
flag = False
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal