Probleme avec la fonction For ....Next

Bonjour,

Je dois faire un programme en vba et quand je met a un endroit next i, il me mette que je n'ai pas de For. Or il y en a un. Une solution ?

For i = 2 To 198

Range("N" & CStr(i)).Select

If ActiveCell.Value = HauteurChoisieParUtilisateur Then

MsgBox "mettre la note"

If Genre = "Homme" Then

If Age = "-17" Then

'Action

Note = ActiveCell.Offset(0, 8).Value

End If

If Age = "-19" Then

'Action

Note = ActiveCell.Offset(0, 7).Value

End If

If Age = "-15" Then

'Action

Note = ActiveCell.Offset(0, 9).Value

End If

If Age = "-13" Then

'Action

Note = ActiveCell.Offset(0, 10).Value

End If

If Age = "Senior" Then

'Action

Note = ActiveCell.Offset(0, 6).Value

End If

End If

If Genre = "Femme" Then

If Age = "-13" Then

'Action

Note = ActiveCell.Offset(0, 1).Value

End If

If Age = "-15" Then

'Action

Note = ActiveCell.Offset(0, 2).Value

End If

If Age = "-17" Then

'Action

Note = ActiveCell.Offset(0, 3).Value

End If

If Age = "-19" Then

'Action

Note = ActiveCell.Offset(0, 4).Value

End If

If Age = "Senior" Then

'Action

Note = ActiveCell.Offset(0, 5).Value

End If

End If

Next i

Illisible !

Tu indentes correctement et tu mets la balise Code.

Et il est probable que s'il était indenté, tu verrais l'erreur!


En effet ! indentes le code et le trou apparaîtra.

indente ?

Bonjour et bienvenue sur le forum

Tu as raison. VBA se trompe. Ce n'est pas un "For" qu'il te manque mais un "End If". Juste avant "Next i"

OK ?

Bye !

For i = 2 To 198
    Range("N" & CStr(i)).Select
    If ActiveCell.Value = HauteurChoisieParUtilisateur Then
        MsgBox "mettre la note"
        If Genre = "Homme" Then
            If Age = "-17" Then
                Note = ActiveCell.Offset(0, 8).Value
            End If
            If Age = "-19" Then
                Note = ActiveCell.Offset(0, 7).Value
            End If
            If Age = "-15" Then
                Note = ActiveCell.Offset(0, 9).Value
            End If
            If Age = "-13" Then
                Note = ActiveCell.Offset(0, 10).Value
            End If
            If Age = "Senior" Then
                Note = ActiveCell.Offset(0, 6).Value
            End If
        End If
        If Genre = "Femme" Then
            If Age = "-13" Then
                Note = ActiveCell.Offset(0, 1).Value
            End If
            If Age = "-15" Then
                Note = ActiveCell.Offset(0, 2).Value
            End If
            If Age = "-17" Then
                Note = ActiveCell.Offset(0, 3).Value
            End If
            If Age = "-19" Then
                Note = ActiveCell.Offset(0, 4).Value
            End If
            If Age = "Senior" Then
                Note = ActiveCell.Offset(0, 5).Value
            End If
        End If

 Next i

C'est ça du code indenté ! Cela a notamment pour effet d'aligner tous les couples (ou plus) d'instructions liées : With... End With, For... Next, If... Else... End If, Select Case... End Select. Ce qui est à l'intérieur étant en retrait.

On voit rapidement quand il manque un bout d'instruction.

Et regarde aussi l'effet de la balise de Code, pour la lisibilité dans une post sur le Forum.

Bonjour,

entièrement d'accord ...

avec une indentation tu verrais plus facilement tes codes

Voir dans ma signature tout en bas

ps: salut à MFrerrand

D'accord merci pour votre aide

Salut, sur le meme code, quand je le lance, il zappe complètement la partie ou il y a les "If", pourquoi ?

re,

(re)lis la charte:

Pensez à joindre un fichier pour faciliter la compréhension du problème et augmenter les chances de vous faire aider. La taille maximale autorisée est de : 300ko (si vous utilisez la version 2007 d'Excel ou une version plus récente, préférez les formats ".xlsx" ou ".xlsm" pour réduire la taille du fichier).

Rechercher des sujets similaires à "probleme fonction next"