Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion BARNEOUD-ROUSSET Laurent
  • Date de début Date de début

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 !

B

BARNEOUD-ROUSSET Laurent

Guest
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.......
 
le top !
j'allais te demander le code VB pour importer le tableau dans une nouvelle feuille. Tu as lu dans mon esprit ! un grand merci ca fonctionne a merveille.
Comment fait-on pour mettre la discussion en "resolu" ?
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
507
Réponses
18
Affichages
467
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…