Nom de fichier
Bonjour,
A l'ouverture d'un classeur, dans workbook_open() donc, je fais saisir par l'utilisateur des données propres à l'utilisateur (nom, prénom, etc..), de façon à ce que le fichier (classeur) enregistré ensuite par ActiveWorkbook.SaveAs lui soit propre.
Comment puis-je faire pour que le code vérifie que l'utilisateur ne tape pas (pas mégarde ou méconnaissance) des caractères "interdits" pour l'enregistrement du fichier, type <,>,|,* ,etc...
merci d'avance de votre aide.
ci-après la partie de code dans l'état actuel des choses
Dim nom_utilisateur, prenom_utilisateur, agence, nom_de_sauvegarde, chemin As String
chemin = ActiveWorkbook.Path + "\"
nom_utilisateur = InputBox("Saisis ton nom", "saisie du nom")
prenom_utilisateur = InputBox("Saisis ton prénom", "saisie du prénom")
agence = InputBox("Saisis le code de ton agence (A1,B2,C3,D4,E5,Z8,...)", "saisie de l'agence")
nom_de_sauvegarde = "quiz_" + UCase(nom_utilisateur) + "_" + UCase(prenom_utilisateur) + "_" + UCase(agence) + ".xls"
nom_de_sauvegarde = chemin + nom_de_sauvegarde
ActiveWorkbook.SaveAs nom_de_sauvegarde
Bonjour haku,
tu pourrais te faire une fontion qui teste l'existence des caractères interdit:
Public Function ValidationNom(MaChaine) As Boolean
Dim CaractereInterdit(3) As String
'Tableau contenant les caractères interdits. A dimensionner selon le nombre de caractères.
Dim i As Integer
'Liste des caractères interdit, je te laisse la completé
CaractereInterdit(0) = "<"
CaractereInterdit(1) = ">"
CaractereInterdit(2) = "|"
CaractereInterdit(3) = "*"
'Boucle sur les x caractères interdit
For i = 0 To 3
'Si le caratère est présent, instr renvoie sa position. Donc si instr renvoie un
'nombre plus grand que 0 le caractère est trouvé.
If InStr(1, MaChaine, CaractereInterdit(i)) > 0 Then
ValidationNom = False
Exit Function
End If
Next i
ValidationNom = True
End Functionet ensuite tester tes inputbox:
Dim PointeurValidation As Boolean
PointeurValidation = False
Do While Not PointeurValidation
nom_utilisateur = InputBox("Saisis ton nom", "saisie du nom")
If ValidationNom(nom_utilisateur) Then
PointeurValidation = True
Else
MsgBox "Caractères invalides"
End If
Loop
PointeurValidation = False
'... Prochain test.bonjour Math,
Merci pour ta réponse qui doit effectivement fonctionner.
En fait, dans l'intervalle, j'ai contourné grace à On Error GoTo
Merci encore
Bonjour,
une autre alternative...
Dans le fichier joint, un userform apparaît, où il faut renseigner le nom, prénom dans des textboxs, et l'agence dans un combobox.
Essaye d'écrire un caractère interdit dans les textboxs, tu verras....
Rajoute le nom des agences, dans le code d'initialisation de l'usf...
Regarde et dis quoi...
bonsoir Cousinhub,
Top !
Merci