UserForm bug
Bonsoir à tous !
J'ai besoin de votre aide.
J'ai insérer ce code très simple qui contrôle un UserForm:
Private Sub CommandButton1_Click()
Range("F19").Select
Unload Vérification
End Sub
Private Sub CommandButton2_Click()
Range("F16").Select
Unload Vérification
End Sub
Private Sub UserForm_Initialize()
Label1.Caption = "Vous avez chosi la réponse " & Range("F16")
End Subseulement, lorsque je clique sur le bouton CommandButton1 , l'erreur suivante se produit:
Erreur d'exécution 404:
La feuille est déjà affichée ; affichage modal impossible.
En effet, je suis déjà sur la feuil 3, mais je ne vois pas la raison de l'erreur, peut-être vous le saurez.
Que faire?
Merci d'avance,
cordialement
Bonsoir Stéphane, bonsoir le forum,
C'est quoi Vérification ? L'userform dans lequel se trouvent les CommandButton 1 et 2 ou bien une autre UserForm.
As-tu une macro événementielle Selection_change dans l'onglet Feuil3 ?
Sans fichier exemple difficile de comprendre et de t'aider.
Sinon, le message d'erreur parle de Feuille mais cela ne signifie pas onglet mais UserForm...
Merci de la réponse
Voici le fichier en question.
Cordialement
Bonsoir Stéphane, bonsoir le forum,
Stephane Guidon a écrit :Voici le fichier en question
Heu.... ouairehizite ? Comme disent les anglophones...
Mon fichier est trot gros... !
Il fait 814ko alors que la taille maximale est 300ko
Mais sinon Vérification c'est l'UserForm dans lequel se trouvent les CommandButton 1 et 2.
Et j'ai une macro événementielle Selection_Change dans l'onglet Feuil3
Bonsoir Stéphane, bonsoir le forum,
Et si tu nous donnais le code de cette macro Selection_Change ? Voilà une idée qu'elle serait bonne... J'ai vu sur internet un appareil à tirer les vers du nez ! Je crois que je vais l'acheter...
Bonjour !
Voici le code de la feuil 3:
Option Explicit
Option Compare Text
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("F16") = "" Then
Range("F16").Select
Else
If Not Range("F16") = "a" And Not Range("F16") = "b" And Not Range("F16") = "c" And Not Range("F16") = "d" And Not Range("F16") = "" And Not Range("X1") Like "*Complétez cette phrase avec le verbe vouloir:*" And Not Range("X1") Like "*Traduisez cette phrase en anglais:*" Then
Range("N15") = "Vous devez entrez votre réponse sous la forme a/b/c/d (sauf mention contraire)"
Range("F16").Select
Else
If Not Range("F16") = "" Then Range("F19").Select
'If Not Range("F16").Select And Range("F16") = "" Then Range("F16").Select
Range("N15") = ""
Dim p As String
p = 0
Range("B30") = p
Range("A30") = Range("AC1")
If Range("F16") = "" Then
Range("F19") = ""
Else
'Range("F19") = "Votre choix a été pris en compte"
If Range("F16") = Range("A30") Or Range("F16") = Range("A14") Then
p = p + 1
Range("F19") = "Bonne réponse! Point marqué = " & p
Else
Range("F19") = "Mauvaise réponse! Point marqué = " & p
If Range("A51") = 1 And Range("F16") <> Range("F19") And Range("F16") <> Range("A14") Then
Range("F19") = "Mauvaise réponse obtenue avec l'option ""3/4""! Vous perdez 1 point!"
End If
End If
End If
'If Range("M27") = "20" And Not Range("F16") = "" Then
'Range("F19").Font.ColorIndex = 3
'Range("F19") = "Le temps est écoulé! Point marqué = 0"
'Range("F19").Select
'Else
'
'End If
If Range("F19") = "Mauvaise réponse! Point marqué = 0" Then
Range("F14") = "Bonne réponse: " & Range("A30")
Else
Range("F14") = ""
End If
End If
End If
End Subet celui du module rattaché à la feuil 3:
Option Explicit
Sub TirageAleatoire()
Dim Mondico As Object
Dim NbQuest As Integer
Application.ScreenUpdating = False
NbQuest = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
Set Mondico = CreateObject("Scripting.dictionary")
While Mondico.Count < NbQuest
Mondico(Application.WorksheetFunction.RandBetween(1, NbQuest)) = ""
Wend
Columns("W").ClearContents
Range("W1") = "Numéro"
Range("W2").Resize(Mondico.Count) = Application.Transpose(Mondico.keys)
Range("F16") = ""
Range("F20") = ""
'Range("W17") = 20
Range("X1").Formula = "=Feuil1!$A$" & Range("W" & Rows.Count).End(xlUp)
Range("W" & Rows.Count).End(xlUp).ClearContents
Sheets("Feuil4").Range("A1") = ""
Range("F16").Select
Range("A10:P13").Interior.Color = 15917529
ActiveSheet.Shapes("50_50").Visible = True
ActiveSheet.Shapes("3_4").Visible = True
Range("A50") = 0
Range("A51") = 0
Range("AJ31") = 0
Range("AL21") = 0
Range("B15") = ""
Range("F19") = ""
Range("N15") = ""
Range("F14") = ""
Range("D22:M31") = ""
Range("AE1:AE65536") = ""
Range("AF1:AF65536") = ""
If Range("X1") Like "*Quel est ce pays, représenté*" Then
ActiveSheet.Shapes("p").Visible = True
ActiveSheet.Shapes("t").Visible = True
Else
ActiveSheet.Shapes("p").Visible = False
ActiveSheet.Shapes("t").Visible = False
End If
'Call chrono
'If Sheets("Feuil5").Range("F5") = "Histoire" Then
'Range("X1").Select
' ActiveCell.FormulaR1C1 = _
' "=VLOOKUP(""Histoire"",Feuil1!RC[3]:R[23]C[4],2,FALSE)"
' Range("F16").Select
'End If
End Sub
Sub QuestionSuivante()
If Range("F16") = "" And Range("F19") = "" Or Not Range("N15") = "" Then
Range("F16").Select
Range("N15") = "Vous devez entrez votre réponse sous la forme a/b/c/d (sauf mention contraire)"
Else
Dim Derlg As String
Derlg = Range("AE65536").End(xlUp).Row + 1
Range("AE" & Derlg) = Range("AC1")
Derlg = Range("AF65536").End(xlUp).Row + 1
Range("AF" & Derlg) = Range("F16")
If Range("W2") = "" Then
Sheets("Feuil4").Select
Sheets("Feuil4").Range("A1") = "Terminé ! Toutes les questions ont été posées"
Exit Sub
End If
Range("A1") = 0
Range("X1").Formula = "=Feuil1!$A$" & Range("W" & Rows.Count).End(xlUp)
Range("W" & Rows.Count).End(xlUp).ClearContents
'If Range("W20") = "" Then Sheets("Feuil4").Select
Range("A10:P13").Interior.Color = 15917529
If Range("A50") = 1 Then
ActiveSheet.Shapes("50_50").Visible = False
Else
ActiveSheet.Shapes("50_50").Visible = True
End If
If Range("A51") = 1 And Range("AL21") = 1 Then
ActiveSheet.Shapes("3_4").Visible = False
End If
If Range("A51") = 0 And Range("AL21") = 0 Then
ActiveSheet.Shapes("3_4").Visible = True
End If
Range("F16") = ""
Range("F20") = ""
Range("F19") = ""
Range("F14") = ""
Range("N15") = ""
Range("A51") = 0
Range("F16").Select
End If
If Range("X1") Like "*Quel est ce pays, représenté*" Then
ActiveSheet.Shapes("p").Visible = True
ActiveSheet.Shapes("t").Visible = True
Else
ActiveSheet.Shapes("p").Visible = False
ActiveSheet.Shapes("t").Visible = False
End If
'Range("D22:M31") = ""
'If Sheets("Feuil5").Range("F5") = "Histoire" Then
' Range("X1").Select
' ActiveCell.FormulaR1C1 = _
' "=VLOOKUP(""Histoire"",Feuil1!RC[3]:R[23]C[4],2,FALSE)"
'Range("F16").Select
'End If
'Call chrono
End Subet enfin celui de l'UserForm :
Private Sub CommandButton1_Click()
Unload.UserForm1
End Sub
Private Sub CommandButton3_Click()
Range("F16").Select
Unload.UserForm1
End Sub
Private Sub Label2_Click()
Label2.Caption = "Vous avez choisi la réponse " & Range("F16")
End SubCordialement.
Bonsoir Stéphane, bonsoir le forum,
En dehors du fait que Vérification s'est miraculeusement transformé en UserForm1 (pour éviter toute confusion, Unload Me serait plus simple), Je n'ai rien trouvé dans le code qui puisse provoquer l'erreur du début. Encore une fois, sans fichier exemple, difficile de trouver où se situe le problème...
J'ai aussi remarqué que tu avais, dans la procédure Selection_Change, plusieurs Select qui relancent cette procédure en boucle. Mais je ne pense pas que ton problème vienne de là même si tu devrais corriger ce fait.