VBA selon valeur exixtante

Bonjour,

Voici ce que j'aimerais faire, je ne sais pas si celà est faisable...

J'aimerais que lorsque je rentre un nombre dans une cellule et que ce nombre existe déjà dans la feuille, j'ai un message sous forme de box m'avertissant de la présence de ce nombre.

Ou mieux que les cellules où ce nombres existe clignotent ou soient marquées d'une couleur ou autre.

Merci de votre aide

Cordialement

Bonsoir,

C'est possible par contre comment sont disposées tes données dans ta feuille ?

Peux-tu fournir un fichier comme exemple.

Bonsoir,

Une piste à mettre dans le module de la feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Cel As Range
    Dim Adr As String

    If Target.Count > 1 Then Exit Sub

    Me.UsedRange.Cells.Interior.ColorIndex = 0

    Set Cel = Me.UsedRange.Find(Target.Value, , xlValues, xlWhole)

    If Not Cel Is Nothing Then

        Adr = Cel.Address

        Do
            If Cel.Address <> Target.Address Then Cel.Interior.ColorIndex = 3

            Set Cel = Me.UsedRange.FindNext(Cel)

        Loop While Cel.Address <> Adr

    End If

End Sub

Les valeurs que je renseigne sont dans les colonnes D, E, F, H, L.

Merci pour votre aide

Bravo Theze . Super solution

Merci Theze

J'ai collé le code dans le module de la feuille.

Tout fonctionne, par contre, lorsque la macro se déclenche il y a bien les cellules qui sont repérées, mais le souci c'est que ma feuille devient blanche. Je n'ai plus mes codes couleurs.

Y a t-il un moyen de les retrouver une fois que la macro a été exécuté? pour revenir à mon tableau initial?

Bonsoir,

Désolé pour le retard !

supprime cette ligne :

Me.UsedRange.Cells.Interior.ColorIndex = 0

Bonjour,

Merci pour votre aide, aucun souci pour le retard

Je test et reviens vers vous.

Re,

J'ai remarqué que lorsque un nombre se termine par 0, la présence de ce dernier n'est pas détectée et ce même si je change le format de la cellule en nombre, monétaire ou standard...

Ensuite, je cherche à compléter la marco ou créer un bouton avec une macro permettant d'initialiser la feuille. Effacer les données saisies ainsi que les cellules des menus déroulants.

J'ai commencé une piste.

N'hésitez pas à modifier ou proposer votre idée.

Je débute dans le VBA donc...

Bonjour,

Personne pour m'orienter sur ma piste...

Bonjour,

J'ai remarqué que lorsque un nombre se termine par 0, la présence de ce dernier n'est pas détectée et ce même si je change le format de la cellule en nombre, monétaire ou standard...

Remplace cette ligne de code :

Set Cel = Me.UsedRange.Find(Target.Value, , xlValues, xlWhole)

Pas celle-ci :

Set Cel = Me.UsedRange.Find(Target.Value, , xlFormulas, xlWhole)

donc, la constante "xlValues" par la constante "xlFormulas"

Bonjour,

Merci pour le problème du "0"

Que pensez-vous de ma piste pour réinitialiser ma feuille?

Le problème c'est que lorsque l'on modifie la feuille en ajoutant une ligne ou autre, il faut de nouveau préciser les cellules dans la macro

Ensuite par exemple dans la cellule D6. Comparer la valeur que je saisi par rapport à la valeur précédemment présente? J'ai tenté sans résultat par la mise en forme conditionnelle.

En VBA cela serait-il possible?

macro qui indiquerait par une couleur (vert foncé, rouge foncé et jaune) si la valeur que je saisi est > ; < ou = à la valeur qui était saisie dans cette même cellule.

Bonsoir,

Donc pour comparer ma valeur saisie à la valeur qui était déjà présente dans cette même cellule.

J'ai crée une macro qui me copie la valeur dans une autre feuille, ensuite je compare avec la mise en forme conditionnelle.

Je suis certain qu'il y a plus simple

Bonjour,

Personne pour m'aider, savoir si ma solution est ok?

Bonjour,

Pourrais-tu poster la toute dernière version de ton fichier ...avec les macros ... ?

Bonjour,

Les cellules en question selon ma dernière demande sont D6, D66, D115, N6.

J'aimerais pouvoir comparer la valeur que je saisi à la valeur qui était présente, d'où mon idée de copier les cellules dans une autre feuille et ensuite utiliser la mise en forme conditionnelle. Mais je suis certain qu'il y a plus simple

Merci

Re,

Merci pour le fichier ...

Dans la mesure où tu as besoin d'effectuer tes comparaisons dans des sessions différentes ... ta solution est effectivement la bonne ...

A noter que les macros évènementielles doivent être stockées dans le module des feuilles concernées... tandis que les macros standard doivent l'être dans les modules standard ...

Accessoirement, la feuille qui contient tes variables peut être cachée ...

Ci-joint ton fichier re-visité ...

En espérant que cela t'aide ...

8exemple-file6.xlsm (33.27 Ko)

Bonjour James007

Merci pour ton travail.

Je test le fichier et reviens vers toi

Re,

En lançant la macro avec le bouton, j'ai une erreur de compilation.

Ci-joint la capture du message.

Merci

macro
Rechercher des sujets similaires à "vba valeur exixtante"