OVH Cloud OVH Cloud

Boite de message "Etes vous sur ?"

13 réponses
Avatar
13Hubert
Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour que
:
1/ une boite de message lui demande s'il est certain de vouloir tout effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances !
;-)

Merci beaucoup

Hubert
--
...from Marseille !

10 réponses

1 2
Avatar
Pounet95
Bonjour,

Quelque chose comme ceci ( à adapter bien sûr )

Sub Nouvelle_Année()
Dim rep As VbMsgBoxResult

'demande confirmation
rep = MsgBox("Etes-vous certain(e) de vouloir initialiser ?", vbYesNo)
If rep = vbNo Then Exit Sub

'OK, initialiser
ActiveWorkbook.SaveAs "Ancien" & ActiveWorkbook.Name

'procédure d'initialisation
' ton code
End Sub

Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"13Hubert" a écrit dans le message de
news:
Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour
que
:
1/ une boite de message lui demande s'il est certain de vouloir tout
effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier
sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances
!
;-)

Merci beaucoup

Hubert
--
...from Marseille !


Avatar
JB
Bonjour,

reponse=Msgbox("Etes vous sûr",VbYesNo)
If reponse=Vbyes Then
...

Else
..

End if

Cordialement JB
Avatar
mbfac
Bonjour

si tu veux faire vraiment pro...

rep = MsgBox("Etes-vous certain(e) de vouloir initialiser ?",
vbYesNoCancel )

;-)

Michel
Avatar
13Hubert
Et ben voilà !
Je savais qu'il me suffirait de demander...!
Mieux vaut un qui sait que 100 qui cherchent...
Surtout que de cette manière j'apprends beaucoup et je peux faire le cacou
devant mes collègues... ;-)

Merci beaucoup à vous 2 !
Hubert
--
...from Marseille !



Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour que
:
1/ une boite de message lui demande s'il est certain de vouloir tout effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances !
;-)

Merci beaucoup

Hubert
--
...from Marseille !


Avatar
13Hubert
Ha... Petit problème...

J'ai appliqué le code fourni par les sympathiques Pounet95 et Michel (mbfac)
que j'ai adapté comme il m'a été proposé, mais VBA stoppe devant une erreur...

Voici le code modifié à ma petite sauce :

---------------------------------------------------------
Sub Nouvelle_Année()
'
' nouv_année Macro
' Macro enregistrée le 06/01/06 par Hubert
'
'
Dim rep As VbMsgBoxResult

rep = MsgBox("Attention ! Vous allez effacer vos données ! Etes-vous
certain(e) de vouloir continuer ?", vbYesNoCancel) 'demande confirmation

If rep = vbNo Then Exit Sub

'OK, initialiser
ActiveWorkbook.SaveAs "Ancienne version" & ActiveWorkbook.Name

'procédure d'initialisation

Range("B6:D8,B9,D9").Select
Range("D9").Activate
Selection.ClearContents

Sheets(Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN",
"JUILLET", "AOUT", _
"SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")).Select
Sheets("JANVIER").Activate
Range("B17:G81").Select
Selection.ClearContents
Range("A17").Select
Application.Run "Suivi_BJ_MISSION_2006.xls!Délégations"

End Sub
---------------------------------------------------------

Voici le message d'erreur :

Erreur de compilation
Type ActiveX non géré dans Visual Basic

Et le système fige la sélection sur la ligne
Dim rep As VbMsgBoxResult

Alors j'ai bien essayé de comprendre ce qu'il (VBA) me voulait, mais je n'ai
rien compris !!! Je ressemble à une poule qui a trouvé un cure-dent...


Au secours !
Et merci encore

Hubert
--
...from Marseille !



Bonjour,

Quelque chose comme ceci ( à adapter bien sûr )

Sub Nouvelle_Année()
Dim rep As VbMsgBoxResult

'demande confirmation
rep = MsgBox("Etes-vous certain(e) de vouloir initialiser ?", vbYesNo)
If rep = vbNo Then Exit Sub

