Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment désactiver le bouton annuler du message box d'excel

11 réponses
Avatar
Sarrel
Bonjour,

Dans un fichier excel, j'a un code VBA qui s'exécute
au démarrage et qui pour rôle de fermer tous les autres
classeurs excel ouverts suaf celui qui contient le code.
Par ailleurs, j'autorise l'apparition du message box automatique
d'excel qui demande d'enregister les fichiers avant de les fermer.
si on répond à ce message oui ou non la fermeture des fichiers se
fait sans problème, par contre si j'annule sur message box alors
je reçois un message d'erreur.
Pouvez m'aider à contourner ce bouton annuler.

Merci de votre aide

10 réponses

1 2
Avatar
michdenis
Bonjour,

As-tu des procédures événementielles dans le thisworkbook du classeur ?

Quel est le message d'erreur que tu reçois ?

| j'autorise l'apparition du message box automatique
***C'est une boîte d'Excel ou une que tu as programmée ?



"Sarrel" a écrit dans le message de groupe de
discussion :
Bonjour,

Dans un fichier excel, j'a un code VBA qui s'exécute
au démarrage et qui pour rôle de fermer tous les autres
classeurs excel ouverts suaf celui qui contient le code.
Par ailleurs, j'autorise l'apparition du message box automatique
d'excel qui demande d'enregister les fichiers avant de les fermer.
si on répond à ce message oui ou non la fermeture des fichiers se
fait sans problème, par contre si j'annule sur message box alors
je reçois un message d'erreur.
Pouvez m'aider à contourner ce bouton annuler.

Merci de votre aide
Avatar
LE TROLL
Bonjour,

Le code qui plante stp ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Sarrel" a écrit dans le message de
news:
Bonjour,

Dans un fichier excel, j'a un code VBA qui s'exécute
au démarrage et qui pour rôle de fermer tous les autres
classeurs excel ouverts suaf celui qui contient le code.
Par ailleurs, j'autorise l'apparition du message box automatique
d'excel qui demande d'enregister les fichiers avant de les fermer.
si on répond à ce message oui ou non la fermeture des fichiers se
fait sans problème, par contre si j'annule sur message box alors
je reçois un message d'erreur.
Pouvez m'aider à contourner ce bouton annuler.

Merci de votre aide


Avatar
Sarrel
Merci de ton support,
Non pas de procédure dans le thisworkbook du classeur
le bout de code que je met dans userform_initialize est:
For Each Wbk In Workbooks
If Wbk.Name <> ThisWorkbook.Name Then
Wbk.Saved = False
Wbk.Close
End If
et quand j'appelle l'userform le message box apparaît sur l'autre fichier
excel ouvert pour l'enregister avant fermeture si nécessaire. Par contre si
on répond annuler sur message box, on reçoit le message suivant:
Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.


"michdenis" a écrit :

Bonjour,

As-tu des procédures événementielles dans le thisworkbook du classeur ?

Quel est le message d'erreur que tu reçois ?

| j'autorise l'apparition du message box automatique
***C'est une boîte d'Excel ou une que tu as programmée ?



"Sarrel" a écrit dans le message de groupe de
discussion :
Bonjour,

Dans un fichier excel, j'a un code VBA qui s'exécute
au démarrage et qui pour rôle de fermer tous les autres
classeurs excel ouverts suaf celui qui contient le code.
Par ailleurs, j'autorise l'apparition du message box automatique
d'excel qui demande d'enregister les fichiers avant de les fermer.
si on répond à ce message oui ou non la fermeture des fichiers se
fait sans problème, par contre si j'annule sur message box alors
je reçois un message d'erreur.
Pouvez m'aider à contourner ce bouton annuler.

Merci de votre aide



Avatar
Sarrel
Merci de ton support,
Non pas de procédure dans le thisworkbook du classeur
le bout de code que je met dans userform_initialize est:
For Each Wbk In Workbooks
If Wbk.Name <> ThisWorkbook.Name Then
Wbk.Saved = False
Wbk.Close
End If
et quand j'appelle l'userform le message box apparaît sur l'autre fichier
excel ouvert pour l'enregister avant fermeture si nécessaire. Par contre si
on répond annuler sur message box, on reçoit le message suivant:
Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.


"LE TROLL" a écrit :

Bonjour,

