Autres Au pro de substitute, search, gauche, droite, ect ....

MarcT

XLDnaute Nouveau
Bonjour,
je cherche à répartir en plusieurs colonnes une colonne issu d'un import.
J'ai tout testé, split ou pas ! gauche/droite (même si cette notion n'a plus lieu d'être ;-)), TROUVE, SEARCH, ect ....
Je n'arrive pas du tout au résultat escompté !!!
Alors avant de m'arracher mes derniers cheveux, je viens chercher de l'aide
Voici ce que je voudrai
cellule initialeCe que je cherche à obtenir
Transport minicar 27 places avec chauffeur:
Départ le 01/06/2019 8:00
La Roche de Glun -Valence TGV
Retour le 01/06/2019 18:00
Valence TGV - La Roche de Glun

------------------
Détails prestation:
(Horaires et adresses à définir)
Transport minicar 27 places avec chauffeur:01/06/2019 08:00:00La Roche de Glun -Valence TGV01/06/2019 18:00:00Valence TGV - La Roche de GlunDétails prestation:
(Horaires et adresses à définir)
Transport minicar 27 places avec chauffeur:
Départ le 05/06/2019 9:00
Lyon -Valence


------------------
Détails prestation:
(Horaires et adresses à définir)
Transport minicar 27 places avec chauffeur:05/06/2019 09:00:00Lyon-ValenceDétails prestation:
(Horaires et adresses à définir)


merci d'avance
Bien cordialement
Marc
PS: si les colonnes C et E pouvaient être au format "date heure" dd/mm/aaaa 00:00 ce serait tip top !
 

MarcT

XLDnaute Nouveau
Bien sur
où avais je la tête,
ces formules me rende fou ;-)
attention le fichier posté "bouge" la mis en page les cellules A2, A3, ect ont plusieurs lignes
merci d'avance
@ bientôt
Cordialement
Marc
 

Pièces jointes

  • découpage.xlsx
    22.1 KB · Affichages: 8

Lolote83

XLDnaute Barbatruc
Salut,
Ce n'est pas encore parfait mais on s'y rapproche un peu ...
En copiant tes lignes 2 et 3 en 8 et 9 pour le test, voir le code ci-dessous
VB:
Sub TEST()
    For Each xCell In Range("A8:A9")
        xDecoupe = Split(xCell.Value, Chr(10))
        For F = 0 To UBound(xDecoupe) - 1
            Cells(xCell.Row, F + 2) = xDecoupe(F)
        Next F
    Next xCell
End Sub
Je cherche a améliorer, mais c'est un premier jet
@+ Lolote83
 

Lolote83

XLDnaute Barbatruc
Re salut MarcT,
En attendant mieux par formule, voici une nouvelle version qui reprend ta remarque
PS: si les colonnes C et E pouvaient être au format "date heure" dd/mm/aaaa 00:00 ce serait tip top !
VB:
Sub TEST()
    Dim xDepRet As Date
    For Each xCell In Range("A8:A9")
        xDecoupe = Split(xCell.Value, Chr(10))
        For F = 0 To UBound(xDecoupe) - 1
            If Left(xDecoupe(F), 6) = "Départ" Or Left(xDecoupe(F), 6) = "Retour" Then
                xDepRet = Mid(xDecoupe(F), 11, 16)
                Cells(xCell.Row, F + 2) = xDepRet
            Else
                Cells(xCell.Row, F + 2) = xDecoupe(F)
            End If
        Next F
    Next xCell
End Sub
@+ Lolote83
 

chris

XLDnaute Barbatruc
RE

J'ai commencé par remplacer
  • "Départ le" par rien
  • Idem pour "Retour le "
  • "Détails prestation:#(lf)" par "Détails prestation: " (remplace le saut de ligne par un espace)
Ensuite j'ai créé une colonne par formule (le plus compliqué ici) pour avoir le texte avec le même nombre de lignes avant ------- que j'ai supprimé
puis j'ai supprimé la colonne originale et fractionné ma colonne par ligne

Ne restait plus qu'a titrer les colonnes