Contrôle sur un nom de fichier xl

Résolu
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004 - 14 oct. 2004 à 20:11
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004 - 15 oct. 2004 à 00:08
bonsoir,

en fait je n'ai pas réussi à personnaliser l'interface enregistrer sous d'xl, j'ai donc choisi de créer une userform dans laquelle l'utilisateur entre un nom de fichier.

je souhaiterais donc utiliser le même contrôle qu'utilise excel pour valider un nom de fichier et vérifier que l'utilisateur ne s'amuse pas à entrer des caractères originaux ,.:!§%µ$*^_\('éè(.

voilà donc mon pb

merci par avance

@+
Oyster

13 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2004 à 22:46
Bien alors pour le Licensié ça ne veux pas dire que tu est viré de ton taf, rassure toi, lol

Bien je vais reprendre ta méthode de vérification des caractères :
Il faut rechercher si tu l'un de ces caractère est présent.

Utilise l'instruction INSTR
Mais il va faloir que tu recherche chaque caractère "bizzare"

Exemple avec le § et % :
dim ErreurFile as boolean   'Ici on déclare une variable qui retournera Tue ou False, celle-ci permet de gérer l'erreur avec moins de code

if Instr(TONTEXTE;"§")<>0 then 
   ErreurFile=true
elseif Instr(TONTEXTE;"%")=0 then
ErreurFile=True
.
.
.
.
.
.
else
  erreurfile=false
End if

if erreurfile=true then
   msgbox "nom de fichier incorrect"
   exit sub
end if


Explication :
If...... then / Elseif .... Then : Si le caractère §, %, .... est trouver alors Instr retourne une valeur différente de 0 et donc erreurfile est mis à True, si aucun tout les tests retourne 0 alors on met erreurfile à False.

Ensuite on test si erreurfile est à True, si c'est le cas on affiche un message d'erreur et on sort de la procedure Sub.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
3
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
15 oct. 2004 à 00:01
Autant pour moi je me suis gouré, je t'ai file une procédure LotusScript, sous VB ce n'est pas Char mais Chr
Sorry

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
3
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2004 à 21:37
Salut,

Pour ouvrir ou sauvegarder un fichier utilise le contrôle : AdvCommonDialog ou CommonDialog.

Avec la méthode .showsave pour sauvegarder ou .showopen pour ouvrir un fichier. du moins c'est juste la boite de dialogue après à toi de faire le prog de sauvegarde

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004
14 oct. 2004 à 22:32
après 3/4 d'heures de creusage de méninges (car j'avais oublié de préciser que je n'étais que novice en vba)
je me suis rappellé pourquoi je ne m'étais pas lancé dans la voie royale des showsaves !

j'ai un fichu message d'erreur : "le controle n'a pas été créé parce qu'il n'est pas correctement licencié" lorsque je veux le placer sur ma userform

voilà donc pourquoi je me suis lancé dans de pauvres lignes du style:
Sub Enregistrer_Click()
If nomdufichier <> "" Then
If nomdufichier (n'est pas bon car il contient des / : ! §...) Then
lancelasauvegarde
Else
MsgBox "Veuillez entrer un nom valide", vbExclamation
End If
Else
MsgBox "Veuillez indiquer un nom de fichier", vbExclamation
End If
End Sub

voilà

donc
-soit je trouve un moyen de licencié mon contrôle (je ne sais même pas ce que cela veut dire)
-soit je trouve le moyen de traduire (n'est pas bon car il contient des / : ! §...) en langage vba

merci pour la promptitude de ta réponse Chris

@+
Oyster
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004
14 oct. 2004 à 23:15
Et bien c'est super ça marche
il ne me reste plus qu'à trouver la liste des caractères que refuse excel...

Je te remercie beaucoup de ta collaboration
on ne peux pas dire que j'ai eu à attendre

@+
Cyrille

ps: aurais tu une idée pour mon problème de licenciement des contrôles... (ça à l'air d'être pas mal ces commondialog...)
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2004 à 23:18
Je pense que c'est Excel qui refuse d'utiliser le commondialog car tu as un version VBA de VB et non un VB tout court.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2004 à 23:20
Voici les caractère que Windows refuse d'utiliser dans les noms de fichiers :

\ / : * ? " < > |

N'oubli pas de valider les réponses si elles fonctionnent.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004
14 oct. 2004 à 23:33
"Je pense que c'est Excel qui refuse d'utiliser le commondialog car tu as un version VBA de VB et non un VB tout court."

est ce que c'est grave docteur
est ce que je peux m'en sortir
y a t il un remède
faut il emputer ce "A"

encore merci

@+
Oyster

ps: ton site est sympa
(une remarque: je n'ai pas eu accès aux infos sportives)
0
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004
14 oct. 2004 à 23:41
juste une dernière question
comment peut on écrire
InStr(nomdufichier, """) <> 0 ?
les trois guillemets ne sont pas acceptés

@+
Cyrille
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2004 à 23:43
non la ça ne marche pas il faut que tu regarde le code Ascii du caractère " et que tu remplace """ par char(CODE ASCII)
Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2004 à 23:47
Bhà en fait de ne pas pouvoit utiliser CommonDialog ce n'est pas grave mais gênant.
Le remède, te procurer un VB6.

PS:Je vais voir pour les infos sportives (Eurosport)

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004
14 oct. 2004 à 23:54
j'ai trouvé que le code de " était 34
mais la fonction char n'est pas reconnue

voilà comment je l'ai écrit:
InStr(nomdufichier, char(34)) <> 0

@+
Oyster
0
cs_Oyster Messages postés 7 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 15 octobre 2004
15 oct. 2004 à 00:08
et bien encore une fois : Merci

quel talent

@+
Oyster

ps: n'oublie pas d'aller dormir
0
Rejoignez-nous