Le code qui plante stp ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Sarrel" a écrit dans le message de
news:
> Bonjour,
>
> Dans un fichier excel, j'a un code VBA qui s'exécute
> au démarrage et qui pour rôle de fermer tous les autres
> classeurs excel ouverts suaf celui qui contient le code.
> Par ailleurs, j'autorise l'apparition du message box automatique
> d'excel qui demande d'enregister les fichiers avant de les fermer.
> si on répond à ce message oui ou non la fermeture des fichiers se
> fait sans problème, par contre si j'annule sur message box alors
> je reçois un message d'erreur.
> Pouvez m'aider à contourner ce bouton annuler.
>
> Merci de votre aide



Avatar
Daniel.C
Bonjour.
Je n'ai pas pu reproduire le problème. Quelle est exactement la ligne
en erreur ?
Daniel

Merci de ton support,
Non pas de procédure dans le thisworkbook du classeur
le bout de code que je met dans userform_initialize est:
For Each Wbk In Workbooks
If Wbk.Name <> ThisWorkbook.Name Then
Wbk.Saved = False
Wbk.Close
End If
et quand j'appelle l'userform le message box apparaît sur l'autre fichier
excel ouvert pour l'enregister avant fermeture si nécessaire. Par contre si
on répond annuler sur message box, on reçoit le message suivant:
Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.


"michdenis" a écrit :

Bonjour,

As-tu des procédures événementielles dans le thisworkbook du classeur ?

Quel est le message d'erreur que tu reçois ?

j'autorise l'apparition du message box automatique


***C'est une boîte d'Excel ou une que tu as programmée ?



"Sarrel" a écrit dans le message de
groupe de discussion :
Bonjour,

Dans un fichier excel, j'a un code VBA qui s'exécute
au démarrage et qui pour rôle de fermer tous les autres
classeurs excel ouverts suaf celui qui contient le code.
Par ailleurs, j'autorise l'apparition du message box automatique
d'excel qui demande d'enregister les fichiers avant de les fermer.
si on répond à ce message oui ou non la fermeture des fichiers se
fait sans problème, par contre si j'annule sur message box alors
je reçois un message d'erreur.
Pouvez m'aider à contourner ce bouton annuler.

Merci de votre aide





Avatar
LSteph
Bonjour,

AMHA ce serait un pb de msgbox si tu l'avais fait surgir, mais
puisque tu dis que c'est (ca y se ressempble comme deux gouttes
d'eau) le dialogbox de l'application qui surgit pour enregistrer le
classeur ou pas
tu as deux options:
1-Soit tu sais si il faut enregistrer ou pas et tu le fais en listant
les classeurs avant puis tu ajoute dans ta procèdure sortante
'audébut
application.displayalertslse
'alafin
application.displayalerts=true

2-Soit tu ne sais pas et souhaites donner ce choix à l'utilisateur
tu lui mets la question en listant les classeurs ouverts par la
procèdure qui s'en charge
en prenant soin d'utiliser
application.enablecancelkey
cf aide sur enablecancelkey ou le topic sur lequel j'ai fourni un
exemple la semaine passée.

--
LSteph

On 1 mar, 08:44, Sarrel wrote:
Merci de ton support,
Non pas de procédure dans le thisworkbook du classeur
le bout de code que je met dans userform_initialize est:
For Each Wbk In Workbooks
     If Wbk.Name <> ThisWorkbook.Name Then
     Wbk.Saved = False
     Wbk.Close
     End If
et quand j'appelle l'userform le message box apparaît sur l'autre fichi er
excel ouvert pour l'enregister avant fermeture si nécessaire. Par contr e si
on répond annuler sur message box, on reçoit le message suivant:
Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.

"LE TROLL" a écrit :



>         Bonjour,

>     Le code qui plante stp ?

>     Cordialement ;o)
> -
> Logiciels, romans, contacts :http://irolog.free.fr
> _______________________
> .
> .

> "Sarrel" a écrit dans le message d e
>news:
> > Bonjour,

> > Dans un fichier excel, j'a un code VBA qui s'exécute
> > au démarrage et qui pour rôle de fermer tous les autres
> > classeurs excel ouverts suaf celui qui contient le code.
> > Par ailleurs, j'autorise l'apparition du message box automatique
> > d'excel qui demande d'enregister les fichiers avant de les fermer.
> > si on répond à ce message oui ou non la fermeture des fichiers se
> > fait sans problème, par contre si j'annule sur message box alors
> > je reçois un message d'erreur.
> > Pouvez m'aider à contourner ce bouton annuler.

> > Merci de votre aide- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
LSteph
'c'était ceci

Sub All_CancelKeyClose()


Dim wb As Workbook
On Error GoTo hndc
Application.EnableCancelKey = xlErrorHandler
MsgBox "si vous interrompez, tout sera fermé"