'OK, initialiser
ActiveWorkbook.SaveAs "Ancien" & ActiveWorkbook.Name

'procédure d'initialisation
' ton code
End Sub

Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)



Avatar
ThierryP
Bonjour 13Hubert,

En complément de la réponse de Pounet95, pourquoi ne pas mettre un petit
test sur la date, comme :
Sub Nouvelle_Année()
[A1] = Date
If Year(Date) = Year([A1]) Then Exit Sub
.....

end sub

Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour que
:
1/ une boite de message lui demande s'il est certain de vouloir tout effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances !
;-)

Merci beaucoup

Hubert


--
@+ thierryp

Avatar
ThierryP
Bonjour 13Hubert,

En complément de la réponse de Pounet95, pourquoi pas un petit test sur
la date :
Sub Nouvelle_Année()
If Year(Date) = Year([A1]) Then Exit Sub

'demande confirmation
rep = MsgBox("Etes-vous certain(e) de vouloir initialiser ?", vbYesNo)
If rep = vbNo Then Exit Sub

'OK, initialiser
ActiveWorkbook.SaveAs "Ancien" & ActiveWorkbook.Name
'procédure d'initialisation
' ton code
[A1] = Date <----------- Tu écris la date en dur dans une cellule
inutilisée au moment ou tu initialises
End Sub


Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour que
:
1/ une boite de message lui demande s'il est certain de vouloir tout effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances !
;-)

Merci beaucoup

Hubert


--
@+ thierryp

Avatar
13Hubert
Yess !
Je prends !!
Et j'apprends !!
En effet, l'idée est excellente et je l'appliquerai dès que "mon" (oup's
pardon !) code est dépatouillé de son erreur.

Merci encore et encore !

Hubert
--
...from Marseille !



Bonjour 13Hubert,

En complément de la réponse de Pounet95, pourquoi ne pas mettre un petit
test sur la date, comme :
Sub Nouvelle_Année()
[A1] = Date
If Year(Date) = Year([A1]) Then Exit Sub
......

end sub

Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour que
:
1/ une boite de message lui demande s'il est certain de vouloir tout effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances !
;-)

Merci beaucoup

Hubert


--
@+ thierryp




Avatar
ThierryP
Re 13Hubert,

chez moi pas de souci avec cette ligne, mais ça marche aussi si tu la
supprimes........(Excel2002, je n'ai pas d'autre version)
VBA se débrouillera tout seul avec la variable rep !!

Yess !
Je prends !!
Et j'apprends !!
En effet, l'idée est excellente et je l'appliquerai dès que "mon" (oup's
pardon !) code est dépatouillé de son erreur.

Merci encore et encore !

Hubert


--
@+ thierryp

Avatar
michdenis
Bonjour 13Hubert,

Si tu faisais de ton application un modèle (xlt), tu n'aurais pas besoin de l'effacer
et tu pourrais en utiliser un nouveau aussi souvent que tu désires et ce, sans
risque de perdre des données.


Salutations!



"13Hubert" a écrit dans le message de news:

Re-bonjour à tous !

Je poursuis invariablement l'amélioration de mon fichier Excel...

Ce fichier doit être réinitialisé en fin d'année...
Pour ce faire, toutes les cellules de saisie de toutes les feuilles seront
effacées par une macro...
J'ai bien créé la macro qui va bien. Avec l'enregistreur, c'est facile...
J'ai affecté cette macro à un bouton nommé "Nouvelle année"...
Ma question est que je voudrais m'assurer que mon utilisateur du moment ne
provoque pas la réinitialisation par inadvertance donc comment faire pour que
:
1/ une boite de message lui demande s'il est certain de vouloir tout effacer
avec un bouton OUI et un bouton NON...
2/ il ait la possibilité, AVANT l'effacement, d'enregistrer le fichier sous...

Voilà.
Je sais pouvoir compter sur vous, j'ai déjà testé X fois vos connaissances !
;-)

Merci beaucoup

Hubert
--
...from Marseille !
1 2