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 Sub

seulement, 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 Sub

et 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 Sub

et 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 Sub

Cordialement.

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.

Rechercher des sujets similaires à "userform bug"