Récupérer l'appui sur la touche Annuler d'un CommonDialog
6 réponses
Bernard
Bonjour,
je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec
juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog
Control version 6.0 ) et dans un module j'ai le code suivant appelé par un
simple bouton sur la feuille Excel :
Public FichieràTraiter As String
Sub Traitement()
FichieràTraiter = ""
FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path
FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable
(*.PNM)|*.PNM"
FormSélectionFichier.CommonDialog1.ShowOpen
FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename
If Dir(FichieràTraiter) = "" Then
MsgBox "Fichier inexistant"
Exit Sub
End If
If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then
MsgBox "Ce fichier n'a pas pour extension PNM"
Exit Sub
End If
........
end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler.
En VB classique il suffit de comparer à "" car c'est le code retour du
bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a
sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et
appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné
ou saisi et non pas "".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour Bernard,
Il me semble que c'est le test :
If Dir(FichieràTraiter) = "" Then
qui est erroné. Car si FichieràTraiter = "" , Dir(FichieràTraiter) te renverras le premier nom de fichier du répertoire.
Essaie directement :
If FichieràTraiter = "" Then MsgBox "Annulé"
Bonjour, je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog Control version 6.0 ) et dans un module j'ai le code suivant appelé par un simple bouton sur la feuille Excel :
Public FichieràTraiter As String Sub Traitement() FichieràTraiter = "" FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable (*.PNM)|*.PNM" FormSélectionFichier.CommonDialog1.ShowOpen FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename If Dir(FichieràTraiter) = "" Then MsgBox "Fichier inexistant" Exit Sub End If If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then MsgBox "Ce fichier n'a pas pour extension PNM" Exit Sub End If ......... end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler. En VB classique il suffit de comparer à "" car c'est le code retour du bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné ou saisi et non pas "".
Donc comment récupérer l'info.
D'avance merci à tous pour votre aide.
Bernard
-- Cordialement,
Jacques.
Bonjour Bernard,
Il me semble que c'est le test :
If Dir(FichieràTraiter) = "" Then
qui est erroné. Car si FichieràTraiter = "" , Dir(FichieràTraiter) te
renverras le premier nom de fichier du répertoire.
Essaie directement :
If FichieràTraiter = "" Then MsgBox "Annulé"
Bonjour,
je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec
juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog
Control version 6.0 ) et dans un module j'ai le code suivant appelé par un
simple bouton sur la feuille Excel :
Public FichieràTraiter As String
Sub Traitement()
FichieràTraiter = ""
FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path
FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable
(*.PNM)|*.PNM"
FormSélectionFichier.CommonDialog1.ShowOpen
FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename
If Dir(FichieràTraiter) = "" Then
MsgBox "Fichier inexistant"
Exit Sub
End If
If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then
MsgBox "Ce fichier n'a pas pour extension PNM"
Exit Sub
End If
.........
end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler.
En VB classique il suffit de comparer à "" car c'est le code retour du
bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a
sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et
appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné
ou saisi et non pas "".
qui est erroné. Car si FichieràTraiter = "" , Dir(FichieràTraiter) te renverras le premier nom de fichier du répertoire.
Essaie directement :
If FichieràTraiter = "" Then MsgBox "Annulé"
Bonjour, je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog Control version 6.0 ) et dans un module j'ai le code suivant appelé par un simple bouton sur la feuille Excel :
Public FichieràTraiter As String Sub Traitement() FichieràTraiter = "" FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable (*.PNM)|*.PNM" FormSélectionFichier.CommonDialog1.ShowOpen FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename If Dir(FichieràTraiter) = "" Then MsgBox "Fichier inexistant" Exit Sub End If If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then MsgBox "Ce fichier n'a pas pour extension PNM" Exit Sub End If ......... end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler. En VB classique il suffit de comparer à "" car c'est le code retour du bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné ou saisi et non pas "".
Donc comment récupérer l'info.
D'avance merci à tous pour votre aide.
Bernard
-- Cordialement,
Jacques.
Bernard
Bonjour Jacques93, hélas non car c'est juste un test pour vérifier l'existence du fichier, mais comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la procédure il conserve le fichier sélectionné dans le précédent traitement et ce même si on ne sélectionne rien. Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité. Bernard
Bonjour Bernard,
Il me semble que c'est le test :
If Dir(FichieràTraiter) = "" Then
qui est erroné. Car si FichieràTraiter = "" , Dir(FichieràTraiter) te renverras le premier nom de fichier du répertoire.
Essaie directement :
If FichieràTraiter = "" Then MsgBox "Annulé"
Bonjour, je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog Control version 6.0 ) et dans un module j'ai le code suivant appelé par un simple bouton sur la feuille Excel :
Public FichieràTraiter As String Sub Traitement() FichieràTraiter = "" FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable (*.PNM)|*.PNM" FormSélectionFichier.CommonDialog1.ShowOpen FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename If Dir(FichieràTraiter) = "" Then MsgBox "Fichier inexistant" Exit Sub End If If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then MsgBox "Ce fichier n'a pas pour extension PNM" Exit Sub End If ......... end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler. En VB classique il suffit de comparer à "" car c'est le code retour du bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné ou saisi et non pas "".
Donc comment récupérer l'info.
D'avance merci à tous pour votre aide.
Bernard
-- Cordialement,
Jacques.
Bonjour Jacques93,
hélas non car c'est juste un test pour vérifier l'existence du fichier, mais
comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur
Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas
tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la
procédure il conserve le fichier sélectionné dans le précédent traitement et
ce même si on ne sélectionne rien.
Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité.
Bernard
Bonjour Bernard,
Il me semble que c'est le test :
If Dir(FichieràTraiter) = "" Then
qui est erroné. Car si FichieràTraiter = "" , Dir(FichieràTraiter) te
renverras le premier nom de fichier du répertoire.
Essaie directement :
If FichieràTraiter = "" Then MsgBox "Annulé"
Bonjour,
je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec
juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog
Control version 6.0 ) et dans un module j'ai le code suivant appelé par un
simple bouton sur la feuille Excel :
Public FichieràTraiter As String
Sub Traitement()
FichieràTraiter = ""
FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path
FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable
(*.PNM)|*.PNM"
FormSélectionFichier.CommonDialog1.ShowOpen
FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename
If Dir(FichieràTraiter) = "" Then
MsgBox "Fichier inexistant"
Exit Sub
End If
If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then
MsgBox "Ce fichier n'a pas pour extension PNM"
Exit Sub
End If
.........
end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler.
En VB classique il suffit de comparer à "" car c'est le code retour du
bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a
sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et
appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné
ou saisi et non pas "".
Bonjour Jacques93, hélas non car c'est juste un test pour vérifier l'existence du fichier, mais comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la procédure il conserve le fichier sélectionné dans le précédent traitement et ce même si on ne sélectionne rien. Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité. Bernard
Bonjour Bernard,
Il me semble que c'est le test :
If Dir(FichieràTraiter) = "" Then
qui est erroné. Car si FichieràTraiter = "" , Dir(FichieràTraiter) te renverras le premier nom de fichier du répertoire.
Essaie directement :
If FichieràTraiter = "" Then MsgBox "Annulé"
Bonjour, je travaille sur Excel 2000, j'ai une forme vide (FormSélectionFichier) avec juste dedans un CommonDialog1 (COMDLG32.OCX de la Microsoft Common Dialog Control version 6.0 ) et dans un module j'ai le code suivant appelé par un simple bouton sur la feuille Excel :
Public FichieràTraiter As String Sub Traitement() FichieràTraiter = "" FormSélectionFichier.CommonDialog1.InitDir = ActiveWorkbook.Path FormSélectionFichier.CommonDialog1.Filter = "Fichier passation comptable (*.PNM)|*.PNM" FormSélectionFichier.CommonDialog1.ShowOpen FichieràTraiter = FormSélectionFichier.CommonDialog1.Filename If Dir(FichieràTraiter) = "" Then MsgBox "Fichier inexistant" Exit Sub End If If UCase(Mid(FichieràTraiter, InStr(1, FichieràTraiter, "."))) <> ".PNM" Then MsgBox "Ce fichier n'a pas pour extension PNM" Exit Sub End If ......... end sub
Je voudrais traiter le fait que la personne appuie sur le bouton Annuler. En VB classique il suffit de comparer à "" car c'est le code retour du bouton Annuler pour une boîte de dialogue. Or là si l'utilisateur a sélectionné un fichier ou taper lui-même un nom de fichier puis se ravise et appuie sur le bouton Annuler le code retour est le nom du fichier sélectionné ou saisi et non pas "".
Donc comment récupérer l'info.
D'avance merci à tous pour votre aide.
Bernard
-- Cordialement,
Jacques.
Jacques93
Chez moi, FichieràTraiter est vide si on clique sur Annuler, d'où ma réponse. A condition d'ajouter :
Me.CommonDialog1.FileName = ""
avant
Me.CommonDialog1.ShowOpen
Excel 2003 et ComDlg32.ocx 6.0
Bonjour Jacques93, hélas non car c'est juste un test pour vérifier l'existence du fichier, mais comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la procédure il conserve le fichier sélectionné dans le précédent traitement et ce même si on ne sélectionne rien. Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité. Bernard
-- Cordialement,
Jacques.
Chez moi, FichieràTraiter est vide si on clique sur Annuler, d'où ma
réponse. A condition d'ajouter :
Me.CommonDialog1.FileName = ""
avant
Me.CommonDialog1.ShowOpen
Excel 2003 et ComDlg32.ocx 6.0
Bonjour Jacques93,
hélas non car c'est juste un test pour vérifier l'existence du fichier, mais
comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur
Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas
tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la
procédure il conserve le fichier sélectionné dans le précédent traitement et
ce même si on ne sélectionne rien.
Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité.
Bernard
Chez moi, FichieràTraiter est vide si on clique sur Annuler, d'où ma réponse. A condition d'ajouter :
Me.CommonDialog1.FileName = ""
avant
Me.CommonDialog1.ShowOpen
Excel 2003 et ComDlg32.ocx 6.0
Bonjour Jacques93, hélas non car c'est juste un test pour vérifier l'existence du fichier, mais comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la procédure il conserve le fichier sélectionné dans le précédent traitement et ce même si on ne sélectionne rien. Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité. Bernard
-- Cordialement,
Jacques.
Bernard
Merci Jacques93, effectivement il faut bien forcer la réinitialisation par FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là c'est normal).
Merci encore Bernard
Chez moi, FichieràTraiter est vide si on clique sur Annuler, d'où ma réponse. A condition d'ajouter :
Me.CommonDialog1.FileName = ""
avant
Me.CommonDialog1.ShowOpen
Excel 2003 et ComDlg32.ocx 6.0
Bonjour Jacques93, hélas non car c'est juste un test pour vérifier l'existence du fichier, mais comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la procédure il conserve le fichier sélectionné dans le précédent traitement et ce même si on ne sélectionne rien. Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité. Bernard
-- Cordialement,
Jacques.
Merci Jacques93,
effectivement il faut bien forcer la réinitialisation par
FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que
cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et
c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là
c'est normal).
Merci encore
Bernard
Chez moi, FichieràTraiter est vide si on clique sur Annuler, d'où ma
réponse. A condition d'ajouter :
Me.CommonDialog1.FileName = ""
avant
Me.CommonDialog1.ShowOpen
Excel 2003 et ComDlg32.ocx 6.0
Bonjour Jacques93,
hélas non car c'est juste un test pour vérifier l'existence du fichier, mais
comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur
Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas
tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la
procédure il conserve le fichier sélectionné dans le précédent traitement et
ce même si on ne sélectionne rien.
Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité.
Bernard
Merci Jacques93, effectivement il faut bien forcer la réinitialisation par FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là c'est normal).
Merci encore Bernard
Chez moi, FichieràTraiter est vide si on clique sur Annuler, d'où ma réponse. A condition d'ajouter :
Me.CommonDialog1.FileName = ""
avant
Me.CommonDialog1.ShowOpen
Excel 2003 et ComDlg32.ocx 6.0
Bonjour Jacques93, hélas non car c'est juste un test pour vérifier l'existence du fichier, mais comme je l'ai écrit FichieràTraiter n'est pas vide quand on appuie sur Annuler sauf si l'on a rien sélectionné ou rien saisi. Et même cela n'est pas tout à fait vrai car si on relance (sans avoir fermé le fichier Excel) la procédure il conserve le fichier sélectionné dans le précédent traitement et ce même si on ne sélectionne rien. Donc c'est bien l'interception de l'appui sur le bouton annuler qu'il me faut.
Merci quand même et sutout pour la rapidité. Bernard
-- Cordialement,
Jacques.
Jacques93
Bonjour Bernard
Merci Jacques93, effectivement il faut bien forcer la réinitialisation par FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là c'est normal).
Pour compléter, il y a une propriété qui permet de savoir si on a cliqué sur le bouton Annuler :
CommonDialog1.CancelError = True
qui génére une erreur 32755 'La commande Annuler a été sélectionnée' que l'ont peut utiliser avec la gestion d'erreur :
CommonDialog1.CancelError = True On Error Resume Next Err.Clear CommonDialog1.ShowOpen If Err.Number = 32755 Then MsgBox "Click sur Annuler" Else Traitement End If
Cela fonction sous VB6, mais sous VBA Excel 2003, l'erreur n'est pas générée.
-- Cordialement,
Jacques.
Bonjour Bernard
Merci Jacques93,
effectivement il faut bien forcer la réinitialisation par
FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que
cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et
c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là
c'est normal).
Pour compléter, il y a une propriété qui permet de savoir si on a cliqué
sur le bouton Annuler :
CommonDialog1.CancelError = True
qui génére une erreur 32755 'La commande Annuler a été sélectionnée' que
l'ont peut utiliser avec la gestion d'erreur :
CommonDialog1.CancelError = True
On Error Resume Next
Err.Clear
CommonDialog1.ShowOpen
If Err.Number = 32755 Then
MsgBox "Click sur Annuler"
Else
Traitement
End If
Cela fonction sous VB6, mais sous VBA Excel 2003, l'erreur n'est pas
générée.
Merci Jacques93, effectivement il faut bien forcer la réinitialisation par FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là c'est normal).
Pour compléter, il y a une propriété qui permet de savoir si on a cliqué sur le bouton Annuler :
CommonDialog1.CancelError = True
qui génére une erreur 32755 'La commande Annuler a été sélectionnée' que l'ont peut utiliser avec la gestion d'erreur :
CommonDialog1.CancelError = True On Error Resume Next Err.Clear CommonDialog1.ShowOpen If Err.Number = 32755 Then MsgBox "Click sur Annuler" Else Traitement End If
Cela fonction sous VB6, mais sous VBA Excel 2003, l'erreur n'est pas générée.
-- Cordialement,
Jacques.
Bernard
Bonjour Jacques93, merci cela peut toujours servir sous VB, dommage que VB Excel ne gère pas tout comme VB.
Cordialement Bernard
Bonjour Bernard
Merci Jacques93, effectivement il faut bien forcer la réinitialisation par FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là c'est normal).
Pour compléter, il y a une propriété qui permet de savoir si on a cliqué sur le bouton Annuler :
CommonDialog1.CancelError = True
qui génére une erreur 32755 'La commande Annuler a été sélectionnée' que l'ont peut utiliser avec la gestion d'erreur :
CommonDialog1.CancelError = True On Error Resume Next Err.Clear CommonDialog1.ShowOpen If Err.Number = 32755 Then MsgBox "Click sur Annuler" Else Traitement End If
Cela fonction sous VB6, mais sous VBA Excel 2003, l'erreur n'est pas générée.
-- Cordialement,
Jacques.
Bonjour Jacques93,
merci cela peut toujours servir sous VB, dommage que VB Excel ne gère pas
tout comme VB.
Cordialement
Bernard
Bonjour Bernard
Merci Jacques93,
effectivement il faut bien forcer la réinitialisation par
FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que
cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et
c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là
c'est normal).
Pour compléter, il y a une propriété qui permet de savoir si on a cliqué
sur le bouton Annuler :
CommonDialog1.CancelError = True
qui génére une erreur 32755 'La commande Annuler a été sélectionnée' que
l'ont peut utiliser avec la gestion d'erreur :
CommonDialog1.CancelError = True
On Error Resume Next
Err.Clear
CommonDialog1.ShowOpen
If Err.Number = 32755 Then
MsgBox "Click sur Annuler"
Else
Traitement
End If
Cela fonction sous VB6, mais sous VBA Excel 2003, l'erreur n'est pas
générée.
Bonjour Jacques93, merci cela peut toujours servir sous VB, dommage que VB Excel ne gère pas tout comme VB.
Cordialement Bernard
Bonjour Bernard
Merci Jacques93, effectivement il faut bien forcer la réinitialisation par FormSélectionFichier.CommonDialog1.Filename = "", j'avoue que je pensais que cela se faisait implicitement à l'ouverture de la fenêtre de dialogue et c'est pour cela que je ne réinitialisais que ma variable FichieràTraiter (là c'est normal).
Pour compléter, il y a une propriété qui permet de savoir si on a cliqué sur le bouton Annuler :
CommonDialog1.CancelError = True
qui génére une erreur 32755 'La commande Annuler a été sélectionnée' que l'ont peut utiliser avec la gestion d'erreur :
CommonDialog1.CancelError = True On Error Resume Next Err.Clear CommonDialog1.ShowOpen If Err.Number = 32755 Then MsgBox "Click sur Annuler" Else Traitement End If
Cela fonction sous VB6, mais sous VBA Excel 2003, l'erreur n'est pas générée.