XL 2010 Problème de code de fermeture de fichier

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
 

Phillip

XLDnaute Occasionnel
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:

Phillip

XLDnaute Occasionnel
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:

Papou-net

XLDnaute Barbatruc
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.
 

Phillip

XLDnaute Occasionnel
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

  • multiplications.xlsm
    23.5 KB · Affichages: 27

Papou-net

XLDnaute Barbatruc
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.
 

Phillip

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
311 723
Messages
2 081 932
Membres
101 844
dernier inscrit
pktla