XL 2016 Créer des lignes issues d'un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BARNEOUD-ROUSSET Laurent

XLDnaute Nouveau
Bonjour,
Je souhaiterais transposer un tableau, composé d'arguments dans une cellule, en un autre tableau composée de lignes.
Ci joint un exemple car ce sera plus parlant.
Dans la mesure du possible, je souhaiterais ne pas faire appel au macro et uniquement utiliser les formules d'excel.

d'avance merci pour vos conseils et aide
 

Pièces jointes

Hello
alors désolé, mais par formule.. je ne saurai pas faire..
par macro par contre
VB:
Sub LigntoCol()
Dim tabini() As Variant
Dim tabfin() As Variant
tabini = Range("A7:C10").Value
For i = LBound(tabini, 1) To UBound(tabini, 1)
    nb = nb + Len(tabini(i, 1)) - Len(WorksheetFunction.Substitute(tabini(i, 1), ",", "")) + 1
Next i
ReDim tabfin(1 To nb, 1 To 3)
k = 1
For i = LBound(tabini, 1) To UBound(tabini, 1)
    ele = Split(tabini(i, 1), ",")
    For j = LBound(ele) To UBound(ele)
        tabfin(k, 1) = ele(j)
        tabfin(k, 2) = tabini(i, 2)
        tabfin(k, 3) = tabini(i, 3)
        k = k + 1
    Next j
Next i
Range("A12").Resize(UBound(tabfin, 1), UBound(tabfin, 2)) = tabfin
End Sub
 
Bonjour vgendron,
Un grand merci pour ton code. ca marche bien avec mon tableau exemple. Si je comprend bien et si je veux l'appliquer à un tableau plus grand, je n'ai qu'a changer le "range" dans la fonction VB ?
Idem pour le placement de mon tableau Range "A12" deviendrait range "ma cellule souhaitée" ?
encore merci pour ta réponse et pour le temps que tu y a passé.
Cordialement,
 
Si je comprend bien et si je veux l'appliquer à un tableau plus grand, je n'ai qu'a changer le "range" dans la fonction VB ?
Idem pour le placement de mon tableau Range "A12" deviendrait range "ma cellule souhaitée" ?
Hello
effectivement, pour le tableau initial, il suffit de changer le range (cela peut aussi etre fait à peu près automatiquement)
si ton tableau commence en A7: tu peux peut etre faire un : tabini=range("A7").currentregion.value

pour la destination du résultat, il suffit effectivement de donner la première cellule (A12 dans le cas présent)
ca peut etre aussi une autre feuille: sheets("feuil2").range("A1").resize.......
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
372
Retour