Oui je comprends
Dans ce cas vous pouvez passer par du VBA oui, mais c'est se compliquer la vie. Vous avez PowerQuery (intégré à Excel, garde le fichier en xlsx) qui est un outil très puissant pour travailler avec les tableaux. Bon malheureusement je ne suis pas Expert sur cet outil, mais d'autres contributeurs (je pense à Baroute, JFL, Chris, cousinhub et sans doutes bien d'autres que j'oublie) sauront vous aider. Dans l'état je vous propose la requete que j'ai pu créer avec mes connaissances :
let
Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date résa", type datetime}, {"Commune", type text}, {"Categorie", type text}, {"Objet", Int64.Type}, {"Début réservation", type datetime}, {"Fin réservation", type datetime}, {"Intervalle-date", type text}, {"Contrôle de la durée#(lf) (<40 j)", type text}, {"Contrôle des chevauchements", type text}, {"Validation finale", type text}, {"Dispo aujourd'hui", type any}}),
Colonnes = Table.ColumnNames(#"Changed Type"),
// Séparer la colonne "Objet" en listes
AjoutListe = Table.AddColumn(Source, "ObjetListe", each Text.Split(Text.From([Objet]), ";")),
// Supprimer la colonne "Objet" d'origine
SupprimerObjet = Table.RemoveColumns(AjoutListe, {"Objet"}),
// Développer la liste en lignes
Expand = Table.ExpandListColumn(SupprimerObjet, "ObjetListe"),
// Renommer la colonne développée
Renommer = Table.RenameColumns(Expand, {{"ObjetListe", "Objet"}}),
// Convertir en nombre si nécessaire
Convertir = Table.TransformColumnTypes(Renommer, {{"Objet", Int64.Type}}),
// Replacer la colonne "Objet" à sa position d'origine
ColonnesAvantObjet = List.RemoveItems(Table.ColumnNames(Source), {"Objet"}),
ColonnesFinales = List.InsertRange(ColonnesAvantObjet, List.PositionOf(ColonnesAvantObjet, "Categorie") + 1, {"Objet"}),
Réorganiser = Table.SelectColumns(Convertir, ColonnesFinales),
#"Changed Type1" = Table.TransformColumnTypes(Réorganiser,{{"Date résa", type datetime}, {"Début réservation", type date}, {"Fin réservation", type date}})
in
#"Changed Type1"
Fonctionnement :
Dans la feuille Form1, mettez dans votre colonne "objet" des nombres concaténés avec ";". Par Exemple "1;2;3".
Dans la feuille "DegrouperObjet" du fichier ci-joint, faites clic droit sur le tableau > Actualiser.
Le tableau en question aura la colonne Objet dégroupée. Là où je bloque c'est comment implémenter cela dans votre tableau initial directement… sans écraser les formules ! Ça je ne suis pas sûr que ce soit possible, c'est pourquoi j'ai laissé l'output sur une autre feuille.
Après pour info, je pense que l'ensemble de vos formules pourraient être calculées dans PowerQuery sans difficulté, mais bon à ce compte-là, autant faire un nouveau fil avec "PowerQuery" ou "PQ" dans le titre et demander comment dégrouper votre colonne Objet et calculer le résultat des formules dans PQ.