Répartir une cellule excel sur plusieurs lignes

Résolu
ecga Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
ecga Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
je cherche répartir une cellule excel sur plusieurs lignes et non sur plusieurs colonnes comme le fait excel avec la touche convertir.
Par exemple j'ai:
Matière Active A 1;5;8;9
Matière Active B 2;5;8;7
et je voudrais avoir:
Matière Active A 1
Matière Active A 5
Matière Active A 8
Matière Active A 9
Matière Active B 2
Matière Active B 5
Matière Active B 8
Matière Active B 7

Avez vous une solution pour faire cela?

D'avance merci,
Ecga

7 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    un exemple en VBA à adapter

    texte originaux colonne A restitution en colonne D
    https://www.cjoint.com/?3AzkNEp5FGU
    le code
    Option Explicit
    Dim T_out()
    '---------
    Sub convertir(cellule, restitue)
    Dim transfo As String, T_in, Cptr As Byte, Titre As String, nbre As Byte
    transfo = Replace(cellule, ";", " ")
    T_in = Split(transfo, " ")
    For Cptr = 0 To 2
    Titre = Titre & " " & T_in(Cptr)
    Next
    nbre = UBound(T_in) - 2
    ReDim T_out(nbre)
    For Cptr = 0 To nbre - 1
    T_out(Cptr) = Titre & " " & T_in(Cptr + 3)
    Next
    restitue.Resize(nbre) = Application.Transpose(T_out)
    End Sub
    '----------
    Sub transformer()
    Dim derlig As Integer, lig As Integer, ligne As Integer
    derlig = Columns("A").Find("*", , , , , xlPrevious).Row
    For lig = 1 To derlig
    ligne = Columns("D").Find("", Range("D" & Cells.Rows.Count)).Row
    convertir Cells(lig, "A"), Cells(ligne, "D")
    Next
    End Sub

    Michel
    0
  2. ecga Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   6
     
    Merci beaucoup pour le temps que vous m'avez consacré.
    Je ne comprend rien du tout aux macros (et c'est pas faute d'écouter le professeur d'info).
    Je vous joint un exemple de mes fichiers de données pouvez vous m'expliquer comment je doit faire avec ça pour que ça marche aussi bien que dans votre exemple?
    le fichier que j'ai aujourd'hui:
    https://www.cjoint.com/?3AzkSDU4F4t
    Le type de fichier que j'aimerais obtenir:
    https://www.cjoint.com/?3AzkZk5ZIYJ
    D'avance merci pour le temps que vous consacrez à m'aider
    Ecga
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Ce n'est pas le m^me problème et n'étant pas taillable et corvéable à merci, je ne vais recommencer N fois à passer du temps pour rien

    0
  4. ecga Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   6
     
    A foo: merci beaucoup pour votre aide c'est exactement ce que je cherchais.
    Je vais me pencher sur la macro pour essayer de comprendre le fonctionnement d'une macro.
    A michel_m: je pense que je vous ai remercié et j'ai bien précisé que je demandais de l'aide si vous aviez du temps a me consacré pour m'aider. En plus j'aurais pu modifier mes tableaux pour regrouper les différentes cellules dans une seule pour que cela ce rapproche plus du premier exemple que j'ai donné. Je pense que le principe de ce forum est que chacun puisse aider les autres en fonction de ses connaissances et ses points forts. Je vous prie de m'excuser mais je ne comprend pas tout du premier coup. Pour finir sachez que j'utilise quand même la macro que vous m'avez indiquée pour une deuxième partie de mon travail.

    Bonne fin de journée,
    Ecga
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. foo
     
    Bonjour

    Avec la macro fini

    http://cjoint.com/?3AAkXIzKe89

    A+

    Maurice
    0
  7. ecga Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   6
     
    Merci beaucoup
    Ecga
    0
  8. foo
     
    Bonjour

    Voila une macro Convert

    http://cjoint.com/?3Azm7am3T5k

    A+
    Maurice
    -1