CommonDialog

CommonDialog - VB/VBA/VBS - Programmation

Marsh Posté le 28-05-2004 à 11:32:54    

salut, j'utilise des commondialog pour ouvrir / enregistrer un fichier, mais le probleme c'est que j'aimerai bien savoir si la personne a appuyé dans le commondialog sur le bouton "ouvrir" ou bien sur le bouton "annuler".
Parce que si je selectionne le fichier, et qu'ensuite j'appuye "annuler", le CommonDialog1.FileName ne sera pas vide et ca va m'ouvrir le fichier.
 
Voici mon code pour ouvrir:
 

Code :
  1. CommonDialog1.Filter = " jackpot (*.jkp) | *jkp"
  2. CommonDialog1.ShowOpen
  3. If (FileExists(CommonDialog1.FileName) And CommonDialog1.FileName <> "" ) Then
  4. MsgBox ("on ouvre le fichier" )
  5.     'on active le bouton enregistrer
  6.     mnuEnregistrerItem.Enabled = True
  7.     'on ouvre le fichier
  8.     Open CommonDialog1.FileName For Input As #fichier
  9.     If Not EOF(fichier) Then Line Input #fichier, ligne
  10.     'MsgBox ligne
  11.             ligne = Split(ligne, ";" )
  12.             mise = ligne(0)
  13.             labelMise = mise
  14.             Label6.Caption = ligne(1)
  15.                
  16.     'On ferme le fichier
  17.     Close fichier
  18. End If


 
je ne sais pas quoi mettre dans le if si la personne a appuyé sur le bouton annulé :/
 
merci d'avance :jap:


---------------
Découvre le HFRcoin ✈ - smilies
Reply

Marsh Posté le 28-05-2004 à 11:32:54   

Reply

Marsh Posté le 28-05-2004 à 12:59:30    

j'ai essayé avec CancelError mais ca ne marche pas :(
 

Code :
  1. CommonDialog1.ShowOpen
  2. erreur = CommonDialog1.CancelError
  3. MsgBox (erreur)


 
ca me renvoie toujours false, meme si j'appuie sur le bouton annulé :/
 
comment ca se fait ?
 
le code en entier:
 

Code :
  1. MsgBox (CommonDialog1.CancelError)
  2. CommonDialog1.Filter = " jackpot (*.jkp) | *jkp"
  3. On Error Resume Next
  4. CommonDialog1.ShowOpen
  5. erreur = CommonDialog1.CancelError
  6. MsgBox (erreur)
  7. If (FileExists(CommonDialog1.FileName) And CommonDialog1.FileName <> "" And CommonDialog1.CancelError = False) Then
  8.     MsgBox ("on ouvre" )
  9.     'on active le bouton enregistrer
  10.     mnuEnregistrerItem.Enabled = True
  11.     'on ouvre le fichier
  12.     Open CommonDialog1.FileName For Input As #fichier
  13.     If Not EOF(fichier) Then Line Input #fichier, ligne
  14.     'MsgBox ligne
  15.             ligne = Split(ligne, ";" )
  16.             mise = ligne(0)
  17.             labelMise = mise
  18.             Label6.Caption = ligne(1)
  19.                
  20.     'On ferme le fichier
  21.     Close fichier
  22. End If


Message édité par fabien le 28-05-2004 à 13:00:14

---------------
Découvre le HFRcoin ✈ - smilies
Reply

Marsh Posté le 28-05-2004 à 13:28:07    

Perso je change la propriété CancelError à True pour déclencher une erreur si Cancel est cliqué, ainsi je suis toujours sûr de mon coup ;)
 
(le numéro de l'erreur est prédéfini: 32755 donc tu peux la tester sans problème)
 
Un bon conseil: le On Error Resume Next, c'est MAL. Très mal.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-05-2004 à 13:30:27    

drasche a écrit :

Perso je change la propriété CancelError à True pour déclencher une erreur si Cancel est cliqué, ainsi je suis toujours sûr de mon coup ;)
 
(le numéro de l'erreur est prédéfini: 32755 donc tu peux la tester sans problème)
 
Un bon conseil: le On Error Resume Next, c'est MAL. Très mal.

oui mais comment savoir si cancel a été cliqué ? :??:


---------------
Découvre le HFRcoin ✈ - smilies
Reply

Marsh Posté le 28-05-2004 à 13:34:52    

ça déclenche une erreur, mais tu ne le verras pas si tu gardes On Error Resume Next en début de code (à évite absolument d'ailleurs!)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 28-05-2004 à 13:39:51    

drasche a écrit :

ça déclenche une erreur, mais tu ne le verras pas si tu gardes On Error Resume Next en début de code (à évite absolument d'ailleurs!)

oué mais moi quand ca declanche une erreur, le programme plante et il s'arrete, donc je ne peux faire aucun test pour connaitre la valeur de l'erreur .
Donc faut s'y prendre comment pour tester ? et en enlevant le on error resume next ca plante, et quand je le remet ben ca plante plus.


---------------
Découvre le HFRcoin ✈ - smilies
Reply

Marsh Posté le 28-05-2004 à 13:44:56    

cherche "on error" dans la FAQ, ya un exemple.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed