Convertir lignes d'une cellule en colonnes
Résolu/Fermé
Jimmy59116
Messages postés
45
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
30 janvier 2013
-
21 févr. 2011 à 11:03
Jimmy59116 Messages postés 45 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 30 janvier 2013 - 22 févr. 2011 à 09:33
Jimmy59116 Messages postés 45 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 30 janvier 2013 - 22 févr. 2011 à 09:33
A voir également:
- Convertir lignes d'une cellule en colonnes
- Aller à la ligne dans une cellule excel - Guide
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Excel cellule couleur si condition texte - Guide
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
21 févr. 2011 à 18:51
21 févr. 2011 à 18:51
Bonjour
Peut-^tre plus simple en utilisant VBA
Peut-^tre plus simple en utilisant VBA
Dim derlig As Long, lig As Long Dim tablo derlig = Cells(Cells.Rows.Count, 4).End(xlUp).Row Application.ScreenUpdating = False For lig = 2 To derlig tablo = Split(Cells(lig, 4), Chr(10)) Cells(lig, 5).Resize(1, UBound(tablo) + 1) = tablo Next
Jimmy59116
Messages postés
45
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
30 janvier 2013
1
22 févr. 2011 à 09:33
22 févr. 2011 à 09:33
Merci pour votre aide. La solution de Mélanie n'a pas fonctionné comme prévu, celle de Michel en revanche fonctionne à merveille.
Merci à toi Michel, ce n'est pas la première fois que tu me dépatouilles avec tes solutions miracles !
Merci à toi Michel, ce n'est pas la première fois que tu me dépatouilles avec tes solutions miracles !
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
21 févr. 2011 à 12:56
21 févr. 2011 à 12:56
bonjour,
tu rajoutes une boucle
en début de code :
i = 2
do while cells(i,4)<>"" 's'exécute jusqu'à ce que la ligne i, col 4 contient quelque chose
en fin de code
i=i+1 'on passe à la ligne suivante
loop
tu rajoutes une boucle
en début de code :
i = 2
do while cells(i,4)<>"" 's'exécute jusqu'à ce que la ligne i, col 4 contient quelque chose
en fin de code
i=i+1 'on passe à la ligne suivante
loop
Jimmy59116
Messages postés
45
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
30 janvier 2013
1
21 févr. 2011 à 13:20
21 févr. 2011 à 13:20
Bonjour Melanie,
Pour combiner le code, voici ce que j'ai écrit :
Sub transform_cellule()
Dim motaverif As String
Dim temp As String, alpha As String
Dim i As Long, j As Long, k As Long, posi As Long
Dim test As Boolean
alpha = Chr(10)
k = 1
test = False
motaverif = ActiveCell.Value
i = ActiveCell.Row
j = ActiveCell.Column
i = 2
Do While Cells(i, 4) <> "" 's'exécute jusqu'à ce que la ligne i, col 4 contient quelque chose
Do While k <= Len(motaverif)
temp = Mid(motaverif, k, 1)
posi = InStr(motaverif, alpha)
test = posi > 0
If test Then
Cells(i, j).Value = Left(motaverif, posi - 1)
Cells(i, j + 1).Value = Right(motaverif, Len(motaverif) - posi)
motaverif = Cells(i, j + 1).Value
k = 0
j = j + 1
End If
k = k + 1
Loop
i = i + 1 'on passe à la ligne suivante
Loop
End Sub
Je découvre à peine les fonctions for each do while etc... et visiblement, j'ai encore du mal !
Pourrais tu m'indiquer la correction et éventuellement m'expliquer rapidement comment organiser les arguments ?
Merci pour ton aide.
Jimmy
Pour combiner le code, voici ce que j'ai écrit :
Sub transform_cellule()
Dim motaverif As String
Dim temp As String, alpha As String
Dim i As Long, j As Long, k As Long, posi As Long
Dim test As Boolean
alpha = Chr(10)
k = 1
test = False
motaverif = ActiveCell.Value
i = ActiveCell.Row
j = ActiveCell.Column
i = 2
Do While Cells(i, 4) <> "" 's'exécute jusqu'à ce que la ligne i, col 4 contient quelque chose
Do While k <= Len(motaverif)
temp = Mid(motaverif, k, 1)
posi = InStr(motaverif, alpha)
test = posi > 0
If test Then
Cells(i, j).Value = Left(motaverif, posi - 1)
Cells(i, j + 1).Value = Right(motaverif, Len(motaverif) - posi)
motaverif = Cells(i, j + 1).Value
k = 0
j = j + 1
End If
k = k + 1
Loop
i = i + 1 'on passe à la ligne suivante
Loop
End Sub
Je découvre à peine les fonctions for each do while etc... et visiblement, j'ai encore du mal !
Pourrais tu m'indiquer la correction et éventuellement m'expliquer rapidement comment organiser les arguments ?
Merci pour ton aide.
Jimmy
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
21 févr. 2011 à 13:26
21 févr. 2011 à 13:26
re,
j'avais mal lue;
Voici la combinaison :
Sub transform_cellule()
Dim motaverif As String
Dim temp As String, alpha As String
Dim a,i As Long, j As Long, k As Long, posi As Long
Dim test As Boolean
alpha = Chr(10)
a = 2
Do While Cells(a, 4) <> "" 's'exécute jusqu'à ce que la ligne i, col 4 contient quelque chose
k = 1
test = False
motaverif = ActiveCell.Value
i = ActiveCell.Row
j = ActiveCell.Column
Do While k <= Len(motaverif)
temp = Mid(motaverif, k, 1)
posi = InStr(motaverif, alpha)
test = posi > 0
If test Then
Cells(i, j).Value = Left(motaverif, posi - 1)
Cells(i, j + 1).Value = Right(motaverif, Len(motaverif) - posi)
motaverif = Cells(i, j + 1).Value
k = 0
j = j + 1
End If
k = k + 1
Loop
a = a + 1 'on passe à la ligne suivante
Loop
End Sub
j'avais mal lue;
Voici la combinaison :
Sub transform_cellule()
Dim motaverif As String
Dim temp As String, alpha As String
Dim a,i As Long, j As Long, k As Long, posi As Long
Dim test As Boolean
alpha = Chr(10)
a = 2
Do While Cells(a, 4) <> "" 's'exécute jusqu'à ce que la ligne i, col 4 contient quelque chose
k = 1
test = False
motaverif = ActiveCell.Value
i = ActiveCell.Row
j = ActiveCell.Column
Do While k <= Len(motaverif)
temp = Mid(motaverif, k, 1)
posi = InStr(motaverif, alpha)
test = posi > 0
If test Then
Cells(i, j).Value = Left(motaverif, posi - 1)
Cells(i, j + 1).Value = Right(motaverif, Len(motaverif) - posi)
motaverif = Cells(i, j + 1).Value
k = 0
j = j + 1
End If
k = k + 1
Loop
a = a + 1 'on passe à la ligne suivante
Loop
End Sub