For sans next, next sans for, end if manquant où est l'erreur

Bonjour,

Ci-joint un code sur lequel je me casse les dents depuis maintenant quelques heures...

L'idée est que lorsque l'utilisateur clique sur la cellule correspondant à sa ligne en colonne H, la macro effectue une vérification des données entrées sur sa ligne et lui attribue un score.

colonne A vide

colonne B nom

colonne C n° de référence de l'objet recherché par l'utilisateur

colonne D heure de début de recherche

colonne E heure de fin de recherche

Colonne F durée de la recherche

Colonne G Code de l'objet trouvé par l'utilisateur

Colonne H Déclenchement de la vérification mettant en relation "C", "F", "G" et attribuant le score en conséquence.

J'ai essayé plusieurs agencement malheureusement j'ai systématiquement des erreur de type for sans next, next sans for ou bloc if sans end if et je ne parviens pas à retrouver la bonne syntaxe...

Si vous pouviez me dire où ça coince et encore mieux pourquoi je vous en serais très reconnaissant !

Je vous joint le code dans sa version "initiale" tel que je l'avais rédigé au départ.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

For i = 2 To 32

If Not Intersect(Target, Cells(i, 2)) Is Nothing Then UserForm1.Show 'nom de l'élève

If Not Intersect(Target, Cells(i, 3)) Is Nothing Then UserForm2.Show 'n° de balise recherchée

If Not Intersect(Target, Cells(i, 4)) Is Nothing Then Target.Value = Time ' heure de depart

If Not Intersect(Target, Cells(i, 5)) Is Nothing Then Target.Value = Time ' heure de retour

If Not Intersect(Target, Cells(i, 8)) Is Nothing Then 'vérification des éléments pour la balise :

'balise 1

If Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value = "00:02:00" Then

UserForm3c.Show

ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value < "00:01:59" Then

UserForm3.Show

ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value > "00:02:00" Then

UserForm3b.Show

ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 4).Value = "" Then

ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 4).Value <> "IVAF" Then

UserForm4.Show

Next

End If

End Sub

d'avance merci !!

Hello,

Teste comme ça

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

For i = 2 To 32

    If Not Intersect(Target, Cells(i, 2)) Is Nothing Then UserForm1.Show 'nom de l'élève
    If Not Intersect(Target, Cells(i, 3)) Is Nothing Then UserForm2.Show 'n° de balise recherchée
    If Not Intersect(Target, Cells(i, 4)) Is Nothing Then Target.Value = Time ' heure de depart
    If Not Intersect(Target, Cells(i, 5)) Is Nothing Then Target.Value = Time ' heure de retour
    If Not Intersect(Target, Cells(i, 8)) Is Nothing Then 'vérification des éléments pour la balise :

'balise 1
    If Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And                 Worksheets("Feuil3").Cells(i, 6).Value = "00:02:00" Then
    UserForm3c.Show

    ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value < "00:01:59" Then
    UserForm3.Show

    ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And                                 Worksheets("Feuil3").Cells(i, 6).Value > "00:02:00" Then
    UserForm3b.Show

    ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 4).Value = "" Then

    ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 4).Value <> "IVAF" Then
    UserForm4.Show

End If
Next

End Sub

Bonjour,

teste en plaçant le end if avant le next à la fin

Bonjour à tous ,

Une version qui passe le test de la compilation ...

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Dim i As Byte

      For i = 2 To 32

         If Not Intersect(Target, Cells(i, 2)) Is Nothing Then UserForm1.Show   'nom de l'élève
         If Not Intersect(Target, Cells(i, 3)) Is Nothing Then UserForm2.Show   'n° de balise recherchée
         If Not Intersect(Target, Cells(i, 4)) Is Nothing Then Target.Value = Time   ' heure de depart
         If Not Intersect(Target, Cells(i, 5)) Is Nothing Then Target.Value = Time   ' heure de retour
         If Not Intersect(Target, Cells(i, 8)) Is Nothing Then   'vérification des éléments pour la balise :

            'balise 1
            If Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value = "00:02:00" Then
               UserForm3C.Show

            ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value < "00:01:59" Then
               UserForm3.Show

            ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 7).Value = "IVAF" And Worksheets("Feuil3").Cells(i, 6).Value > "00:02:00" Then
               UserForm3B.Show

            ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 4).Value = "" Then

            ElseIf Worksheets("Feuil3").Cells(i, 3).Value = 1 And Worksheets("Feuil3").Cells(i, 4).Value <> "IVAF" Then
               UserForm4.Show

            End If
         End If
      Next i

   End sub

ric

Hello !

Tout d'abord merci à tous pour votre réactivité !

Rag02700 et M12 vos solutions renvoient "next sans for" sur mon PC.

Ric ça marche nickel ! Merci.

Avant que je marque en résolu pourrais tu m'expliquer ce qui fait que ta version du code passe ?

Je suppose que ça tourne autour de la variable i...

Encore merci quoi qu'il en soit !

Bonjour,

Le next n'était pas au bon endroit et il manquait 1 End IF

Dans la fenêtre VBE, menu Débogage > Compiler VBAProject.

ric

Merci,

Je m'en servirai mieux à l'avenir.

Je passe en résolu.

Rechercher des sujets similaires à "next end manquant erreur"