Se connecter avec
S'enregistrer | Connectez-vous

Excel VBA - Like

Dernière réponse : dans Programmation

Bonjour les gens,

Quelqu'un a t'il une idée de pourquoi, ma macro ne marche pas? Voici le code :

  1. Sub SCNoContrat()
  2.  
  3. Dim NC As String, NCInvite As String, NCLegende As String
  4.  
  5. NCLegende = "Numéro de contrat"
  6. NCInvite = "Rentrer la référence du contrat"
  7. NCInvite = NCInvite & vbNewLine
  8. NCInvite = NCInvite & "sous le format XXXXMUN-XXX" ' où X est un chiffre
  9.  
  10. NC = Val(InputBox(NCInvite, NCLegende))
  11.  
  12. If NC Like "####" & "MUN-" & "###" Then
  13. MsgBox "Correct"
  14. Else: MsgBox "Respectez le format"
  15. End If
  16.  
  17.  
  18. End Sub


En effet quand je rentre 1234MUN-567 dans mon InputBox, ça me sort "Respectez le format" !!

Merci!

Autres pages sur : excel vba like

Lassé par la pub ? Créez un compte

Et avec ça ?
  1. Sub SCNoContrat()
  2.  
  3. Dim NC As String, NCInvite As String, NCLegende As String
  4.  
  5. NCLegende = "Numéro de contrat"
  6. NCInvite = "Rentrer la référence du contrat"
  7. NCInvite = NCInvite & vbNewLine
  8. NCInvite = NCInvite & "sous le format XXXXMUN-XXX" ' où X est un chiffre
  9.  
  10. NC = Val(InputBox(NCInvite, NCLegende))
  11.  
  12. If NC Like "####" & "MUN-" & "###"
  13. Then: MsgBox "Correct"
  14. Else: MsgBox "Respectez le format"
  15. End If
  16.  
  17.  
  18. End Sub
Expert Programmation

'lut! tout l'monde...

Citation :
Val : Renvoie le nombre contenu dans une chaîne de caractère sous la forme d'une valeur numérique d'un type approprié.
Syntaxe : Val(string)
L'argument string peut être n'importe quelle expression de chaîne.
Remarques : La fonction Val arrête la lecture de la chaîne au premier caractère ne faisant apparemment pas partie d'un nombre.

Dans ton cas, elle s'arrête dès le premier caractère de "NUM-"... et si toutefois elle allait plus loin, je me demande si elle ne ferait pas : 1234 (MUN est sauté) - (interprété comme "moins") 567 (= 667)... mais là, je doute.

amha, il faut isoler le tiret, pour qu'il soit interprété comme un caractère spécial...
Peut être qu'avec If NC Like "####MUN[-]###" ça roulerait ?... non ?
Lassé par la pub ? Créez un compte