End if sans bloc If

bonjour le forum

j'ai un message dans le code çi-dessous qui me dit"And If sans bloc If" et n'étant pas doué en vba je ne vois ou est l'erreur.

Si quelqu'un peut m'aider,merci d'avance

Sub recap()
Dim Cel As Range, X As Byte, y As Byte
Dim TbloU(1 To 9, 1 To 9)
Dim TbloD(10 To 19, 10 To 19)
Dim TbloE(20 To 29, 20 To 29)
Dim TbloF(30 To 39, 30 To 39)
Dim TbloG(40 To 49, 40 To 49)
Dim TbloH(50 To 59, 50 To 59)
Dim TbloK(60 To 70, 60 To 70)
Dim DerLig As Long, I As Long
Dim J As Byte
DerLig = Cells(Rows.Count, 2).End(xlUp).Row - 1
For I = 2 To DerLig
    For Each Cel In Cells(I, 2).Resize(1, 20)
        Cells(I, 2).Resize(1, 20).Select
        If Cel.Value <> "" Then
            For J = 2 To 11
                Select Case Cel.Value
                    Case Is < 10
                        If Cells(I + 1, J).Value < 10 Then
                            TbloU(Cel, Cells(I + 1, J).Value) = TbloU(Cel, Cells(I + 1, J).Value) + 1
                        End If

                    Case 10 To 19
                        If Cells(I + 1, J).Value >= 10 And Cells(I + 1, J).Value < 20 Then _
                            TbloD(Cel, Cells(I + 1, J).Value) = TbloD(Cel, Cells(I + 1, J).Value) + 1

                           [color=#40BFFF] End If[/color]

                    Case 20 To 29
                        If Cells(I + 1, J).Value >= 20 And Cells(I + 1, J).Value < 30 Then _
                            TbloE(Cel, Cells(I + 1, J).Value) = TbloE(Cel, Cells(I + 1, J).Value) + 1

                            End If

                    Case 30 To 39
                        If Cells(I + 1, J).Value >= 30 And Cells(I + 1, J).Value < 40 Then
                            TbloF(Cel, Cells(I + 1, J).Value) = TbloF(Cel, Cells(I + 1, J).Value) + 1

                            End If

                   Case 40 To 49
                        If Cells(I + 1, J).Value >= 40 And Cells(I + 1, J).Value < 50 Then _
                            TbloG(Cel, Cells(I + 1, J).Value) = TbloG(Cel, Cells(I + 1, J).Value) + 1

                            End If

                    Case 50 To 59
                        If Cells(I + 1, J).Value >= 50 And Cells(I + 1, J).Value < 60 Then _
                            TbloH(Cel, Cells(I + 1, J).Value) = TbloH(Cel, Cells(I + 1, J).Value) + 1

                            End If

                    Case 60 To 70
                        If Cells(I + 1, J).Value >= 60 And Cells(I + 1, J).Value < 71 Then _
                            TbloK(Cel, Cells(I + 1, J).Value) = TbloK(Cel, Cells(I + 1, J).Value) + 1

                            End If

                End Select
            Next J
        End If
    Next Cel
Next I
Range("X2").Resize(9, 9) = Application.Transpose(TbloU)
Range("X13").Resize(10, 10) = Application.Transpose(TbloD)
Range("X25").Resize(10, 10) = Application.Transpose(TbloE)
Range("X37").Resize(10, 10) = Application.Transpose(TbloF)
Range("X49").Resize(10, 10) = Application.Transpose(TbloG)
Range("X61").Resize(10, 10) = Application.Transpose(TbloH)
Range("X73").Resize(11, 11) = Application.Transpose(TbloK)
End Sub

merci

Salut,

Enlève les '_' après les instructions Then

Tu peux écrire :

if toto>1 then msgbox toto

ou

if toto > 1 then

msgbox toto

end if

si tu mets un '_' a la fin du then cela correspond a une continuité de la ligne, comme si tu écrivais :

if toto>1 then msgbox toto ' et dans ce cas pas besoin de endif

Voila ++

Bigdams

Bonjour

Bonjour Bigdams

Si dans la ligne If ...... Then tu as le caractère de continuité le "_" (le souligné (Touche 8 )) pas besoin de mettre le End If

Exemple dans la ligne

                    Case 10 To 19
                        If Cells(I + 1, J).Value >= 10 And Cells(I + 1, J).Value < 20 Then _
                            TbloD(Cel, Cells(I + 1, J).Value) = TbloD(Cel, Cells(I + 1, J).Value) + 1
                         [barrer]'End If[/barrer]

Mais obligatoire dans cette partie du code

                    Case 30 To 39
                        If Cells(I + 1, J).Value >= 30 And Cells(I + 1, J).Value < 40 Then
                            TbloF(Cel, Cells(I + 1, J).Value) = TbloF(Cel, Cells(I + 1, J).Value) + 1
                            End If

bonjour Banzai64,Bigdams,le forum

merci pour l'explication,par mon programme ne comptabilise pas les trentaines,cinquantaines,soixantaines et fait des erreurs dans les quarantaines,pour ce qui est des unités,dizaines et vingtaines c'est bon.

ou est l'erreur

merci

142jadke.xlsm (211.82 Ko)

Bonjour

Comme je ne comprends pas trop la macro, cela ne viendrait pas du fait que ta boucle va de 2 à 11 (à la place de 2 à 21) ?

 
'
'
' 
      If Cel.Value <> "" Then
            For J = 2 To 11
                Select Case Cel.Value
                    Case Is < 10
'
'
'

re banzai64,le forum

exact banzai,super

merci

Rechercher des sujets similaires à "end bloc"