Conversion et nommage auto de plages en multi tableaux

Bonjour à tous et merci de me lire déjà.

Comme visible dans le fichier joint, j'ai au départ un onglet comportant des données contigües, chaque colonne n'ayant aucun lien avec aucune autre... Je souhaite obtenir sur un second onglet, la conversion de ces colonnes en autant de tableaux individuels (chaque tableau ne comportant donc qu'une seule colonne) et de les nommer comme les entêtes de colonnes. Je parle bien sûr de "vrais" tableaux, et pas de "listes" nommées simples...

Pour les bonnes âmes qui auront la bonté d'essayer de m'aider, vous trouverez, dans le fichier joint, l'onglet "d'origine", et le résultat souhaité dans un second onglet.

J'ai tenté des essais avec l'enregistreur de macros mais je n'ai rien trouvé d'exploitable avec mes faibles connaissances.

En espérant avoir été clair,

Merci par avance !

Kiriko

Bonjour,

Une proposition à adapter.

Cdlt.

Public Sub CreateTables()
Dim lo As ListObject
Dim lastCol As Long, lastRow As Long, lCol As Long
    With ActiveSheet
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        For lCol = 1 To lastCol
            lastRow = .Cells(.Rows.Count, lCol).End(xlUp).Row
            Set lo = .ListObjects.Add(1, .Cells(lCol).Resize(lastRow), , xlYes)
            lo.Name = .Cells(lCol).Value
            lo.TableStyle = "TableStyleMedium2"
        Next lCol
    End With
End Sub

Bonjour Jean-Eric,

Merci beaucoup, c'est parfait, je suis très reconnaissant !

J'essaye d'adapter pour que la macro ne s'exécute que sur les colonnes sélectionnées avant de lancer la macro,

J'utilise "Selection.Column" pour trouver la 1ère colonne de cette sélection, mais je ne trouve pas l'expression pour récupérer la dernière...

Merci encore !!

Edit : j'ai bidouillé avec "Selection.Columns.Count + Selection.Column - 1" pour récupérer le numéro de la dernière colonne, et ça fonctionne dans ce cas...

Merci encore !!

Bonjour,

J'ai du mal à comprendre ta demande...
Ce que tu veux, ce n'est pas ramener tout simplement les valeurs de Résultat dans Sensibilité ?
Si oui, en C10 :
=INDEX(Résultats!$M$12:$N$24;EQUIV(C$9;Résultats!$J$12:$J$24;0);EQUIV($B10;Résultats!$M$8:$N$8;0))
à tirer vers la droite et vers le bas
Les titres doivent être identiques !
eric

Bonjour eriiic,

Je me demande si ta réponse n'est pas destinée à un autre fil de sujet ? Car je ne vois pas le lien avec celui-ci...

Cordialement,

Si, c'est bien pour toi.
Comme les valeurs ramenées dans Sensibilités n'étaient pas correctes, je me demandais si ce n'est pas cela que tu voulais tout simplement.
eric

Eh bien je suis désolé, si je suis concerné, je t'avoue que je ne comprends pas du tout.... qu'est-ce que "Sensibilités" ? et "Résultats" ? Je n'ai rien au delà de la ligne 6 dans mon fichier (donc encore moins les lignes 8, 9, 12 et 24 qui sont citées dans ta formule ?)

J'ai vraiment l'impression qu'on ne parle pas du même fichier ni même du même fil .....

Désolé si c'est moi qui ne comprends rien, mais j'ai beau chercher, je ne trouve aucun rapport sur rien.....

Ah ben écoute je ne sais pas ce qu'il s'est passé.
Effectivement, rien à voir, bien que j'étais persuadé avoir téléchargé ton fichier.
C'est pour ça que je ne comprenais pas trop la réponse de Jean-Eric que j'avais consultée avant de répondre
Sorry
eric

Ouf, je suis soulagé, je commençais à m'inquiéter de ma santé mentale

En tous les cas, merci d'avoir voulu m'aider, l'intention (bonne) et la bienveillance, c'est précieux et rare, mais fréquent sur les forums Excel ...

Au plaisir de futurs échanges !

KiriKo

Non, non, c'est la mienne qui défaille... Encore un coup de la Covid

Rechercher des sujets similaires à "conversion nommage auto plages multi tableaux"