Pb macro

Marie30

XLDnaute Nouveau
Bonjour à tous,

Je débute sous vba et je souhaiterai éviter les erreurs sur mon fichier via vba; cad éviter à l'utilisateur de rentrer dans la cellule F5 autre chose qu'un numéro commencant par "BC" et comprenant : soit 10 caractères soit 14 exactement.

Ex : BC01XX0123 mais parfois c'est aussi BC01XX0123-001


J'ai donc pensé à

Code:
Sub test 

Dim B as string

B = Range("F5")
If Not Len(B) = 10 Then
    If Not Len(B) = 14 Then
        If Left(B, 2) <> "BC" Then
                MsgBox ("Numéro de commande incorrect")
                Exit Sub
        End If
    End If
End If

Mais ça ne marche pas ... la procédure continue ...

QQun peut il m'aider ?

Merci à tous

Marie
 

Pierrot93

XLDnaute Barbatruc
Re : Pb macro

Bonjour Marie

essaye le code ci-dessous, à placer dans le module de la feuille concernée, procédure événementielle, se déclenche lors des modifications sur la feuille, attention sensible à la casse, teste BC en majuscules, si tu veux autoriser les minuscules utiliser la fonction "UCase" :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Static b As Boolean
If Target.Address <> "$F$5" Or b Then Exit Sub
If Not Target Like "BC*" Or (Len(Target) <> 10 And Len(Target) <> 14) Then
    b = True
    Target = ""
    MsgBox "saisie invalide !!!"
End If
b = False
End Sub

bonne soirée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 747
Messages
2 091 605
Membres
105 007
dernier inscrit
adla