Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro qui ne marche pas

B

Bas

Guest
Salut,
J' ai essayé de créer une macro qui ferme ma page sans l' enregistrer, mais elle ne fonctionne pas. Auriez vous une macro de ce type a me proposer?
MErci
 
R

Robert

Guest
Salut Bas, salut le forum,

place ce code dans l'élément ThisWorkbook de ton projet VBA

Private Sub Workbook_BeforeClose(cancel As Boolean)
ThisWorkbook.Close SaveChanges:=False
end sub

À plus,

Robert
 
D

Dan

Guest
Bonsoir Bas,

Voici une macro qui fermera ton fichier sans sauvegarde :

1. Ouvre VBA (ALT + F11)
2. CTRL + R pour ouvrir le VBA project
3. Dans VBA project, Double clique sur Thisworkbook
4. A droite place cette macro :

Private Sub Workbook_BeforeClose (Cancel as Boolean)
ThisWorkbook.Close Savechanges:=False
End Sub

5. Avant de fermer ton fichier, enregistre le pour conserver ta macro

Bon Travail

@+ Dan
 
O

Olivierd

Guest
msgbox: fermer fichier sans sauver

bonjour Bas, Robert, Dan, lecteurs et lectrices...

J'ai un souhait un peu différent: je voudrais un bouton OUI et NON dans le message ci-dessous

OUI= Fermer le classeur actif sans enregistrer
NON= pas d'action-fermer le MsgBox

' message de fin:
Rep = MsgBox("quitter sans enregistrer ", vbYes)

Pourriez-vous me guider dans cette mission dangeureuse ?

Cordialament

olivierd
 
R

Robert

Guest
Salut Olivierd, Dan, Bas, le forum,

Olivierd, si tu as :

rep = MsgBox("Quitter sans enregistrer ?", vbYesNo)

il te faudra rajouter dans le code qui lance la MsgBox, cette ligne :

If rep = 6 Then ThisWorkbook.Close Savechanges:=False

où 6 correspond à l'argument bouton vbYes et où il n'est pas nécessaire de décrire l'action pour vbNo (7) puisque le MsgBox se ferme automatiquement dès qu'une réponse (rep) est donnée.

À plus,

Robert
 
O

Olivierd

Guest
bonjour,
merci pour ta réponse... je ne suis pas sur d'avoir bien fait:

Sub macro()
rep = MsgBox("Quitter sans enregistrer ?")
If rep = 6 Then ThisWorkbook.Close Savechanges:=False
End Sub

la macro ne propose que OUI et ne ferme pas le casseur à l'activation du oui...

Comment modifier le code pour fermer le classeur à l'action du OUI et avoir un NON pour conserver la main sans action ?

merci pour tes infos

cordialement
 
R

Robert

Guest
Re Olivierd,

si je ne m'abuse tu as oublié ,vbYesNo

essai avec :
rep = MsgBox("Quitter sans enregistrer ?", vbYesNo)

ça devrait marcher ou plutôt ça va marcher.

À plus,

Robert
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…