'on ouvre un classeur qui dit bonjour
ChDir "C:"
Workbooks.Open Filename:="C:bonjour.xls"
ActiveWorkbook.Close False
'a la place on peut appeler une macro


hndc:
Application.DisplayAlerts = False
For Each wb In Application.Workbooks
wb.Close False
Next
Windows(1).Close
Application.DisplayAlerts = True


End Sub


'lSteph
Avatar
Sarrel
En fait, l'erreur se produit car au même temps que j'essaie de fermer les
autres fichiers excel, j'ouvre aussi un formulaire sur mon fichier de travail
et comme le message box s'ouvre sur le fichier à fermer, l'userform que
j'ouvre se trouve sur la même feuille du fichier à fermer et là ça bug ,
normal car je sélectionne une feuille qui pas la bonne.
En fait ce que je voudrais mettre comme instruction c'est:
si le choix de la réponse au message box est "annuler" alors exit sub.
Mais je n'arrive pas pour l'instant!
Merci de ton support

"Daniel.C" a écrit :

Bonjour.
Je n'ai pas pu reproduire le problème. Quelle est exactement la ligne
en erreur ?
Daniel

> Merci de ton support,
> Non pas de procédure dans le thisworkbook du classeur
> le bout de code que je met dans userform_initialize est:
> For Each Wbk In Workbooks
> If Wbk.Name <> ThisWorkbook.Name Then
> Wbk.Saved = False
> Wbk.Close
> End If
> et quand j'appelle l'userform le message box apparaît sur l'autre fichier
> excel ouvert pour l'enregister avant fermeture si nécessaire. Par contre si
> on répond annuler sur message box, on reçoit le message suivant:
> Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.
>
>
> "michdenis" a écrit :
>
>> Bonjour,
>>
>> As-tu des procédures événementielles dans le thisworkbook du classeur ?
>>
>> Quel est le message d'erreur que tu reçois ?
>>
>>> j'autorise l'apparition du message box automatique
>> ***C'est une boîte d'Excel ou une que tu as programmée ?
>>
>>
>>
>> "Sarrel" a écrit dans le message de
>> groupe de discussion :
>> Bonjour,
>>
>> Dans un fichier excel, j'a un code VBA qui s'exécute
>> au démarrage et qui pour rôle de fermer tous les autres
>> classeurs excel ouverts suaf celui qui contient le code.
>> Par ailleurs, j'autorise l'apparition du message box automatique
>> d'excel qui demande d'enregister les fichiers avant de les fermer.
>> si on répond à ce message oui ou non la fermeture des fichiers se
>> fait sans problème, par contre si j'annule sur message box alors
>> je reçois un message d'erreur.
>> Pouvez m'aider à contourner ce bouton annuler.
>>
>> Merci de votre aide
>>


.



Avatar
Daniel.C
Affiche un inputbox avant de fermer le fichier pour demandeer à
l'utilisateur s'il compte ou non enregistrer le fichier. Ensuite tu le
fermes avec l'option de sauvegarde positionnée à true ou false. Si
l'utilisateur clique sur "Annul" tu fais ce que tu veux.
Daniel

En fait, l'erreur se produit car au même temps que j'essaie de fermer les
autres fichiers excel, j'ouvre aussi un formulaire sur mon fichier de travail
et comme le message box s'ouvre sur le fichier à fermer, l'userform que
j'ouvre se trouve sur la même feuille du fichier à fermer et là ça bug ,
normal car je sélectionne une feuille qui pas la bonne.
En fait ce que je voudrais mettre comme instruction c'est:
si le choix de la réponse au message box est "annuler" alors exit sub.
Mais je n'arrive pas pour l'instant!
Merci de ton support

"Daniel.C" a écrit :

Bonjour.
Je n'ai pas pu reproduire le problème. Quelle est exactement la ligne
en erreur ?
Daniel

Merci de ton support,
Non pas de procédure dans le thisworkbook du classeur
le bout de code que je met dans userform_initialize est:
For Each Wbk In Workbooks
If Wbk.Name <> ThisWorkbook.Name Then
Wbk.Saved = False
Wbk.Close
End If
et quand j'appelle l'userform le message box apparaît sur l'autre fichier
excel ouvert pour l'enregister avant fermeture si nécessaire. Par contre si
on répond annuler sur message box, on reçoit le message suivant:
Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.


"michdenis" a écrit :

Bonjour,

As-tu des procédures événementielles dans le thisworkbook du classeur ?

