Code pour un bouton "annuler"

Fermé
Pives - 2 avril 2008 à 11:44
pives Messages postés 419 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 25 juillet 2015 - 11 avril 2008 à 11:47
Bonjour,

Je suis sur un formulaire sous excel et je voudrais que mon bouton "annuler" ferme le formulaire et renvoit à la première page du workbook (comme un retour)... Seulement voila j'ai essayé quelques codes et je n'y arrive pas...
Quelqu'un peut-il m'aider ?

ps: le formulaire se lance quand on ferme excel, peut-être que le pb vient de là!

19 réponses

Bonjour,

Non ce n'est pas ça,

C'est bien des feuilles de dialogues et non des userform que tu utilises, n'est-ce-pas? Car sinon, le fonction Me.Hide fonctionne à coup sur.

C'est sur la feuille de dialogue qu'il faut agir, selectionnes la feuille et mets toi en mode création, c'est le bouton avec une regle et une equerre, ensuite suis les instructions.

Click droit sur le bouton, Format du controle , onglet Controle, Cocher la case Faire Disparaitre ou annuler

Salut
1
Salu Amigo,

j'utilise un userform qui se trouve sur une feuille...
J'ai essayé la modif que tu m'as dit (clic droit bouton, Format du contrôle , onglet Contrôle, Cocher la case Faire Disparaitre ou annuler ), rien de concluant, mais je m'y prend peut-être mal !
J'envois le doc par mail...
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 282
2 avril 2008 à 11:46
le code pour fermer le forumulaire est Me.close je crois...
0
J'ai essayer, ça fait un message d'erreur:

erreur de compilation, utilisation incorrecte du mot clé ME
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 282
2 avril 2008 à 11:52
essaye Nomdetonformulaire.close ou Unload(Me)
0
quelques essais:

Sub Nom
Formulaire.Close
End Sub réponse: erreur d'éxécution 424

Sub Nom
Unload (Me)
End Sub réponse: utilisation incorrecte du mot Me

hum hum ... J'en suis tout chose!
0
Pives > Pives
2 avril 2008 à 12:05
De même j'ai éssayé:

Sub Nom
DialogSheets("Formulaire").Close
End Sub réponse: erreur d'éxécution 438
0
Sandriine Messages postés 1255 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 282
2 avril 2008 à 12:10
le code que tu as essayé du l'as bien fait sur l'évenement click du bouton???
0
Oui! fait et même refait pour être sur...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour,

essaye ça , à coller dans le code de ton bouton annuler

private sub Annuler_click() ' nom du bouton

Sheets("Feuil1").Select ' nom de la feuille de retour à modifier éventuellement
Me.Hide

end sub
0
j'ai essayé il me répond encore "utilisation incorrecte du mot Me"
0
SyGEN Messages postés 62 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 11 septembre 2008 8 > Pives
2 avril 2008 à 12:43
Et si tu mets correctement les parenthèses a la fonction hide vu que c'est une fonction et pas une propriété

Me.Hide()

ca dit quoi ?
0
Pives > SyGEN Messages postés 62 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 11 septembre 2008
2 avril 2008 à 13:35
Désolé j'étais parti mangé! J'ai essayé:

Private Sub Annuler_close()
Sheets("Fermeture").Select
Me.Hide ()
End Sub

Où "Annuler_close" est le nom de la macro
et "fermeture" le nom de la feuille contenant le formulaire

Réponse:
erreur de compilation
attendu: =
la ligne Me.Hide() est en rouge...
0
Amigo a dit:
"Sheets("Feuil1").Select ' nom de la feuille de retour à modifier éventuellement "

Qu'es-ce que tu appel la feuille de retour ?
0
Re,

J'ai essayé chez moi Me.Hide et ça fonctionne, peux-tu nous montrer ta macro pour voir?

A+.
0
J'ai beau réessayer y a rien qui marche... si quelqu'un a une idée elle sera la bienvenue!
0
Par hasard j'ai lancé:

Private Sub Annuler_close
DialogSheets ("Fermeture").hide
End Sub

le résultat est que l'application se ferme, pour faire ça il y avait plus
simple, mais c'est peut-être une piste. Maintenant il faudrait empêcher
exel de se fermer.
Un truc du style: enable Application.Quit (ça ne marche pas)

