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 Function

et 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...

https://www.excel-pratique.com/~files/doc2/haku1.xls

bonsoir Cousinhub,

Top !

Merci

Rechercher des sujets similaires à "nom fichier"