Créer une liste à partir d' un tableau

Bonjour à tous,

je progresse à petit pas mais je pense que c'est ma logique qui est pas bien logique

je m'explique je souhaiterais obtenir une liste à partir d'un tableau dont voici un exemple:

VilleParisNantes
VilleMarseille
FaibleMarseilleMetz
Faible
ForteNantesMetz
Forte
Capital
CapitalParis

et je souhaiterais obtenir ceci:

VilleParis
CapitalParis
VilleNantes
ForteNantes
VilleMarseille
FaibleMarseille
FaibleMetz
ForteMetz

j'imagine que vous allez faire ça en 5'... mais le but c'est de comprendre

merci à tous pour votre aide

Bonne journée

Bonjour,

Ci-joint un début de piste, qui n'a malheureusement pas le même ordre que ton résultat voulu.

Tout se fait avec une requête Power Query (onglet données, requêtes et connexions). Sur le droite de la fenêtre qui s'ouvrira tu trouveras les étapes appliquées à la requête, nécessaire à la transformation du tableau d'origine.

13essai-pq.xlsx (16.09 Ko)

Merci pour ton aide

je ne connaissais d'ailleurs pas cette possibilité.

Mais je préfèrerais passer par vba, si possible.

le but étant de mieux comprendre les manières de coder et d'enfin y arriver.

J'ai trouvé entre temps pour l'avoir dans le même ordre, en ajoutant un index sur tes critères...

Je passe la main pour le VBA

Bonne journée à toi

Merci beaucoup

Bonne journée!

Bonjour à tous,

ça avance mais ce n''est pas encore ça!

Sub bof()

Dim  i, j, k, var, 
Dim cel As Range, plage As Range
Dim ws As Worksheet, ws1 As Worksheet

    Set ws = Sheets("feuil1")
    Set ws1 = Sheets("feuil2")    
    ws1.Select
    Cells.Select
    Selection.ClearContents
    ws.Select

    With ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)
    nbl = .Row
    nbc = .Column
    End With

    Set plage = ws.UsedRange

    With plage
     For j = 2 To nbc
        For i = 1 To nbl
               var = .Cells(i, j)
                 If var <> "" Then
                   Debug.Print var
                       If ws1.Cells(i, 2) = "" Then
                          ws.Cells(i, j).Copy ws1.Cells(i, 2)
                          ws.Cells(i, 1).Copy ws1.Cells(i, 1)
                       End If
                End If
         Next i
      Next j
End With
End Sub

Cette situation fonctionne si il n' y a pas 2 variables sur la même ligne, mais pas dans mon problème posé.

si vous pouviez m'aider à résoudre ce pb?

J'aimerais surtout voir vos proposition car il y a sûrement plus simple

D'avance merci

(même si je continue à chercher.)

bonne journée à tous

Bonjour

et comme ceci :

Sub bof()

Dim i As Integer, j As Integer
Dim nbl As Integer, nbc As Integer
Dim plage As Range
Dim ws As Worksheet, ws1 As Worksheet

Set ws = Sheets("feuil1")
Set ws1 = Sheets("feuil2")
ws1.Cells.ClearContents

With ws.Cells.SpecialCells(xlCellTypeLastCell)
    nbl = .Row
    nbc = .Column
End With
dlg = ws1.Range("A" & Rows.Count).End(xlUp).Row
Set plage = ws.UsedRange

With plage
    For j = 2 To nbc
        For i = 1 To nbl
            If .Cells(i, j) <> "" And ws1.Cells(dlg, 2) = "" Then
                ws1.Cells(dlg, 2) = ws.Cells(i, j).Value
                ws1.Cells(dlg, 1) = ws.Cells(i, 1).Value
                dlg = dlg + 1
            End If
         Next i
    Next j
End With
End Sub

Si vous avez beaucoup de trop de lignes et colonnes, cela peut être intéressant de passer par les tableaux. Mais bon là c'est bon aussi

A voir si JB_ revient vers vous prochainement avec une solution plus intéressante

si ok -->

Cordialement

Merci Dan!

j'attends de voir l'éventuelle proposition de JB Avant de clôturer le sujet alors.

Bonjour à tous,

Je n'aurai pas de proposition en utilisant le code VBA je suis bien trop ... débutant en la matière

si tu débutes on se positionne où nous?
merci vous deux je clos le sujet

Bonne journée

Rechercher des sujets similaires à "creer liste partir tableau"