Caratères spéciaux

Bonjour à tous,

Dans le fichier excel ci-joint, le bouton "Nouveau joueur" fait apparaitre une fenêtre de dialogue où il faut entrer son nom de joueur. La macro va alors copier la feuille "Test", changer le nom en prenant compte ce qui a été entré, et effacer les données de la colonne prédictions.

Pour le moment, il y a une vérification que la valeur entrée n'est pas vide. Je souhaiterais ajouter un point de contrôle pour vérifier que les données insérées sont bien des lettres (A-z;é;è) ou des chiffres. J'avais dans l'idée d'ajouter une boucle if à ma macro existante (module 2 dans le fichier)

Private Sub boutton_ok_Click()

If Len(champ_nom) = 0 Then

MsgBox "Vous devez saisir un nom ou cliquer sur annuler"

Else

if champ_nom contient des caractères non autorisés Then

MsgBox "Vous ne pouvez entrer que des lettres et des chiffres"

Else

champ_nom = UCase(Left(champ_nom, 1)) & LCase(Right(champ_nom, Len(champ_nom) - 1))

champ_nom = Replace(champ_nom, " ", vbNullString)

fichejoueur.Hide

End If

End If

End Sub

Quelqu'un aurait-il une idée de ce qui pourrait fonctionner ? Bien entendu, si c'est une autre solution, je suis preneur également.

D'avance, merci.

bonjour,

une solution possible

Private Sub boutton_ok_Click()
    If Len(champ_nom) = 0 Then
        MsgBox "Vous devez saisir un nom ou cliquer sur annuler"
    Else
        For i = 1 To Len(champ_nom)
            If Not Mid(champ_nom, i, 1) Like "[A-Z,a-z,0-9]" Then
                MsgBox "veuillez n'introduire de des chiffres ou des lettres non accentuées"
                Exit Sub
            End If
        Next i
        champ_nom = UCase(Left(champ_nom, 1)) & LCase(Right(champ_nom, Len(champ_nom) - 1))
        champ_nom = Replace(champ_nom, " ", vbNullString)
        fichejoueur.Hide
    End If
End Sub

Merci beaucoup!

La solution fonctionne super bien. Cependant, je souhaiterais accepter les accent é et è. En effet, si un joueur s'appelle "Jérémy", je souhaites qu'il puisse conserver ses accents.

D'avance, merci.

Gilles

bonjour,

tu peux ajouter des caractères dans l'instruction like

If Not Mid(champ_nom, i, 1) Like "[A-Z,a-z,0-9,éèç]" Then

Magnifique!

Merci beaucoup.

Rechercher des sujets similaires à "carateres speciaux"