Microsoft 365 Comment séparer des données texte sans éléments remarquable

Neron999

XLDnaute Nouveau
Bonjour à tous,

Voila je suis confronté a un problème, je doit traiter environ 10000 celulles comportant du text pour les intégré dans un logiciel tiers.
Les données sont sous cette forme:
"1989
Kaft "inspecties pipe rack deel E"
- visuele controle van balk 1 t.e.m. 10: geen opmerkingen

1992
kaft "Algemene stilstand 1992 inspectie steunpunten, ..." deel ERU
- US diktemetingen= min 2.4 mm (EL 4500).

2001
"Inspecties leidingen algemeen 11/2001-2002"
- leiding verbogen , gedemonteerd en vervangen door een parallelle leiding

10/2001
"Inspectiejaarboek 2001-2002" Rapport B01129.
- visueel onderzoek + PT ter hoogte van de verbuiging: lasnaad bocht bevat gebreken, enkele mechanische beschadigingen
- US diktemetingen: geen waarden beschikbaar
- na vervangen: koudwaterdrukproef

08/2007
Inspectie piperack stockage BPE07155 - visueel uitwendig - geen opmerkingen, beugels vervangen door inox beugels - uitwendig poorly

1/10/2007
Visueel uitwendig (rondgang) - tussenstuk geschroefd = te vervangen - uitwendig poorly (BPE07209)

05/2008
Visueel uitwendig + US diktemetingen piperack gedeelte ERU - min. 2.4 mm gemeten; T-stuk en valve vervangen door inox (melding 810299416) - uitwendig fairly (BPE08054)

27/01/2014
Visuele inspectie tijdens rondgang kleine aftakkingen en US wanddiktemetingen op kleine aftakking.
Spoolstuk met geschroefde onderdelen in de leiding. Bestaande melding 810236293 voor het vervangen van het spoolstuk.
Hendel van een afsluiter 1" in de leiding is doorgeroest en daardoor onbruikbaar.
Wanddiktemetingen : kleine aftakking ¾" (RVS) = min. 2,8 mm.
HIGHLY (uitwendig)
Inspectieverslag BPE14011"

Je voudrais les séparer en ayant une colonne pour l'année du premier événement et la colonne suivante le commentaire, ainsi de suite pour découper les dates et evenements.

Je vous met un fichier en pièce jointe pour vous montrer.

La solution de la conversion excel n'est pas viable car les donnée sont modifier régulièrement, et doivent passer par le fichier Excel pour être charger vers le second logiciel.

merci de votre aide.

cdlt,
 

Pièces jointes

  • exemple.xlsx
    14.3 KB · Affichages: 21

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Néron,
Ardu comme problème.
Un essai en PJ avec une fonction perso :
VB:
Function Lire()
Dim L%, C%, Erreur%, N%, i%, Ind%, Rep1%, Rep2
L = Application.Caller.Row: C = Application.Caller.Column   ' Récupération ligne colonne de la cellule appelante
tablo = Split(Cells(L, "A"), Chr(10))                       ' Transfert chaine dans array, séparateur retour à la ligne
Rep1 = Int(C / 2) - 1: Rep2 = C - 2 * (Rep1 + 1)            ' Calcul de la position de la réponse et si année ou texte
Erreur = 1: N = 0                                           ' Gestion erreur où pas de réponse dans le tableau
For i = 0 To UBound(tablo)
    If IsNumeric(Left(tablo(i), 1)) Then                    ' Si premier caractère est un chiffre
        If Rep1 = N Then
            Erreur = 0
            Exit For
        End If
        N = N + 1
    End If
Next i
If Erreur = 1 Then                                          ' Si erreur alors pas trouvé, renvoie vide
    Lire = ""
    Exit Function
End If
Ind = i + 1                                                 ' On concatène les chaines entre deux dates pour la réponse
While tablo(Ind) <> ""
    Chaine = Chaine & Chr(10) & tablo(Ind)
    If Ind <= UBound(tablo) Then Ind = Ind + 1
Wend
If Rep2 = 0 Then Lire = tablo(i) Else Lire = Chaine         ' On renvoie année ou texte suivant colonne paire ou impaire
End Function
La syntaxe est tout simplement =Lire() sans passage de paramètres.
Le traitement est assez long. Je pense qu'il y a surement plus rapide, mais je sèche.
 

Pièces jointes

  • Neron V1.xlsm
    31.1 KB · Affichages: 6

Neron999

XLDnaute Nouveau
Merci, c'est presque ca, sauf que le texte n'est pas séparer, on a bien l'année mais pas le texte correspondant uniquement 0 cette année la.

Je pense avoir trouvé avec des fonctions de bases excel mais les formules se compliquent au fur et a mesure des années.

et j'ai un problème pour avoir l'année séparé du texte, je dois faire une erreur dans la formule, le but est de chercher le texte entre "|"
 

Pièces jointes

  • SOLUTION 1 DECOMPOSITION.zip
    274.5 KB · Affichages: 3
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Dans le fichier que j'ai joint la séparation semble correcte pourtant.
Les dates sont à leurs place.
Excepté les "3036-2" -A & BB1" mais c'est le texte d'origine qui est ainsi structuré.
Le faire par formules est sans doute possible. Mais ça va vite devenir complexe.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Oups! je ne l'avais pas vu celle là.
En PJ un essai.
C'est du au fait que les retours à la ligne ont quelquefois un espace ou non.
C'est toujours compliqué d'extraire des données comme ici car l'importation ne vous garantit pas une structure "propre" et bien définie.
Vous aurez le même souci en formules je pense.
 

Pièces jointes

  • Neron V1 (3).xlsm
    29.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Voilà ce que j'obtiens :
1615817178174.png

Dans votre fichier les données sont bien en colonne A ? car c'est de base la colonne que j'analyse.
 

Statistiques des forums

Discussions
314 562
Messages
2 110 729
Membres
110 909
dernier inscrit
François19