Extrait une partie de texte dans une cellule

Résolu
Dav -  
 Dav -
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

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. Dav
       
      Bonsoir
      Merci,ca marche trés bien.
      Et si j'ai du texte de A1 à A10, ou jusqu'a ex : A200 ?
      A+
      0
  3. Dav
     
    Boujour
    Ca me mais en erreu ?
    Je n'arrive pas a vous inserré mon dossier

    A+
    0
    1. Dav
       
      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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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