Bonsoir jactitine,
Tu a écrit :
Cela fonctionnait bien mais dès que mon fichier de départ dépasse 30 000 lignes ça plante.
Tu dois avoir une variable ligne déclarée ainsi : Dim ligne As Integer ; ou : Dim ligne% (c'est idem)
Étendue des nombres d'un Integer : -32768 à +32767 (c'est noté dans l'aide VBA sur Integer)
donc c'est normal que ça plante (hélas) à partir de la ligne n° 32768 !
Solution : mets : Dim ligne As Long ; ou : Dim ligne&
Regarde aussi la variable qui te sert pour calculer la dernière ligne ; exemple :
Sub Essai()
Dim dlig As Long ' ou : Dim dlig&
dlig = Cells(Rows.Count, 1).End(xlUp).Row
' suite de la sub
End Sub
Tu as demandé : est-ce qu'un Tableau Croisé Dynamique (TCD) est mieux que VBA ? c'est complètement différent !
VBA est un langage de programmation alors qu'un TCD n'en n'est pas un ; regarde l'aide Excel sur les TCD.
dhany