Extrait une partie de texte dans une cellule

Résolu/Fermé
Dav - 24 nov. 2011 à 23:17
 Dav - 26 nov. 2011 à 13:19
Bonsoir, dans excel
Comment extrait une partie de texte dans une cellule et le coller dans une autre cellule?

EX: dans la cellule dans A1( TTTTTT DDDDDD SSSSS GGGGGG)

Mettre dans B1 (TTTTTT)
Mettre dans C1 (DDDDDD)
Mettre dans D1 (SSSSS)
Mettre dans D1 (GGGGGG)

Merci d'avance


4 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 078
25 nov. 2011 à 10:41
Salut,

Si chaque mot est séparé par un espace, tu peux également faire directement avec la fonction Convertir

sélectionne la liste de tes données/Données/Convertir/coche Délimité/Suivant/coche Espace/Suivant et Terminer

tes données se placeront automatiquement dans chaque colonne.
Par contre si tu souhaites garder les données initiales en colonne A, tu commences par les copier en B et tu appliques la procédure sur la colonne B

2
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
25 nov. 2011 à 02:58
Bonjour
Une solution mais en VBA ?
Private Sub Separer()
Dim TB, i As Integer
    TB = Split([A1], " ")
    For i = 0 To UBound(TB)
        [B1].Offset(0, i) = TB(i)
    Next i
End Sub
A+
1
Bonsoir
Merci,ca marche trés bien.
Et si j'ai du texte de A1 à A10, ou jusqu'a ex : A200 ?
A+
0
Boujour
Ca me mais en erreu ?
Je n'arrive pas a vous inserré mon dossier

A+
0
Bonjour désolé
Ok j'ai trouver l'erreu,dans mon mail il me manquai une lettre dans la formule comme ci-dessous.
nex Cel il maquais le T
Merci
A+


Private Sub Separer()
Dim TB, i As Integer
Dim Plage As Range, Cel As Range
Set Plage = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each Cel In Plage
TB = Split(Cel, " ")
For i = 0 To UBound(TB)
Cel.Offset(0, i + 1) = TB(i)
Next i
nex Cel
End Sub
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 26/11/2011 à 01:48
Private Sub Separer() 
Dim TB, i As Integer 
Dim Plage As Range, Cel As Range 
    Set Plage = Range("A1:A" & Range("A65536").End(xlUp).Row) 
    For Each Cel In Plage 
    TB = Split(Cel, " ") 
        For i = 0 To UBound(TB) 
            Cel.Offset(0, i + 1) = TB(i) 
        Next i 
    Next Cel 
End Sub


Commence à la ligne 1 jusque la dernière ligne renseignée.
Éventuellement changer la plage si ce n'est pas les bonnes adresses.
A+
Si tu </code>te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
-1