Transformer tableau Excel

Bonjour à tous,

je ne sais pas comment m'y prendre, mais j'aimerai transformer mon tableau excel qui est sous la forme :

XXXX | Janvier | Fevrier | .....

Lieu 1 | Valeurs 1 | Valeurs 2 | .....

Lieu 2 | Valeurs 3 | Valeurs 2 | .....

En :

Lieu | Mois | Valeurs

Lieu 1 | Janvier | Valeurs 1

Lieu 2 | Janvier | Valeurs 3

Lieu 1 | Fevrier | Valeurs 2

Lieu 2 | Fevrier | Valeurs 4

Ou peut être que je m'y prends mal car je voudrai juste envoyer mon tableau d'origine sous access, et à part en le transformant sous la forme que je voudrai, je ne vois pas trop comment faire

Si vous avez des pistes ou solutions, vous êtes les bienvenues

Merci pour votre retour rapide, votre solution semble faire ce que je veux, mais j'aimerai pouvoir modifier ou arranger cela au cas où, et malheureusement je ne connais pas grand chose en VBA

Re,

Tu peux peut-être joindre un fichier et préciser ta demande.

Cdlt.

Bonjour,

voici ci-joint ma problématique. Dans le premier onglet, le tableau d'origine. Dans le second onglet, la forme du tableau que j'aimerai afin de pouvoir l'intégrer dans ma base access (qui contient donc les paramètres Mois, Lieu et Données).

J'aimerai juste trouver une façon simple et compréhensible (vu que je ne m'y connais pas trop en VBA) afin de pouvoir faire cela facilement.

Bonjour,

ALT F11 pour ouvrir l'éditeur VBE.

Voir procédure dans le module de feuille Feuil1 (Tab origine).

Cdlt.

Option Explicit

Private Sub cmdNormaliser_Click()
Dim wsData As Worksheet, wsResult As Worksheet
Dim lo As ListObject
Dim tbl As Variant
Dim lCols As Long, lRows As Long, lRow As Long
Dim cn As Long, rw As Long

    Application.ScreenUpdating = False

    With ActiveWorkbook
        Set wsData = .Worksheets("Tab origine")
        Set wsResult = .Worksheets("Tab final")
    End With

    With wsResult
        Set lo = .ListObjects(1)
        If Not lo.DataBodyRange Is Nothing Then lo.DataBodyRange.Delete
    End With

    lRow = 2

    With wsData
        tbl = .Cells(1).CurrentRegion.Value
        lCols = UBound(tbl, 2): lRows = UBound(tbl, 1)
        For rw = 2 To lRows
            For cn = 2 To lCols
                wsResult.Cells(lRow, 1) = tbl(rw, 1)
                wsResult.Cells(lRow, 2) = tbl(1, cn)
                wsResult.Cells(lRow, 3) = tbl(rw, cn)
                lRow = lRow + 1
            Next cn
        Next rw
    End With

    With wsResult
        .Activate
        .[A1].Select
    End With

    Set lo = Nothing
    Set wsResult = Nothing: Set wsData = Nothing

End Sub
Rechercher des sujets similaires à "transformer tableau"