Bonjour,
Voici comment tu pourrais boucler sur tes feuilles pour trouver la dernière renseignée :
Code :
- Sub test()
- Dim mois(5) As String ' à modifier pour mettre mois(11) + le nom des onglets dans l'ordre
- mois(0) = "janvier"
- mois(1) = "fevrier"
- mois(2) = "mars"
- mois(3) = "avril"
- mois(4) = "mai"
- '... etc
- Dim sh As Worksheet
- Dim i As Integer
- For i = 0 To 4 ' à modifier en "... To 11"
- If Sheets(mois(i - 1)).Cells(1, 1).Value = "" Then
- Set sh = Sheets(mois(i-1))
- Exit For
- End If
- Next i
- MsgBox "La page non vide est : " & sh.Name
- Set sh = Nothing
- End Sub
|
En gros, tu crées un tableau contenant tous tes noms d'onglet. Le tableau va de 0 à 11 => 1 par mois.
Tu boucle sur les noms de feuilles de 0 à 11 et dès que tu trouves une cellule non renseignée (j'ai mis cells(1, 1) dans l'exemple = A1) tu récupères la feuille d'avant (Set sh = Sheets(mois(i-1))).
Il faudra penser à gérer les erreurs car dans cet exemple, si le premier onglet est vide, ça doit planter. Le cas où il n'y a aucun onglet de vide n'est pas géré non plus.
Ensuite, si tu veux que la macro se lance à chaque modification, il faudra que tu la mettes dans ThisWorkbook, dans l'événement SheetSelectionChange ou autre, tu trouvera facilement sur google.
---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"- Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1