Plusieurs lignes dans une cellule en colonnes
Résolu/Fermé
blocholivier
-
Modifié par blocholivier le 31/05/2014 à 17:00
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 31 mai 2014 à 18:03
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 31 mai 2014 à 18:03
A voir également:
- Plusieurs lignes dans une cellule en colonnes
- Aller à la ligne dans une cellule excel - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Déplacer une colonne excel - Guide
7 réponses
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
Modifié par Mike-31 le 31/05/2014 à 17:21
Modifié par Mike-31 le 31/05/2014 à 17:21
Bonjour,
Une possibilité en VBA si tu as quelques notions, quelle colonne est à traiter
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Une possibilité en VBA si tu as quelques notions, quelle colonne est à traiter
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
31 mai 2014 à 17:31
31 mai 2014 à 17:31
Bonjour
Essaie une macro de ce style
A adapter à tes besoins
Ici les cellules à scinder sont en colonne A d'une 1ere feuille et sont reportées dans les colonnes d'une 2nde feuille
Sub encol()
Dim Tableau() As String
Dim i As Integer
DL = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
For n = 1 To DL
'découpe la chaine en fonction des retour à la ligne
'le résultat de la fonction Split est stocké dans un tableau
Tableau = Split(Sheets(1).Range("A" & n), Chr(10))
'boucle sur le tableau pour visualiser le résultat
For i = 0 To UBound(Tableau)
'Le résultat est inscrit dans la colonne x suivante de la feuille 2
x = x + 1
Sheets(2).Cells(1, x).Value = Tableau(i)
Next i
Next n
End Sub
Cdlmnt
Essaie une macro de ce style
A adapter à tes besoins
Ici les cellules à scinder sont en colonne A d'une 1ere feuille et sont reportées dans les colonnes d'une 2nde feuille
Sub encol()
Dim Tableau() As String
Dim i As Integer
DL = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
For n = 1 To DL
'découpe la chaine en fonction des retour à la ligne
'le résultat de la fonction Split est stocké dans un tableau
Tableau = Split(Sheets(1).Range("A" & n), Chr(10))
'boucle sur le tableau pour visualiser le résultat
For i = 0 To UBound(Tableau)
'Le résultat est inscrit dans la colonne x suivante de la feuille 2
x = x + 1
Sheets(2).Cells(1, x).Value = Tableau(i)
Next i
Next n
End Sub
Cdlmnt
Oula pas du tout.
La colonne a traité serait la "E" pour des copie sur les colonnes F, G, H, I, J et éventuellement K ... il peut y avoir jusqu'à 6 lignes en fait.
La colonne a traité serait la "E" pour des copie sur les colonnes F, G, H, I, J et éventuellement K ... il peut y avoir jusqu'à 6 lignes en fait.
J'avais pas vu ta réponse je test ça tout de suite :)
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
31 mai 2014 à 17:40
31 mai 2014 à 17:40
En fait je n'avais pas tout compris je crois
Tu voudrais mettre en colonne POUR CHAQUE ligne et sur la même feuille ?
Précise moi et je réadapte la macro en conséquence
Tu voudrais mettre en colonne POUR CHAQUE ligne et sur la même feuille ?
Précise moi et je réadapte la macro en conséquence
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
31 mai 2014 à 17:43
31 mai 2014 à 17:43
Sub encol()
Dim Tableau() As String
Dim i As Integer
DL = Sheets(1).Range("E" & Rows.Count).End(xlUp).Row
For n = 1 To DL
'découpe la chaine en fonction des retour à la ligne
'le résultat de la fonction Split est stocké dans un tableau
Tableau = Split(Sheets(1).Range("E" & n), Chr(10))
x = 5
'boucle sur le tableau pour visualiser le résultat
For i = 0 To UBound(Tableau)
'Le résultat est inscrit dans les colonnes
x = x + 1
Sheets(1).Cells(n, x).Value = Tableau(i)
Next i
Next n
End Sub
Voilà pour que ce soit sur la même feuille
Dim Tableau() As String
Dim i As Integer
DL = Sheets(1).Range("E" & Rows.Count).End(xlUp).Row
For n = 1 To DL
'découpe la chaine en fonction des retour à la ligne
'le résultat de la fonction Split est stocké dans un tableau
Tableau = Split(Sheets(1).Range("E" & n), Chr(10))
x = 5
'boucle sur le tableau pour visualiser le résultat
For i = 0 To UBound(Tableau)
'Le résultat est inscrit dans les colonnes
x = x + 1
Sheets(1).Cells(n, x).Value = Tableau(i)
Next i
Next n
End Sub
Voilà pour que ce soit sur la même feuille
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
Modifié par Mike-31 le 31/05/2014 à 17:44
Modifié par Mike-31 le 31/05/2014 à 17:44
Re,
la solution la plus simple est pourtant le VBA, tu vas essayer et je vais faire simple, et par petit coup
sur ton Ruban as tu l'onglet Développeur, il se trouve après Données, Révision et Affichage
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
la solution la plus simple est pourtant le VBA, tu vas essayer et je vais faire simple, et par petit coup
sur ton Ruban as tu l'onglet Développeur, il se trouve après Données, Révision et Affichage
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
31 mai 2014 à 17:52
31 mai 2014 à 17:52
Re,
Pour ma part j'avais préparé ce code
Sub Eclater()
Dim m, tablo, k As Variant
For m = 2 To Range("E65536").End(xlUp).Row
tablo = Split(Range("E" & m), Chr(10))
For k = 0 To UBound(tablo)
If k >= 0 Then Cells(m, 5 + k) = tablo(k)
Next k
Next m
End Sub
Pour ma part j'avais préparé ce code
Sub Eclater()
Dim m, tablo, k As Variant
For m = 2 To Range("E65536").End(xlUp).Row
tablo = Split(Range("E" & m), Chr(10))
For k = 0 To UBound(tablo)
If k >= 0 Then Cells(m, 5 + k) = tablo(k)
Next k
Next m
End Sub
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
31 mai 2014 à 17:55
31 mai 2014 à 17:55
Salut Mike ;)
On arrive à quelque chose de quasiment identique
Bon WE
Cdlmnt
On arrive à quelque chose de quasiment identique
Bon WE
Cdlmnt
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
Modifié par Mike-31 le 31/05/2014 à 18:04
Modifié par Mike-31 le 31/05/2014 à 18:04
Salut Via,
Oui tout a fait, j'attendais la réponse de Blocholivier voir s'il connaissait le VBA et s'il avait l'onglet Développeur pour créer un bouton activex et coller le code directement dedans mais vu sa réponse "Oula pas du tout." je suis resté prudent et avancé par petit coup, mais bon, il y a deux codes pour ceux à qui cela peut intéresser et puis avec les retours chariot dans les cellules il y a le Chr(13) etc ... qui n'ont pas été traités et peu faire l'objet d'autres demandes
cordialement
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Oui tout a fait, j'attendais la réponse de Blocholivier voir s'il connaissait le VBA et s'il avait l'onglet Développeur pour créer un bouton activex et coller le code directement dedans mais vu sa réponse "Oula pas du tout." je suis resté prudent et avancé par petit coup, mais bon, il y a deux codes pour ceux à qui cela peut intéresser et puis avec les retours chariot dans les cellules il y a le Chr(13) etc ... qui n'ont pas été traités et peu faire l'objet d'autres demandes
cordialement
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.