Comment empecher excel de se fermer ?
Et comment attérir par la suite sur la première page de mon workbook... ?

Pas toujours facile pour un newbie, mais c'est ce qui fait le charme de VB.
Quelqu'un peut-il m'aider?
0
Bonjour,

"fermeture" le nom de la feuille contenant le formulaire

Tu travailles avec qu'elle version d'Excel? Si je me souviens bien c'est avec Excel 5 que je faisais de feuilles de Dialogues.

Alors c'est pas tout a fait pareil. Le bouton qui fait fermer le dialogue doit avoir la propriété Faire Disparaitre ou Annuler.

En mode Création, clic droit sur le bouton, Propriétés onglet Controle, Cocher la case Faire Disparaitre.

En plus si tu doit afficher une autre boite de dialogue après la fermeture de celle-ci, il faut faire une procedure qui gère les affichages des dialogues dans une boucle...

A+.
0
Salu Amigo

J'utilise excel 2002.
Quand tu parle de faire disparaître, c'est la fonction Hide je pense, mais ce qui pose pb
c'est le "Me" je n'ai réussit à en passer aucun...j'ai cherché dans l'aide j'ai pas trouvé grand chose.

J'ai essayé "faire disparaître", effectivement le formulaire se ferme mais l'application aussi...
Comment empêcher excel de se fermer ? Il me faudrait un code en +.

Sinon je n'ai pas de boite de fermeture à afficher après, mais je voudrais juste retomber sur la
première page de mon workbook, si quelqu'un à des idées...
0
Finalement j'ai contourné le pb en editant 2 boutons:

- QUITTER ET SAUVEGARDER

Sub OK_close()
ActiveWorkbook.Save
ActiveWorkbook.Saved = True
Application.Quit
End Sub

- QUITTER SANS SAUVEGARDER

Sub Annuler_close()
Application.Quit
Application.DisplayAlerts = False
End Sub

C'est pas exactement ce que je voulais, car ce n'est pas
un bouton "Annuler" en tant que tel, mais ça fera l'affaire!
0
Re,

Si tu veux, mets le fichier sur http://www.cijoint.fr/
On pourra le telecharger et résoudre ton problème.

Ciao.
0
Tu as oublié de coller le lien vers le fichier? Je ne le vois pas.

A+.
0
Excuse j'avais oublié en effet!
0
pives > pives
3 avril 2008 à 13:36
http://www.cijoint.fr/cjlink.php?file=cj200804/cijxnOBmew.xls.
0
J'ai le fichier

Il y a une feuille "Ouverture" avec un bouton OK, Qu'est que tu veux faire qand on click dessus?

PS: il va falloir que je sorte, je regarderais à mon retour.

A+.
0
La feuille "ouverture" contient un userform qui se lance lorsque l'on quitte excel.
Le bouton OK permet de sauvegarder et de quitter, mais pour celui là c'était bon.

Ce qu'il me faut c'est le bouton Annuler qui permettrai de fermer le formulaire
et de retomber sur la première page (nommée "Edito") du workbook... un peu comme les boutons retour
que l'on trouve partout...
exemple: tu fermes un doc, l'application te demande: voulez-vous enregistrer ? oui,non,annuler
Si tu fais annuler tu reviens en arrière et la procédure de fermeture est avortée.
Sinon ça veut dire que une fois le formulaire ouvert il n'y aurait aucun retour possible et l'application se fermera
quoiqu'il se passe !

Je ne sais pas si je me suis fait comprendre ?
Si je ne suis pas clair dis-moi, ou si tu as d'autres idées je suis preneur.

ps: T'inquiètes tu peux sortir je ne t'en voudrais pas, c'est déjà cool de m'aider.
0
Re,

Voila ce qu'on peut faire. En quittant Excel, la feuille "Fermeture" s'affiche. Le bouton 'Quitter et Sauvegarger' enregistre le document et quitte Excel. Le bouton 'Quitter sans sauvegarder' lance la procédure classique de fermeture d'Excel qui pose la question 'Voulez-vous enregistrer ... Oui Non Annuler'
Reponse Oui > Enregistre et Quitte
Reponse Non > Quitte sans enregistrer
Reponse Annuler > Revient a la feuille Edito