Quel est le message d'erreur que tu reçois ?

j'autorise l'apparition du message box automatique


***C'est une boîte d'Excel ou une que tu as programmée ?



"Sarrel" a écrit dans le message de
groupe de discussion :
Bonjour,

Dans un fichier excel, j'a un code VBA qui s'exécute
au démarrage et qui pour rôle de fermer tous les autres
classeurs excel ouverts suaf celui qui contient le code.
Par ailleurs, j'autorise l'apparition du message box automatique
d'excel qui demande d'enregister les fichiers avant de les fermer.
si on répond à ce message oui ou non la fermeture des fichiers se
fait sans problème, par contre si j'annule sur message box alors
je reçois un message d'erreur.
Pouvez m'aider à contourner ce bouton annuler.

Merci de votre aide







.





Avatar
michdenis
Je ne comprends pas le sens de cette ligne de code
Wbk.Saved = False dans ta procédure.

A -
Si tu veux qu'Excel considère ton fichier comme sauvegardé,
Wbk.Saved devrait être à True. Comme il et à False, Excel va
te demander explicitement si tu veux sauvegarder le fichier
même si ce dernier n'a pas une seule modification. La ligne
de code "Wbk.Close" lance la fermeture du fichier et aussi
la boîte de dialogue "Désirez-vous sauvegarder ..." si le fichier
a subi des modifications depuis son ouverture. Pourquoi la
répétition de la commande ?

B - Je suppose que tu dois avoir une procédure qui a pour
but d'ouvrir ton formulaire. Pourquoi ne pas insérer ton
code dans cette procédure juste avant l'ouverture de ce
dernier.

C - Tu peux toujours employer la ligne de code suivante au
début de ta procédure actuelle :
On Error Resume Next

'-------------------------
Sub Ouvrir le Formulaire()
For Each Wbk In Workbooks
If Wbk.Name <> ThisWorkbook.Name Then
' Wbk.Saved = False
Wbk.Close
End If
MonFormulaire.Show 0
'-------------------------





"Sarrel" a écrit dans le message de groupe de
discussion :
En fait, l'erreur se produit car au même temps que j'essaie de fermer les
autres fichiers excel, j'ouvre aussi un formulaire sur mon fichier de travail
et comme le message box s'ouvre sur le fichier à fermer, l'userform que
j'ouvre se trouve sur la même feuille du fichier à fermer et là ça bug ,
normal car je sélectionne une feuille qui pas la bonne.
En fait ce que je voudrais mettre comme instruction c'est:
si le choix de la réponse au message box est "annuler" alors exit sub.
Mais je n'arrive pas pour l'instant!
Merci de ton support

"Daniel.C" a écrit :

Bonjour.
Je n'ai pas pu reproduire le problème. Quelle est exactement la ligne
en erreur ?
Daniel

> Merci de ton support,
> Non pas de procédure dans le thisworkbook du classeur
> le bout de code que je met dans userform_initialize est:
> For Each Wbk In Workbooks
> If Wbk.Name <> ThisWorkbook.Name Then
> Wbk.Saved = False
> Wbk.Close
> End If
> et quand j'appelle l'userform le message box apparaît sur l'autre fichier
> excel ouvert pour l'enregister avant fermeture si nécessaire. Par contre si
> on répond annuler sur message box, on reçoit le message suivant:
> Erreur d'éxécution '9': l'indice n'appartient pas à la sélection.
>
>
> "michdenis" a écrit :
>
>> Bonjour,
>>
>> As-tu des procédures événementielles dans le thisworkbook du classeur ?
>>
>> Quel est le message d'erreur que tu reçois ?
>>
>>> j'autorise l'apparition du message box automatique
>> ***C'est une boîte d'Excel ou une que tu as programmée ?
>>
>>
>>
>> "Sarrel" a écrit dans le message de
>> groupe de discussion :
>> Bonjour,
>>
>> Dans un fichier excel, j'a un code VBA qui s'exécute
>> au démarrage et qui pour rôle de fermer tous les autres
>> classeurs excel ouverts suaf celui qui contient le code.
>> Par ailleurs, j'autorise l'apparition du message box automatique
>> d'excel qui demande d'enregister les fichiers avant de les fermer.
>> si on répond à ce message oui ou non la fermeture des fichiers se
>> fait sans problème, par contre si j'annule sur message box alors
>> je reçois un message d'erreur.
>> Pouvez m'aider à contourner ce bouton annuler.
>>
>> Merci de votre aide
>>


.



1 2