Bonjour Novice, bonjour le forum,
Essaie comme ça :
Sub Macro1()
Dim D As Worksheet 'déclare la variable D (onglet Donnés) [Données] serait préférable !...
Dim R As Worksheet 'déclare la variable R (onglet Récap)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim NB As Integer 'déclare la variable NB (NomBre)
Dim TV() As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim J As Integer 'déclare la variable J (incrément)
Dim I As Integer 'déclare la variable I (Incrément)
Set D = Worksheets("Donnés") 'définit l'onglet D
Set R = Worksheets("Récap") 'définit l'onglet R
DL = D.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet D
NB = Application.WorksheetFunction.CountA(D.Range("B6:B" & DL)) 'définit le nombre de valeurs dans la plage B6:B...
ReDim TV(1 To NB) 'redimensionne le tableau TV
J = 1 'initialise la varaible J
For I = 6 To DL 'boucle su toutes les lignes I de 6 à DL
'si la cellule ligne I colonne B n'est pas vide récupère sa valeur dans l'index J du tableau TV, incrémente J
If D.Cells(I, "B").Value <> "" Then TV(J) = D.Cells(I, 2): J = J + 1
Next I 'prochaine ligne de la boucle
R.Range("C8").Value = NB 'renvoie le nombre NB dans la cellule C8 de l'onglet R
R.Range("D8").Resize(NB, 1) = Application.Transpose(TV) 'renvoie le tableau TV transposé dans la cellule D8 redimensionnée de l'onglet R
End Sub