Après correction de JM voilà ce que le çà donne :
Sub essai()
Dim i, j As Integer
i = 0
Sheets("Résultat").Cells(10, 3) = Sheets("1").Cells(7, 10)
Sheets("Résultat").Cells(10, 6) = Sheets("1").Cells(7, 7)
Sheets("Résultat").Cells(12, 3) = " & s & "
Do While i < 31
j = 11
Do While j < 296
If Sheets(i).Cells(j, 1) = " & s & " Then
Sheets("Résultat").Cells(12, 5) = Sheets(i).Cells(j, 2)
Sheets("Résultat").Cells(12, 7) = Sheets(i).Cells(j, 3)
Sheets("Résultat").Cells(i + 16, 2) = Sheets(i).Cells(j, 4)
Sheets("Résultat").Cells(i + 16, 3) = Sheets(i).Cells(j, 5)
Sheets("Résultat").Cells(i + 16, 4) = Sheets(i).Cells(j, 6)
Sheets("Résultat").Cells(i + 16, 5) = Sheets(i).Cells(j, 7)
Sheets("Résultat").Cells(i + 16, 6) = Sheets(i).Cells(j, 8)
Sheets("Résultat").Cells(i + 16, 7) = Sheets(i).Cells(j, 9)
Sheets("Résultat").Cells(i + 16, 8) = Sheets(i).Cells(j, 10)
Sheets("Résultat").Cells(i + 16, 9) = Sheets(i).Cells(j, 11)
End If
j = j + 1
Loop
i = i + 1
Loop
End Sub
Déjà j'ai enregistré celà en SUB (macros) et non Function (connais pas) pour tester
ensuite il faut impérativement avoir les onglets suivants
Résultat
0
1
...
30
redonner la valeur j=11 après chaque fin de boucle Do While j < 296 puisqu'elle est imbriqué dans une autre boucle
Bon là elle ne plante pas mais je ne sais s'il celà donne le résultat escompté
Toutefois là j'ai un doute (c'est dommage que l'on est pas la feuille Excel pour vérifier)
Sheets("Résultat").Cells(12, 5) = Sheets(i).Cells(j, 2)
Sheets("Résultat").Cells(12, 7) = Sheets(i).Cells(j, 3)
Sheets("Résultat").Cells(i + 16, 2) = Sheets(i).Cells(j, 4)
Sheets("Résultat").Cells(i + 16, 3) = Sheets(i).Cells(j, 5)
Sheets("Résultat").Cells(i + 16, 4) = Sheets(i).Cells(j, 6)
Sheets("Résultat").Cells(i + 16, 5) = Sheets(i).Cells(j, 7)
Sheets("Résultat").Cells(i + 16, 6) = Sheets(i).Cells(j, 8)
Sheets("Résultat").Cells(i + 16, 7) = Sheets(i).Cells(j, 9)
Sheets("Résultat").Cells(i + 16, 8) = Sheets(i).Cells(j, 10)
Sheets("Résultat").Cells(i + 16, 9) = Sheets(i).Cells(j, 11)
Tout d'abord certaines des adresses de cellules sont fixes donc la valeur finale sera celle obtenu lors de la dernière boucle (voit pas alors l'intérêt de la boucle)
Je tente d'être plus clair
Sheets("Résultat").Cells(12, 5) : les valeurs vont se succéder pour finalement s'arrêter à celle-ci Sheets(10).Cells(295, 2)
Pareil pour
Sheets("Résultat").Cells(i + 16, 2) : la valeur I est toujours la même dans la boucle J
Enfin comme je disais plus haut si on n'a pas la feuille de départ, difficile de vérifier