Est ce que ça répond à ton problème?

A+.
0
C'est vrai que je peux profiter de la fenêtre de fermeture pour le bouton annuler...
Je pense faire comme ça, ça sera plus simple tout compte fait.
Encore merci a toi Amigo !
0
Re,

En attendant ta réponse, j'ai trouvé mieux, c'est à dire que le bouton 'Quitter sans sauvegarder' peut etre renommé 'Annuler' et aurait pour effet de revenir à la feuille 'Edito' sans poser aucune question.

Est ce bien cela que tu cherchais?

A+.
0
Je m'étais résigné, mais là c'est exactement ce qu'il me faudrait!
0
Bonsoir, me revoila

Est ce que je te renvoie le fichier modifié, ou bien tu préfères les explications et faire les modifications toi-même?

A+.
0
Re

Tout compte fait, je ne vais te laisser languir, je te renvoie le fichier par le même canal

http://www.cijoint.fr/cjlink.php?file=cj200804/cijbDtzSVf.xls

Si tu as besoin d'explications , fais signe.

Ciao.
0
Merci Amigo!
Là vraimen je ne sai pa quoi dire ... tou simplement MERCI !
J'ai regardé vite fait et ya plein de trucs que je comprend pas,
mai çà marche au poil !

Je connaissais pas "option explicit" et le 'if...'
en memê temps j'ai découvert VBA lundi...

Et bien encore merci Monsieur Amigo,
ca donne envie de continuer...


Tchô !
_________________________________

---La résignation est un sucide quotidien---
0
pives Messages postés 419 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 25 juillet 2015 32
11 avril 2008 à 10:33
Salut,

Me revoilà!! je suis toujours sur le même document qu'avant et j'ai un petit soucis:
J'ai créer un userform dans lequel j'ai mis une zone de saisie de texte (comme un cadre dans lequel on peut écrire),
mais problème lors de la saisie... quand on tape du texte et que l'on fait "entrée" pour aller à la ligne la fenêtre se valide et se ferme aussitôt ! Et le texte s'écrit sur une seule et même ligne par défaut, c'est plutôt génant! Il faudrait annuler le bouton entrée sur cette fenêtre ou quelquechose comme ça...

Si quelqu'un à une idée pour remédier a ce problème je suis preneur!
0
Bonjour,

Pour ne pas fermer la fenetre en appuyant sur Entrée, dans format du controle, tu dois décocher la propriéte 'par défaut' du bouton Fermer ou Quitter ou Annuler (suivant ce que tu as sur ta fenêtre).

La zone de texte , Format du controle , cocher 'Retour à la ligne' et 'Barre de défilement verticale'

A+.
0
pives Messages postés 419 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 25 juillet 2015 32
11 avril 2008 à 11:09
Merci Amigo,

ça marche au poil...J'en profite pour demander autre chose:
J'ai créer un bouton "envoyer par mail" qui lance la boite de messagerie, le seul problème c'est que d'un pc à l'autre les configurations ne sont pas les mêmes, et du coup parfois cela plante, y a t-il un moyen d'y remédier ?

Voila le code

Sub Mail()

ActiveWorkbook.Save
Application.Dialogs(xlDialogSendMail).Show
End Sub
0
pives Messages postés 419 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 25 juillet 2015 32
11 avril 2008 à 11:19
Re

je viens de me rendre compte que dans la zone de texte la saisie est limitée, au bout d'un moment on ne peut pas ecrire partout!
0
pives Messages postés 419 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 25 juillet 2015 32
11 avril 2008 à 11:21
Autant pour moi ça marche de nouveau, ça à l'air d'être un peu instable!
0
Re,

Pour la zone de texte, je pense que les fonctionnalités doivent etre limités, ce n'est pas un véritable éditeur de texte.

En ce qui concerne la messagerie, J'ai essayé chez moi et ça marche. Je pense que ça plante si la messagerie n'est pas correctement configurée, ou alors peut-etre que ce n'est pas Outlook...?

A+.
0
pives Messages postés 419 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 25 juillet 2015 32
11 avril 2008 à 11:47
Ok merci

A+
0