OVH Cloud OVH Cloud

éclatement d'une cellule en x cellules

5 réponses
Avatar
yannick
bonjour,
je cherche un moyen pour traiter une cellule contenant plusieurs champs
séparés par autant de ";" en autant de cellules qu'il y a de ";" les uns en
dessous des autres.

Ex: cellule contenant "toto;titi;tata" devra donner "toto" puis insérer dans
la cellule dessous "titi" puis insérer dans la cellule de dessous "tata"

Merci pour votre aide précieuse.

Yannick

5 réponses

Avatar
Christophe CAMPAIN
Bonjour yannick,

Essayes la fonction "convertir" (Données - Convertir...)
Ca devrait répondre à ton problème.

Kristof

"yannick" a écrit dans le message de news:
eX0WrR$
bonjour,
je cherche un moyen pour traiter une cellule contenant plusieurs champs
séparés par autant de ";" en autant de cellules qu'il y a de ";" les uns
en

dessous des autres.

Ex: cellule contenant "toto;titi;tata" devra donner "toto" puis insérer
dans

la cellule dessous "titi" puis insérer dans la cellule de dessous "tata"

Merci pour votre aide précieuse.

Yannick




Avatar
yannick
merci, c'est presque ce que je recherche, sauf qu'il éclate tout en ligne.
Moi j'aimerai qu'il le fasse en colonne, c'est à dire qu'il insere autant de
ligne qu'il y a d'éléments de la cellule initiale.
Enfin, il faudrait l'inclure dans une macro pour l'executer sur une colonne
entiere de façon automatique.
Comme je suis novice, je vois pas trop par où commencer :-s
"Christophe CAMPAIN" a écrit
dans le message de news:OlS4Mh$
Bonjour yannick,

Essayes la fonction "convertir" (Données - Convertir...)
Ca devrait répondre à ton problème.

Kristof

"yannick" a écrit dans le message de news:
eX0WrR$
bonjour,
je cherche un moyen pour traiter une cellule contenant plusieurs champs
séparés par autant de ";" en autant de cellules qu'il y a de ";" les uns
en

dessous des autres.

Ex: cellule contenant "toto;titi;tata" devra donner "toto" puis insérer
dans

la cellule dessous "titi" puis insérer dans la cellule de dessous "tata"

Merci pour votre aide précieuse.

Yannick








Avatar
2B or not 2B
Il suffirait sans doute de considérer ; comme séparateur de champ.

Faire un enregistrer sous du document, et choisir le format txt.
Puis ouvrir le document txt avec XL qui propose automatiquement
d'interpréter les ; en séparateurs de champs.

tu auras autant de colonnes que de toto;titi;tata....

reste plus qu'à transposer les colonnes en lignes (copier/position sur
la premier cellule de la ligne/collage spécial cocher transposer)
Avatar
ChrisV
Bonjour Yannick,

La plage de cellules "source" étant préalablement sélectionnée...

Sub zaza()
Dim i As Integer, adC As String, adS As String
Dim j As Integer, nbL As Integer
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
adC = ActiveCell.Address
adS = ActiveSheet.Name
Selection.Copy
Sheets.Add.Name = "extrac"
ActiveSheet.Paste
Selection.TextToColumns FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1))
For i = [A1].End(xlDown).Row To 1 Step -1
nbL = Cells(i, 1).End(xlToRight).Column - 1
Range(Cells(i, 1)(2), Cells(i, 1).Offset(nbL)) _
.Insert Shift:=xlDown
For j = 1 To nbL
Cells(i + j, 1) = Cells(i, 1 + j)
Next j
Next i
On Error Resume Next
Range("A1", [A1].End(xlDown)).Copy _
Destination:=Sheets(adS).Range(adC)
Sheets("extrac").Delete
Range(adC).Select
End Sub


ChrisV


"yannick" a écrit dans le message de news:
eCg7px$
merci, c'est presque ce que je recherche, sauf qu'il éclate tout en ligne.
Moi j'aimerai qu'il le fasse en colonne, c'est à dire qu'il insere autant
de

ligne qu'il y a d'éléments de la cellule initiale.
Enfin, il faudrait l'inclure dans une macro pour l'executer sur une
colonne

entiere de façon automatique.
Comme je suis novice, je vois pas trop par où commencer :-s
"Christophe CAMPAIN" a écrit
dans le message de news:OlS4Mh$
Bonjour yannick,

Essayes la fonction "convertir" (Données - Convertir...)
Ca devrait répondre à ton problème.

Kristof

"yannick" a écrit dans le message de news:
eX0WrR$
bonjour,
je cherche un moyen pour traiter une cellule contenant plusieurs
champs



séparés par autant de ";" en autant de cellules qu'il y a de ";" les
uns



en
dessous des autres.

Ex: cellule contenant "toto;titi;tata" devra donner "toto" puis
insérer



dans
la cellule dessous "titi" puis insérer dans la cellule de dessous
"tata"




Merci pour votre aide précieuse.

Yannick












Avatar
M. PETIT
Bonsoir
Utiliser la fonction Split () en vba
(2000 ou xp) pour découper le texte
A+

"yannick" a écrit dans le message de news:
eX0WrR$
bonjour,
je cherche un moyen pour traiter une cellule contenant plusieurs champs
séparés par autant de ";" en autant de cellules qu'il y a de ";" les uns
en

dessous des autres.

Ex: cellule contenant "toto;titi;tata" devra donner "toto" puis insérer
dans

la cellule dessous "titi" puis insérer dans la cellule de dessous "tata"

Merci pour votre aide précieuse.

Yannick