Bonjour à vous,
le sujet a surement déjà été évoqué, m'enfin je pose quand même la question,
désolé ...
j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais
travailler.
A sa fermeture une question est posée :
- modifier une cellule particulière, enregistrer et fermer le classeur
- ne rien sauvegarder et fermer le classeur
Dans le code de l'userform("usfDate"), la zone de texte contient :
"Voulez-vous modifier la date de mise à jour, enregistrer le classeur puis
le fermer ?"
pour les deux boutons, les codes :
Private Sub cmdNon_Click()
'fermeture sans rien enregistrer
Application.DisplayAlerts = False
ActiveWorkbook.Close (False)
End Sub
Private Sub cmdOui_Click()
'écriture de la date système
Sheets("Infos").Range("B7").Value = Date
'fermeture du classeur actif, avec enregistrement des changements
ActiveWorkbook.Save
ActiveWorkbook.Close '(True)
End Sub
Dans le code du classeur j'ai placé :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Application.DisplayAlerts = False
usfDate.Show
End Sub
J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug !
J'ai une erreur 400, (feuille déjà affichée; affichage modal impossible)
La réponse à mon problème doit surement être devant mon nez, mais je ne la
vois pas !...
Merci de votre assistance.
Cordialement.
Eliot.
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
francois.forcet
On 3 déc, 15:49, Eliot Naiss wrote:
Bonjour à vous, le sujet a surement déjà été évoqué, m'enfin je pose quand m ême la question, désolé ... j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais travailler. A sa fermeture une question est posée : - modifier une cellule particulière, enregistrer et fermer le classeur - ne rien sauvegarder et fermer le classeur Dans le code de l'userform("usfDate"), la zone de texte contient : "Voulez-vous modifier la date de mise à jour, enregistrer le classeur pu is le fermer ?" pour les deux boutons, les codes : Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False ActiveWorkbook.Close (False) End Sub
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save ActiveWorkbook.Close '(True) End Sub
Dans le code du classeur j'ai placé : Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Application.DisplayAlerts = False usfDate.Show End Sub J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug ! J'ai une erreur 400, (feuille déjà affichée; affichage modal impossi ble)
La réponse à mon problème doit surement être devant mon nez, mais je ne la vois pas !... Merci de votre assistance. Cordialement. Eliot.
Salut à toi
Ton bug est tout à fait normal
A la fermeture tu commande l'affichage de ton Userform par le code du Thisworkbook Lorsque tu cliques sur l'un des boutons de ce Userform tu commande une 2° fermeture par le code VBA de tes boutons par la ligne de commande :
ActiveWorkbook.Close
ce qui active un 2° fois la macro du Thisworkbook et donc l'affichage de ton Userform déjà affiché et donc ton plantage
2 solutions :
la première consiste de modifier ainsi les codes de tes boutons :
Bouton Non :
Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False usfDate.Hide End Sub
Bouton Oui :
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save usfDate.Hide End Sub
cette solution est la plus propre
La deuxième solution consiste à s'affranchir de ton message d'erreur en incluant la ligne de commande suivant en tête de code de ton Thisworkbook :
On Error Resume Next
ce qui donne pour le This Workbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next usfDate.Show End Sub
A toi de voir mais tu devrais trouver ainsi ton bonheur
Dis moi !!!!
On 3 déc, 15:49, Eliot Naiss <EliotNa...@discussions.microsoft.com>
wrote:
Bonjour à vous,
le sujet a surement déjà été évoqué, m'enfin je pose quand m ême la question,
désolé ...
j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais
travailler.
A sa fermeture une question est posée :
- modifier une cellule particulière, enregistrer et fermer le classeur
- ne rien sauvegarder et fermer le classeur
Dans le code de l'userform("usfDate"), la zone de texte contient :
"Voulez-vous modifier la date de mise à jour, enregistrer le classeur pu is
le fermer ?"
pour les deux boutons, les codes :
Private Sub cmdNon_Click()
'fermeture sans rien enregistrer
Application.DisplayAlerts = False
ActiveWorkbook.Close (False)
End Sub
Private Sub cmdOui_Click()
'écriture de la date système
Sheets("Infos").Range("B7").Value = Date
'fermeture du classeur actif, avec enregistrement des changements
ActiveWorkbook.Save
ActiveWorkbook.Close '(True)
End Sub
Dans le code du classeur j'ai placé :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Application.DisplayAlerts = False
usfDate.Show
End Sub
J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug !
J'ai une erreur 400, (feuille déjà affichée; affichage modal impossi ble)
La réponse à mon problème doit surement être devant mon nez, mais je ne la
vois pas !...
Merci de votre assistance.
Cordialement.
Eliot.
Salut à toi
Ton bug est tout à fait normal
A la fermeture tu commande l'affichage de ton Userform par le code du
Thisworkbook
Lorsque tu cliques sur l'un des boutons de ce Userform tu commande une
2° fermeture par le code VBA de tes boutons par la ligne de commande :
ActiveWorkbook.Close
ce qui active un 2° fois la macro du Thisworkbook et donc l'affichage
de ton Userform déjà affiché et donc ton plantage
2 solutions :
la première consiste de modifier ainsi les codes de tes boutons :
Bouton Non :
Private Sub cmdNon_Click()
'fermeture sans rien enregistrer
Application.DisplayAlerts = False
usfDate.Hide
End Sub
Bouton Oui :
Private Sub cmdOui_Click()
'écriture de la date système
Sheets("Infos").Range("B7").Value = Date
'fermeture du classeur actif, avec enregistrement des
changements
ActiveWorkbook.Save
usfDate.Hide
End Sub
cette solution est la plus propre
La deuxième solution consiste à s'affranchir de ton message d'erreur
en incluant la ligne de commande suivant en tête de code de ton
Thisworkbook :
On Error Resume Next
ce qui donne pour le This Workbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
usfDate.Show
End Sub
A toi de voir mais tu devrais trouver ainsi ton bonheur
Bonjour à vous, le sujet a surement déjà été évoqué, m'enfin je pose quand m ême la question, désolé ... j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais travailler. A sa fermeture une question est posée : - modifier une cellule particulière, enregistrer et fermer le classeur - ne rien sauvegarder et fermer le classeur Dans le code de l'userform("usfDate"), la zone de texte contient : "Voulez-vous modifier la date de mise à jour, enregistrer le classeur pu is le fermer ?" pour les deux boutons, les codes : Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False ActiveWorkbook.Close (False) End Sub
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save ActiveWorkbook.Close '(True) End Sub
Dans le code du classeur j'ai placé : Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Application.DisplayAlerts = False usfDate.Show End Sub J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug ! J'ai une erreur 400, (feuille déjà affichée; affichage modal impossi ble)
La réponse à mon problème doit surement être devant mon nez, mais je ne la vois pas !... Merci de votre assistance. Cordialement. Eliot.
Salut à toi
Ton bug est tout à fait normal
A la fermeture tu commande l'affichage de ton Userform par le code du Thisworkbook Lorsque tu cliques sur l'un des boutons de ce Userform tu commande une 2° fermeture par le code VBA de tes boutons par la ligne de commande :
ActiveWorkbook.Close
ce qui active un 2° fois la macro du Thisworkbook et donc l'affichage de ton Userform déjà affiché et donc ton plantage
2 solutions :
la première consiste de modifier ainsi les codes de tes boutons :
Bouton Non :
Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False usfDate.Hide End Sub
Bouton Oui :
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save usfDate.Hide End Sub
cette solution est la plus propre
La deuxième solution consiste à s'affranchir de ton message d'erreur en incluant la ligne de commande suivant en tête de code de ton Thisworkbook :
On Error Resume Next
ce qui donne pour le This Workbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next usfDate.Show End Sub
A toi de voir mais tu devrais trouver ainsi ton bonheur
Dis moi !!!!
Eliot Naiss
Bonsoir François, ta réponse m'a été d'un grand secours ! Avec une explication, je comprend mieux !! J'ai donc opté pour ta première solution, qui me va très bien. Encore merci. Cordialement. Eliot
On 3 déc, 15:49, Eliot Naiss wrote:
Bonjour à vous, le sujet a surement déjà été évoqué, m'enfin je pose quand même la question, désolé ... j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais travailler. A sa fermeture une question est posée : - modifier une cellule particulière, enregistrer et fermer le classeur - ne rien sauvegarder et fermer le classeur Dans le code de l'userform("usfDate"), la zone de texte contient : "Voulez-vous modifier la date de mise à jour, enregistrer le classeur puis le fermer ?" pour les deux boutons, les codes : Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False ActiveWorkbook.Close (False) End Sub
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save ActiveWorkbook.Close '(True) End Sub
Dans le code du classeur j'ai placé : Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Application.DisplayAlerts = False usfDate.Show End Sub J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug ! J'ai une erreur 400, (feuille déjà affichée; affichage modal impossible)
La réponse à mon problème doit surement être devant mon nez, mais je ne la vois pas !... Merci de votre assistance. Cordialement. Eliot.
Salut à toi
Ton bug est tout à fait normal
A la fermeture tu commande l'affichage de ton Userform par le code du Thisworkbook Lorsque tu cliques sur l'un des boutons de ce Userform tu commande une 2° fermeture par le code VBA de tes boutons par la ligne de commande :
ActiveWorkbook.Close
ce qui active un 2° fois la macro du Thisworkbook et donc l'affichage de ton Userform déjà affiché et donc ton plantage
2 solutions :
la première consiste de modifier ainsi les codes de tes boutons :
Bouton Non :
Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False usfDate.Hide End Sub
Bouton Oui :
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save usfDate.Hide End Sub
cette solution est la plus propre
La deuxième solution consiste à s'affranchir de ton message d'erreur en incluant la ligne de commande suivant en tête de code de ton Thisworkbook :
On Error Resume Next
ce qui donne pour le This Workbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next usfDate.Show End Sub
A toi de voir mais tu devrais trouver ainsi ton bonheur
Dis moi !!!!
Bonsoir François,
ta réponse m'a été d'un grand secours !
Avec une explication, je comprend mieux !!
J'ai donc opté pour ta première solution, qui me va très bien.
Encore merci.
Cordialement.
Eliot
On 3 déc, 15:49, Eliot Naiss <EliotNa...@discussions.microsoft.com>
wrote:
Bonjour à vous,
le sujet a surement déjà été évoqué, m'enfin je pose quand même la question,
désolé ...
j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais
travailler.
A sa fermeture une question est posée :
- modifier une cellule particulière, enregistrer et fermer le classeur
- ne rien sauvegarder et fermer le classeur
Dans le code de l'userform("usfDate"), la zone de texte contient :
"Voulez-vous modifier la date de mise à jour, enregistrer le classeur puis
le fermer ?"
pour les deux boutons, les codes :
Private Sub cmdNon_Click()
'fermeture sans rien enregistrer
Application.DisplayAlerts = False
ActiveWorkbook.Close (False)
End Sub
Private Sub cmdOui_Click()
'écriture de la date système
Sheets("Infos").Range("B7").Value = Date
'fermeture du classeur actif, avec enregistrement des changements
ActiveWorkbook.Save
ActiveWorkbook.Close '(True)
End Sub
Dans le code du classeur j'ai placé :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Application.DisplayAlerts = False
usfDate.Show
End Sub
J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug !
J'ai une erreur 400, (feuille déjà affichée; affichage modal impossible)
La réponse à mon problème doit surement être devant mon nez, mais je ne la
vois pas !...
Merci de votre assistance.
Cordialement.
Eliot.
Salut à toi
Ton bug est tout à fait normal
A la fermeture tu commande l'affichage de ton Userform par le code du
Thisworkbook
Lorsque tu cliques sur l'un des boutons de ce Userform tu commande une
2° fermeture par le code VBA de tes boutons par la ligne de commande :
ActiveWorkbook.Close
ce qui active un 2° fois la macro du Thisworkbook et donc l'affichage
de ton Userform déjà affiché et donc ton plantage
2 solutions :
la première consiste de modifier ainsi les codes de tes boutons :
Bouton Non :
Private Sub cmdNon_Click()
'fermeture sans rien enregistrer
Application.DisplayAlerts = False
usfDate.Hide
End Sub
Bouton Oui :
Private Sub cmdOui_Click()
'écriture de la date système
Sheets("Infos").Range("B7").Value = Date
'fermeture du classeur actif, avec enregistrement des
changements
ActiveWorkbook.Save
usfDate.Hide
End Sub
cette solution est la plus propre
La deuxième solution consiste à s'affranchir de ton message d'erreur
en incluant la ligne de commande suivant en tête de code de ton
Thisworkbook :
On Error Resume Next
ce qui donne pour le This Workbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
usfDate.Show
End Sub
A toi de voir mais tu devrais trouver ainsi ton bonheur
Bonsoir François, ta réponse m'a été d'un grand secours ! Avec une explication, je comprend mieux !! J'ai donc opté pour ta première solution, qui me va très bien. Encore merci. Cordialement. Eliot
On 3 déc, 15:49, Eliot Naiss wrote:
Bonjour à vous, le sujet a surement déjà été évoqué, m'enfin je pose quand même la question, désolé ... j'ai un classeur (http://cjoint.com/?mdpbvcdqiP) dans lequel je vais travailler. A sa fermeture une question est posée : - modifier une cellule particulière, enregistrer et fermer le classeur - ne rien sauvegarder et fermer le classeur Dans le code de l'userform("usfDate"), la zone de texte contient : "Voulez-vous modifier la date de mise à jour, enregistrer le classeur puis le fermer ?" pour les deux boutons, les codes : Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False ActiveWorkbook.Close (False) End Sub
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save ActiveWorkbook.Close '(True) End Sub
Dans le code du classeur j'ai placé : Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Application.DisplayAlerts = False usfDate.Show End Sub J'ai essayé vainement l'instruction DisplayAlerts, mais cela bug ! J'ai une erreur 400, (feuille déjà affichée; affichage modal impossible)
La réponse à mon problème doit surement être devant mon nez, mais je ne la vois pas !... Merci de votre assistance. Cordialement. Eliot.
Salut à toi
Ton bug est tout à fait normal
A la fermeture tu commande l'affichage de ton Userform par le code du Thisworkbook Lorsque tu cliques sur l'un des boutons de ce Userform tu commande une 2° fermeture par le code VBA de tes boutons par la ligne de commande :
ActiveWorkbook.Close
ce qui active un 2° fois la macro du Thisworkbook et donc l'affichage de ton Userform déjà affiché et donc ton plantage
2 solutions :
la première consiste de modifier ainsi les codes de tes boutons :
Bouton Non :
Private Sub cmdNon_Click() 'fermeture sans rien enregistrer Application.DisplayAlerts = False usfDate.Hide End Sub
Bouton Oui :
Private Sub cmdOui_Click() 'écriture de la date système Sheets("Infos").Range("B7").Value = Date 'fermeture du classeur actif, avec enregistrement des changements ActiveWorkbook.Save usfDate.Hide End Sub
cette solution est la plus propre
La deuxième solution consiste à s'affranchir de ton message d'erreur en incluant la ligne de commande suivant en tête de code de ton Thisworkbook :
On Error Resume Next
ce qui donne pour le This Workbook :
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next usfDate.Show End Sub
A toi de voir mais tu devrais trouver ainsi ton bonheur