XL 2010 Problème de code de fermeture de fichier

  • Initiateur de la discussion Initiateur de la discussion Phillip
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Phillip

XLDnaute Occasionnel
Bonjour,

J'ai écrit un code pour faire réviser les tables de multiplications. J'ai installé ce code dans mon personal.xlsb, donc il tourne sur n'importe quel fichier, mais j'ai aussi prévu d'ouvrir un classeur avec un fond sympa etc...au lieu que ça soit sur une feuille excel brute...

J'ai prévu que si le résultat est faux, ça reboucle, j'ai prévu que si ce qui est saisi n'est pas du nombre, ça envoie un message d'erreur et voilà où est mon problème, si on veut recommencer ou pas. Si on veut recommencer, ça marche, mais si on dit non, je voudrais fermer le fichier. Or, ma boucle est mal faite, ça m'envoie sur la gestion d'erreur...Où est le problème ?

meci de vos lumières !

Cordialement

Phillip
 
Re : Problème de code de fermeture de fichier

Bonjour,

J'ai écrit un code pour faire réviser les tables de multiplications. J'ai installé ce code dans mon personal.xlsb, donc il tourne sur n'importe quel fichier, mais j'ai aussi prévu d'ouvrir un classeur avec un fond sympa etc...au lieu que ça soit sur une feuille excel brute...

J'ai prévu que si le résultat est faux, ça reboucle, j'ai prévu que si ce qui est saisi n'est pas du nombre, ça envoie un message d'erreur et voilà où est mon problème, si on veut recommencer ou pas. Si on veut recommencer, ça marche, mais si on dit non, je voudrais fermer le fichier. Or, ma boucle est mal faite, ça m'envoie sur la gestion d'erreur...Où est le problème ?

meci de vos lumières !

Cordialement

Phillip
Option Explicit
Dim Vmultiplicateur1 As Integer
Dim Vmultiplicateur2 As Integer
Dim Resultat As Integer
Dim Saisie As Integer
Dim VClasseur As Workbook
Sub TestClasseurOuvert()
On Error Resume Next
Set VClasseur = Workbooks("cheminpatatpatata")
On Error GoTo 0

If VClasseur Is Nothing Then
Call multiplications
Else: Set VClasseur = Nothing

End If
End Sub

Sub multiplications()

Workbooks.Open Filename:="cheminpatatitpatata"



Randomize
Vmultiplicateur1 = Int(Rnd() * 10) + 0
Vmultiplicateur2 = Int(Rnd() * 10) + 0


Resultat = Vmultiplicateur1 * Vmultiplicateur2


On Error GoTo GestionErreur


Range("a1").Select

Saisie = Application.InputBox(prompt _
:="Quel est le résultat de " & Vmultiplicateur1 & " X " & Vmultiplicateur2 & " ?", Title:="Multiplications", Type:=2)

'=====================================================================================================================
'BOUCLE DE SAISIE
'=====================================================================================================================


Do While Saisie <> Resultat

MsgBox "Non, c'est faux, recommence !"

10 Saisie = Application.InputBox(prompt:= _
"Quel est le résultat de " & Vmultiplicateur1 & " X " & Vmultiplicateur2 & " ?", Type:=2)

Loop

''=====================================================================================================================
'MESSAGE CORRECT OU FAUX
'======================================================================================================================''=====================================================================================================================

If Saisie = Resultat Then
MsgBox "Bravo toto, c'est le bon résultat !"

If MsgBox("Veux-tu recommencer ?", vbYesNo, "Recommencer") = vbNo Then
Workbooks(ActiveWorkbook).Close
Else: Call multiplications
End If


End If
Exit Sub

''===========================================================================================
'GESTION DES ERREURS
''===========================================================================================

GestionErreur:

If Err.Number = 13 Then
MsgBox "Attention, tu dois saisir un nombre !", vbExclamation

'reprendre l'execution du code sur la ligne numérotée ci-dessous
Resume 10

' gestion du bouton annuler
'' ElseIf Saisie = "false" Then
' Exit Sub


End If

End Sub
 
Dernière édition:
Re : Problème de code de fermeture de fichier

Bonjour Phillip,

Essaie comme ceci:

Code:
If MsgBox("Veux-tu recommencer ?", vbYesNo, "Recommencer") = vbYes Then Call multiplications
        ThisWorkbook.Close
A +

Cordialement.

Bonjour Papou-net,

Alors ça arête la macro, mais ça ne ferme pas le fichier excel mais ça me ferme personal en plus...c'est mieux puisque je n'ai pas le message d'erreur...

Cordialement
 
Dernière édition:
Re : Problème de code de fermeture de fichier

RE:

Apparemment, il n'y a rien de confidentiel dans ton fichier.

Peux-tu alors en joindre une copie pour faire des tests, car je crois bien que le programme se "mord la queue".

A +

Cordialement.
 
Re : Problème de code de fermeture de fichier

RE:

Apparemment, il n'y a rien de confidentiel dans ton fichier.

Peux-tu alors en joindre une copie pour faire des tests, car je crois bien que le programme se "mord la queue".

A +

Cordialement.

Re,

Oui, ça se mord la queue quelque part, mais où...Je te joins le fichier, il n'y a que les chemins de fichiers à ouvrir qui sont à corriger ou supprimer.

merci !

Cordialement
 

Pièces jointes

Re : Problème de code de fermeture de fichier

RE:

J'ai testé ton fichier tel quel, et ça fonctionne parfaitement.

Le fichier se ferme bien avoir cliqué sur Non. Par contre, je ne comprends pas pourquoi tu ré-ouvres le fichier dans ta macro?

Code:
Sub multiplications()

Workbooks.Open Filename:=...

J'ai donc mis cette ligne en commentaire et... plus de problème.

Cordialement.
 
Re : Problème de code de fermeture de fichier

RE:

J'ai testé ton fichier tel quel, et ça fonctionne parfaitement.

Le fichier se ferme bien avoir cliqué sur Non. Par contre, je ne comprends pas pourquoi tu ré-ouvres le fichier dans ta macro?

Code:
Sub multiplications()

Workbooks.Open Filename:=...

J'ai donc mis cette ligne en commentaire et... plus de problème.

Cordialement.

Re...je mets ma ligne en commentaires et je teste...

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
145
Réponses
4
Affichages
224
Réponses
32
Affichages
978
Réponses
37
Affichages
721
Retour