Répartir données d'une cellule en plusieurs cellules (en ligne)

Bonjour,

Je me permet de poster sur ce sujet car les postes déja existants ne m'aident pas du tout. J'ai créé une macro VBA afin de copier des données d'une table et les coller dans une autre feuille. Ce code marche très bien, cependant il y a un point que je n'arrive pas du tout à résoudre.

J'aimerai que les cellules avec plusieurs données soient répartit en plusieurs celulles et en ligne(voir photo)

image

Par exemple pour la 3eme ligne : séparer les 6nombres actuellement dans 1ligne en 6 lignes sans chevaucher le reste des lignes en dessous (et en gardant les données de la ligne mère)

Je ne sais pas si c'est compréhensible mais je serais très reconnaissable à celui qui m'aidera :)

Voici le code vba

Sub negro()

Dim plantilla As Variant
Dim i As Integer
Dim u As Integer
Dim codigo As Variant
Dim Area As String
Dim area2 As String
Dim tarea As Integer
Dim tarea2 As Integer
Dim descripcion As String
Dim descripcion2 As String

Sheets("español").Range("A8:H100").Clear

i = 9
u = 8
Do While i <= 528

Sheets("Hoja1").Activate

plantilla = Cells(i, 29)
Area = Cells(i, 2)
tarea = Cells(i, 8)
descripcion = Cells(i, 10)

If plantilla = "" Then

Else

If Cells(i, 29).Font.Color = RGB(0, 0, 0) Then

codigo = plantilla
area2 = Area
tarea2 = tarea
descripcion2 = descripcion

Sheets("español").Activate
Cells(u, 1) = codigo
Cells(u, 7) = area2
Cells(u, 8) = tarea2
Cells(u, 5) = descripcion2

                    Range("A8:H50").Select
                    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
                    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
                    With Selection.Borders(xlEdgeLeft)
                        .LineStyle = xlContinuous
                        .ThemeColor = 1
                        .TintAndShade = -0.499984740745262
                        .Weight = xlThin
                    End With
                    With Selection.Borders(xlEdgeTop)
                        .LineStyle = xlContinuous
                        .ThemeColor = 1
                        .TintAndShade = -0.499984740745262
                        .Weight = xlThin
                    End With
                    With Selection.Borders(xlEdgeBottom)
                        .LineStyle = xlContinuous
                        .ThemeColor = 1
                        .TintAndShade = -0.499984740745262
                        .Weight = xlThin
                    End With
                    With Selection.Borders(xlEdgeRight)
                        .LineStyle = xlContinuous
                        .ThemeColor = 1
                        .TintAndShade = -0.499984740745262
                        .Weight = xlThin
                    End With
                    With Selection.Borders(xlInsideVertical)
                        .LineStyle = xlContinuous
                        .ThemeColor = 1
                        .TintAndShade = -0.499984740745262
                        .Weight = xlThin
                    End With
                    With Selection.Borders(xlInsideHorizontal)
                        .LineStyle = xlContinuous
                        .ThemeColor = 1
                        .TintAndShade = -0.499984740745262
                        .Weight = xlThin
                    End With
                    Range("E11").Select

u = u + 1
End If
End If

i = i + 1
Loop

End Sub

Hello,

Si tu fournis un fichier exemple, cela prends 3 minutes et quelques clics pour le faire en PowerQuery

@+

Pas de soucis,

Voici un fichier exemple.

Merci :)

11test.xlsx (10.61 Ko)

Hello,

Voici la proposition

Clic droit puis actualiser sur le tableau de résultat

@+

15test-16.xlsx (21.97 Ko)

Rebonjour !

C'est exactement ce que je souhaite avoir, merci beaucoup ! Mais j'aimerais comprendre comment cela a été fait ahahah

Pouvez - vous m'expliquer si ça ne vous dérange pas

Merci encore

Hello,

Votre curiosité est une excellente chose !

PowerQuery est intégré à Excel depuis les versions 2016 et cest un outil de traitement de données.

Il permet d’importer une multitude source, dossiers, fichiers, tableaux structurés, source sharepoint et j’en passe.

Une fois les données importées, on peut faire tous les traitements voulus avec les fonctionnalités pré-définies ou en connaissant le langage M.

Pour aller dans l'éditeur :

image

Puis

A gauche tu verras les requêtes et à droite les étapes appliquées à la requête

image

Dans ton cas, j'ai fait un split par délimiteur pour chaque cellule pour générer la liste de toutes les valeurs et ensuite j'ai fait étendre cette liste pour dupliquer les infos de la ligne mère sur tous les codes de ta première colonne mais une ligne pour chaque code.

Je te recommande de te former c'est un gagne temps incroyable et aucun problème n'est insoluble.

N'hésite pas si besoin

@+

Ça marche merci beaucoup, j’en profite de votre gratitude ahaha pour demander s’il existe un moyen de traduire automatiquement un tableau Excel (par exemple le fichier espagnol actuel en français ou anglais) ? Sans devoir le faire cellule par cellule…

Hey,

Je ne sais pas du tout

En tout cas n'hésite pas si besoin et

@+

Bonjour,

Je reviens vers vous avec une question : quel délimineur avez-vous utilisé pour séparer les lignes ?

Dans ma logique, il faudait utiliser Entrée mais rien ne se passe, ducoup je me pose la question.

Merci !

Hello,

Le délimiteur est le délimiteur du retour à la ligne

@+

Rechercher des sujets similaires à "repartir donnees ligne"