Probleme avec une Worksheet

Résolu/Fermé
Mistral_13200 Messages postés 636 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 15 novembre 2024 - 30 nov. 2009 à 08:01
Mistral_13200 Messages postés 636 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 15 novembre 2024 - 26 oct. 2010 à 15:15
Bonjour à tous,
J’ai dans une dans une feuille Excel la procédure Worsheet suivante :
Private Sub Worksheet_Change(ByVal sel As Range)
'Surveille si une saisie sur la quatrième colonne a lieu.
If sel.Column = 4 Then
Dim cel As Range, rien As Boolean
rien = False
For Each cel In sel.Cells
If cel.Value = "" Then
ActiveSheet.Unprotect ("xxx")
cel.Offset(0, 11).Value = ""
ActiveSheet.Protect ("xxx")
rien = True
End If
Next cel
If rien Then Exit Sub
If sel.Count > 1 Then Exit Sub
'Surveille si une cellule de la colonne 6 contient "Numero d'ahérent inconu".
If Cells(sel.Row, 14).Value = "Numéro d'adhérent inconnu…" Then
***
MsgBox ("Pour un non adhérent, vous devez saisir un numéro supérieur à 9000"), vbInformation, "Auteur non fédéré."
sel.Value = "" 'Efface la cellule.
sel.Select 'Positionne le curseur sur le cellule.
***'
Cells(sel.Row, 12).Value = 1 'Erreur adhérent trouvée.
'Déclartion des variables
Dim nom As Variant
Dim pnom As Variant
'Ouverture de la boite pour saisir le nom et contrôle.
nom = Application.InputBox("Nom de l'adhérent", "Saisie du Nom d'un non ahérent.", , 210, 140)
'Verife si la touche Annuler est activée.
If nom = False Then
sel.Value = ""
sel.Select
Exit Sub
End If
'Ouverture de la boite pour saisir le prénom et contrôle.
pnom = Application.InputBox("Prénom de l'adhérent", "Saisie du Prénom d'un non adhérent.", , 210, 140)
'Verife si la toucher Annuler est activée.
If pnom = False Then
sel.Value = ""
sel.Select
Exit Sub
End If
'Mise au format nom propre (1er lettre en majuscule).
nom = UCase(Left(nom, 1)) & Mid(nom, 2)
pnom = UCase(Left(pnom, 1)) & Mid(pnom, 2)
' Remplacement du contenu de la cellule en erreur.
ActiveSheet.Unprotect ("d1500359a")
Cells(sel.Row, 15).Value = nom & " " & pnom
ActiveSheet.Protect ("d1500359a")
End If
End If
End Sub

Cette procédure permet de traiter les erreurs remontées par une fonction RECHERCHV.
Je souhaiterais insérer dans cette procédure (entre les ***) un contrôle supplémentaire qui permettra en cas d’erreur et pour un valeur saisi inférieur à 9000 :
- Avertir l’utilisateur de saisir un N° d’adhérent supérieur à 9000.
- Effacer la valeur ayant provoqué l’erreur.
- Repositionner
Et dans le cas le curseur sur la même cellule
- Poursuivre la procédure
Par contre, en cas d’erreur et pour une valeur supérieur à 9000 on déroule la procédure sans message. Je pense qu’il est nécessaire de passer par une instruction du type IF THEN ELSE mais je ne parviens pas à mes fins.
Merci par avance de votre aide.
Cordialement
Mistral

1 réponse

Mistral_13200 Messages postés 636 Date d'inscription mardi 5 août 2008 Statut Membre Dernière intervention 15 novembre 2024 4
26 oct. 2010 à 15:15
'''
0