Bonjour,
Affiche un message avant fermeture si les cellules G13 et/ou G16 ne sont
pas
remplies.
Et laisse le classeur ouvert.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Then
MsgBox "G13 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
If Range("G16") = "" Then
MsgBox "G16 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
End Sub
Bonjour,
Affiche un message avant fermeture si les cellules G13 et/ou G16 ne sont
pas
remplies.
Et laisse le classeur ouvert.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Then
MsgBox "G13 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
If Range("G16") = "" Then
MsgBox "G16 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
End Sub
Bonjour,
Affiche un message avant fermeture si les cellules G13 et/ou G16 ne sont
pas
remplies.
Et laisse le classeur ouvert.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Then
MsgBox "G13 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
If Range("G16") = "" Then
MsgBox "G16 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
End Sub
Re,
Il faut d'abord gérer le clic sur le bouton Oui ou Non
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
If Range("G13") = "" Then
MsgBox "G13 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
If Range("G16") = "" Then
MsgBox "G16 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
'Rajouter ici le code à executer si l'utilisateur à cliqué sur Oui
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
En version light :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter
..."
Cancel = True
End If
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
Re,
Il faut d'abord gérer le clic sur le bouton Oui ou Non
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
If Range("G13") = "" Then
MsgBox "G13 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
If Range("G16") = "" Then
MsgBox "G16 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
'Rajouter ici le code à executer si l'utilisateur à cliqué sur Oui
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
En version light :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter
..."
Cancel = True
End If
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
Re,
Il faut d'abord gérer le clic sur le bouton Oui ou Non
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
If Range("G13") = "" Then
MsgBox "G13 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
If Range("G16") = "" Then
MsgBox "G16 est vide, il faut la remplir avant de Quitter ..."
Cancel = True
End If
'Rajouter ici le code à executer si l'utilisateur à cliqué sur Oui
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
En version light :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter
..."
Cancel = True
End If
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le traitement
que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13 et
G1, à moins que l'utilsateur saisisse les données G13 et G16 à travers une
boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le traitement
que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13 et
G1, à moins que l'utilsateur saisisse les données G13 et G16 à travers une
boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le traitement
que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13 et
G1, à moins que l'utilsateur saisisse les données G13 et G16 à travers une
boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Voici le code en totalité, ton idée est excellente, c'est exactement ce
que je souhaite, mais je n'arrive pas à bien mettre tes codes là où il
faut, voir ci dessous, à noter que le fichier est en lecture seule à
l'ouverture.
Je ne sais pas ou mettre cela :
Case 7
Cancel = True
End Select
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal." & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
& Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
nomFichier = ThisWorkbook.Name
......
.....
ActiveWorkbook.Saved = True
End If
End Sub
Manu
"Garette" a écrit dans le message de news:Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le
traitement que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13
et G1, à moins que l'utilsateur saisisse les données G13 et G16 à travers
une boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Voici le code en totalité, ton idée est excellente, c'est exactement ce
que je souhaite, mais je n'arrive pas à bien mettre tes codes là où il
faut, voir ci dessous, à noter que le fichier est en lecture seule à
l'ouverture.
Je ne sais pas ou mettre cela :
Case 7
Cancel = True
End Select
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal." & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
& Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
nomFichier = ThisWorkbook.Name
......
.....
ActiveWorkbook.Saved = True
End If
End Sub
Manu
"Garette" <nospam.Garette@hotmail.com> a écrit dans le message de news:
OnECpYHRHHA.488@TK2MSFTNGP06.phx.gbl...
Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le
traitement que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13
et G1, à moins que l'utilsateur saisisse les données G13 et G16 à travers
une boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Voici le code en totalité, ton idée est excellente, c'est exactement ce
que je souhaite, mais je n'arrive pas à bien mettre tes codes là où il
faut, voir ci dessous, à noter que le fichier est en lecture seule à
l'ouverture.
Je ne sais pas ou mettre cela :
Case 7
Cancel = True
End Select
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal." & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
& Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
nomFichier = ThisWorkbook.Name
......
.....
ActiveWorkbook.Saved = True
End If
End Sub
Manu
"Garette" a écrit dans le message de news:Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le
traitement que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13
et G1, à moins que l'utilsateur saisisse les données G13 et G16 à travers
une boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Je pense avoir réussi (et je ne sais pas comment) avec cela, mais....
j'explique apres ... :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
'-------------------------------------------
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
& Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'----------------
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
SupprimeToutCodeEtFormulaire nomFichier
ActiveWorkbook.Saved = True
End If
If Msg = 7 Then
Fichier_Lecture_Ecriture
....
.....
ThisWorkbook.Save
End If
End If
End Sub
Le soucis est que meme si je dis Non à mon msgbox, il me demande de
remplir G13 ou G16, si je dis Non, ca ne m'interesse pas de remplir quoi
que ce soit je veux tout de suite qu'il passe à :
Fichier_Lecture_Ecriture
....
.....
ThisWorkbook.Save
End If
End If
End Sub
"Manu" a écrit dans le message de news:
%Voici le code en totalité, ton idée est excellente, c'est exactement ce
que je souhaite, mais je n'arrive pas à bien mettre tes codes là où il
faut, voir ci dessous, à noter que le fichier est en lecture seule à
l'ouverture.
Je ne sais pas ou mettre cela :
Case 7
Cancel = True
End Select
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal." & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & "
" & Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
nomFichier = ThisWorkbook.Name
......
.....
ActiveWorkbook.Saved = True
End If
End Sub
Manu
"Garette" a écrit dans le message de news:Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le
traitement que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13
et G1, à moins que l'utilsateur saisisse les données G13 et G16 à
travers une boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter
..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Je pense avoir réussi (et je ne sais pas comment) avec cela, mais....
j'explique apres ... :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
'-------------------------------------------
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
& Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'----------------
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
SupprimeToutCodeEtFormulaire nomFichier
ActiveWorkbook.Saved = True
End If
If Msg = 7 Then
Fichier_Lecture_Ecriture
....
.....
ThisWorkbook.Save
End If
End If
End Sub
Le soucis est que meme si je dis Non à mon msgbox, il me demande de
remplir G13 ou G16, si je dis Non, ca ne m'interesse pas de remplir quoi
que ce soit je veux tout de suite qu'il passe à :
Fichier_Lecture_Ecriture
....
.....
ThisWorkbook.Save
End If
End If
End Sub
"Manu" <manuel.gamin@wanadoo.fr> a écrit dans le message de news:
%23fopGvHRHHA.3592@TK2MSFTNGP06.phx.gbl...
Voici le code en totalité, ton idée est excellente, c'est exactement ce
que je souhaite, mais je n'arrive pas à bien mettre tes codes là où il
faut, voir ci dessous, à noter que le fichier est en lecture seule à
l'ouverture.
Je ne sais pas ou mettre cela :
Case 7
Cancel = True
End Select
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal." & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & "
" & Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
nomFichier = ThisWorkbook.Name
......
.....
ActiveWorkbook.Saved = True
End If
End Sub
Manu
"Garette" <nospam.Garette@hotmail.com> a écrit dans le message de news:
OnECpYHRHHA.488@TK2MSFTNGP06.phx.gbl...
Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le
traitement que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13
et G1, à moins que l'utilsateur saisisse les données G13 et G16 à
travers une boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter
..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
Je pense avoir réussi (et je ne sais pas comment) avec cela, mais....
j'explique apres ... :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
'-------------------------------------------
'test si On valide ou pas
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal" & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & " "
& Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
'----------------
'Supprime les macros du classeur final
nomFichier = ThisWorkbook.Name
SupprimeToutCodeEtFormulaire nomFichier
ActiveWorkbook.Saved = True
End If
If Msg = 7 Then
Fichier_Lecture_Ecriture
....
.....
ThisWorkbook.Save
End If
End If
End Sub
Le soucis est que meme si je dis Non à mon msgbox, il me demande de
remplir G13 ou G16, si je dis Non, ca ne m'interesse pas de remplir quoi
que ce soit je veux tout de suite qu'il passe à :
Fichier_Lecture_Ecriture
....
.....
ThisWorkbook.Save
End If
End If
End Sub
"Manu" a écrit dans le message de news:
%Voici le code en totalité, ton idée est excellente, c'est exactement ce
que je souhaite, mais je n'arrive pas à bien mettre tes codes là où il
faut, voir ci dessous, à noter que le fichier est en lecture seule à
l'ouverture.
Je ne sais pas ou mettre cela :
Case 7
Cancel = True
End Select
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repertoire As String
Dim Fichier As String
Dim nomFichier As String
'-------------------------------------------
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter ..."
Range("G13,G16").Select
Cancel = True
Else
Msg = MsgBox("Voulez-Vous valider ce doc ?", 4)
If Msg = 6 Then
'met le fichier en lecture ecriture
Fichier_Lecture_Ecriture
Repertoire = "C:Documents and SettingsAdministrateurBureaudev"
Fichier = "Cal." & " " & Cells(3, 3).Value & " " & Cells(3, 5).Value & "
" & Cells(13, 7).Value & " " & Day(Now) & _
"-" & Month(Now) & "-" & Year(Now) & ".xls"
ActiveWorkbook.SaveAs Filename:=Repertoire & Fichier
nomFichier = ThisWorkbook.Name
......
.....
ActiveWorkbook.Saved = True
End If
End Sub
Manu
"Garette" a écrit dans le message de news:Re,
Je propose le scénario suivant :
L'utilisateur tente de fermer le fichier.
Apparait alors un message qui lui dit G13 et/ou G16 ne sont pas saisies
La macro active ces cellules.
L'utilisateur les remplit.
L'utilisateur tente de fermer le fichier à nouveau.
Le message "Voulez-Vous valider ce ..." apparait et tu fais le
traitement que tu as à faire.
On est obligé de sortir de ma macro pour mettre à jour les cellules G13
et G1, à moins que l'utilsateur saisisse les données G13 et G16 à
travers une boite de dialogue ...
De toutes façons, tu ne veux pas fermer le fichier avec que G13 et G16
soient remplies.
Ci-dessous le code adapté :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("G13") = "" Or Range("G16") = "" Then
MsgBox "G13 ou G16 est vide, il faut les remplir avant de Quitter
..."
Range("G13,G16").Select
Cancel = True
Else
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6
'Inscrire ici le traitement souhaité si l'utilisateur clique
sur Oui
ActiveWorkbook.Save
Case 7
Cancel = True
End Select
End If
End Sub
En fait, soit tu veux tester d'abord le contenu des cellules G13 et G16 et
on ne fait rien tant qu'elles ne sont pas remplies.
Soit tu veux afficher le Message d'avertissement et apres tester si G13 et
G16 sont vides.
Dans les 2 cas, c'est une histoire d'imbrication des tests If.
En fait, soit tu veux tester d'abord le contenu des cellules G13 et G16 et
on ne fait rien tant qu'elles ne sont pas remplies.
Soit tu veux afficher le Message d'avertissement et apres tester si G13 et
G16 sont vides.
Dans les 2 cas, c'est une histoire d'imbrication des tests If.
En fait, soit tu veux tester d'abord le contenu des cellules G13 et G16 et
on ne fait rien tant qu'elles ne sont pas remplies.
Soit tu veux afficher le Message d'avertissement et apres tester si G13 et
G16 sont vides.
Dans les 2 cas, c'est une histoire d'imbrication des tests If.