VB contrôle de saisie au fil de l'eau

OoPHILoO

XLDnaute Nouveau
Bonjour,

Je veux faire un contrôle de la saisie de l'utilisateur dans une feuille excel.
Contexte:

Saisie d'un numéro (ex: P1234) dans la colonne B de la feuille base de données
Contrôle du numéro saisie dans la colonne B
1- numéro déjà présent, message d'info, déplacement du curseur vers le numéro existant
2- numéro non présent, poursuite de la saisie vers une autre colonne (pour le moment j'ai un msg "pas trouvé")

Voici mon code qui fonctionne en appel de macro

Sub TestCelluleSaisie()
Dim saisie As String
Dim celluletrouvee As Range
Dim ligne As Integer
Dim colonne As Integer
saisie = ActiveCell

Set celluletrouvee = Range("B1:B5").Find(saisie, lookat:=xlWhole)

If celluletrouvee Is Nothing Then
MsgBox ("pas trouvé")
Else
MsgBox ("Déja saisi")
ligne = celluletrouvee.Row
colonne = celluletrouvee.Column
Cells(ligne, colonne).Select
End If
End Sub

Ma question :
Je veux que ce contrôle se fasse lorsque l'opérateur entre le numéro et non en exécutant la macro manuellement.
Auriez vous une proposition ?*
D'avance merci.
Phil.
 

Abel

XLDnaute Accro
Re : VB contrôle de saisie au fil de l'eau

Bonjour OoPHILOo,

Mets la macro dans la feuille (si elle ne l'est pas déjà) et sur l'événement "change".
En haut de la page de code, sélectionne "Worksheet" dans la liste déroulante pour indiquer que tu vas faire une action sur la feuille.
Puis, dans la liste déroulante juste à côté (à droite, normalement), sélectionne l'événement "Change" pour indiquer que le code que tu vas écrire s'exécutera à chaque modification dans la feullie de calcul.
VBA inscrit directement la déclaration de sub dans la page de code.

Après, amuse toi ...

En espérant que ça dépanne.

Abel.


Edit : au fait, bienvenu sur le forum.
 

OoPHILoO

XLDnaute Nouveau
Re : VB contrôle de saisie au fil de l'eau

Merci Abel,

Je viens de le faire.
La macro tourne mais me renvoie "non trouvé" qu'il y ai ou pas le code dans la colonne.
Lorsque je ne saisis rien cela me renvoie "déjà saisi" et la fonction cells ne fait plus rien.
Tout fonctionne lorsque je la fait tourner en (général) et appel la macro
Une idée ?
OoPHILoO
 
Dernière édition: