Extraire des colonnes sur nouvel onglet et traitemeant

Bonjour,

Un début de réponse, sans grande conviction.

A tester.

Cdlt.

bonjour

MERCI

ça a l'air pas mal du tout

Bon perso j'ai beaucoup de mal à suivre le sujet

En gros dans une cellule tu as

"Note

1. blabla"

et dans une autre tu as

"Note

1. blabla

2. blabla"

Remarque1:

à quoi sert la première cellule au final?!!!

Si la cellule 2 c'est toujours cellule 1 +quelque chose, dans le traitement la cellule 1 ne sert à rien....

Remarque2:

Si la syntaxe est toujours

nombre + un point + un espace + du texte

et que le but est d'extraire chacune de ces occurences, et de les placer dans les colonnes correspondantes, fais moi signe.

Le sujet est simple, j'ai une cellule "NOTE" où l'utilisateur écrit ce qu'il veut.

Après cette note est appelée à évoluer et donc entre 2 dates nous devons être capable de voir ce qui est différent entre ces 2 NOTES.

d3d9x, ci dessous un exemple de cellule assez "fournie" ! Dans cet exemple, le traitement devrait farire ressortir la ligne:

Viscosity : 0.013cP

on peut constater que le saut de ligne n'est pas toujours identique.

Si tu as une idée, elle serait la bienvenue.

Ancienne NOTE:

NOTE

1. The limit opening stopper should be set at 78% of valve open.

2. The maximum allowable stoke time shall be 50 secs.

There are two liquids (LGHA & LPCA) flowing in this valve.

The operating condition for LPCA is mentioned below.

Normal Flowrate : 23.72 Kg/s

Operating Temp : 68.72 Deg C

Cp/Cv ratio : 1.307

Mol Weight : 20.33

Density : 21.77 Kg/m3

Inlet Pressure (min/nor/max) = 27.77/27.93/28.63 barg.

Outlet Pressure(min/nor/max) = 7/ 7/ 7.01 barg

Flow rate(min/nor/max) : 26.092 / 23.72 / 3.558 kg/s

Nouvelle NOTE

NOTE

1. The limit opening stopper should be set at 78% of valve open.

2. The maximum allowable stoke time shall be 50 secs.

There are two liquids (LGHA & LPCA) flowing in this valve.

The operating condition for LPCA is mentioned below.

Normal Flowrate : 23.72 Kg/s

Operating Temp : 68.72 Deg C

Cp/Cv ratio : 1.307

Mol Weight : 20.33

Density : 21.77 Kg/m3

Viscosity : 0.013cP

Inlet Pressure (min/nor/max) = 27.77/27.93/28.63 barg.

Outlet Pressure(min/nor/max) = 7/ 7/ 7.01 barg

Flow rate(min/nor/max) : 26.092 / 23.72 / 3.558 kg/s

Voilà une proposition.

15purpleman.xlsm (16.90 Ko)

Cette fonction ne doit pas être modifiée:

Function cpTexte(texte1 As String, texte2 As String)
'-------- variables
Dim temp As String
Dim reg As VBScript_RegExp_55.regexp
Dim Match As VBScript_RegExp_55.Match
Dim Matches As VBScript_RegExp_55.MatchCollection

'On place toujours la chaine avec le moins de caractères en texte1
If Len(texte1) > Len(texte2) Then
    temp = texte1
    texte1 = texte2
    texte2 = temp
End If

'----- recherche des lignes
Set reg = New VBScript_RegExp_55.regexp

reg.Pattern = "(.{1,})\n?"
reg.Global = True

Set Matches = reg.Execute(texte1)
For Each Match In Matches
    'Debug.Print "remove: " & Match.SubMatches(0)
    'On retire les lignes trouvées dans le premier texte
    texte2 = Replace(texte2, Match.SubMatches(0), "")
Next Match
'Debug.Print "------"

temp = ""
reg.Pattern = "(.{1,})\n?"
Set Matches = reg.Execute(texte2)
For Each Match In Matches
    'on stocke le résultat final dans la variable temp
    temp = temp & Match.SubMatches(0)
Next Match

cpTexte = temp

End Function

Et l'appel à cette fonction peut être fait:

Soit par VBA

sub maprocedure()
Dim resultat as String, text1 as string, text2 as string
text1 = ...
text2= ....
resultat = cpTexte(text1, text2)
End sub

ou directement dans une cellule, (par exemple)

=cpTexte(A1, B1)

Merci pour l'aide, mais la macro ne fonctionne pas, car je pense qu'elle est en français, j'ai modifié les "Texte" en "Text" mais non plus !

J'ai sauvegardé la mcro dans le fichier original pour que vous le testier.

Merci d'avance pour l'aide précieuse.

Patrick

quand je lance la macro

voilà ce que j'ai à l'écran

image4

Toutes mes excuses, il faut ajouter la référence aux expressions régulières pour que le code fonctionne.

Alt + F11 -> Outils -> références -> capture d'écran

capture

ok jai rajouté cette option mais cela ne fonctionne pas

regarde le dernier fichier que j'ai joins svp

Merci

J'avais dis une seule chose, ne pas toucher à la fonction.

Et là dans ma fonction, j'ai des text1 et des texte1, et pendant 10 minutes je comprend pas ce bordel -_-

Merci d'avoir pris le temps de regarder.

Désolé pour le "bordel" mais je pensais (à tord) qu'il fallait le mettre en anglais !!!

J'ai regardé et je m'aperçois que par exemple la ligne 4 ne fonctionne pas, alors qu'il ne devrait trouver qu'une ligne, il met toute la cellule en modification. En fait, pas mal dans le même cas.

Tu devrais peut-être nettoyer tes données... Tu n'as pas deux lignes avec les même règles.

Si tu respectais la syntaxe donnée dans tes messages, à savoir:

Note + saut à la ligne + 1. texte + saut à la ligne + 2. texte + etc..

Le programme fonctionnerait sans problème. Je l'ai fait à partir de cette syntaxe.

Mais là ça marchera pas xD

Et oui je te comprends bien mais là est le problème, c'est que les personnes qui remplissent la note ne le font pas tous de la même façon.

c'est pour cela qu'au départ je pensais enlever les "Alt+entrée" et ensuite vérifier.

Mais effectivement je ne pense pas que cela soit facile

Rechercher des sujets similaires à "extraire colonnes nouvel onglet traitemeant"