Bonjour, merci d'avoir pris du temps pour m'apporter des précisions
Pour les tris a plats cela peut-être assez simpliste comme compliqué suivant ce que vous avez en votre possession ou non
Exemple :
Sheets("Synthèse").Range("a1") = Application.WorksheetFunction.CountIf(Sheets(2).Range("D3:D504"), "En immeuble / logement collectif")
Grosso modo, on compte combien il y a de " En immeuble / logement collectif " dans une plage et on l'affiche dans la cellule A1.
Pour que l'utilisation de vba soit pleinement utile, au lieu de rentrer la condition à la main et créer autant de boucle qu'il y a de condition... (la condition c'est "En immeuble / logement collectif " si vous avez déjà les différentes réponses possibles vous pouvez les mettre en colonne dans une autre feuille et la macro lira ensuite les conditions une par une puis comptera leur nombre d'occurrence.
Pour les tris croisé, je ne vois rien de mieux qu'un tableau croisé dynamique, c'est assez maniable et personnalisé. A vous de voir