Bonjour à tous,
après avoir parcouru différents forum, j'ai trouvé un code qui semblait répondre à mes attentes.
Dans un premier temps, j'ai importé un fichier .txt en scindant les différentes lignes en 2 colonnes avec le résultat suivant :
Dans la prochaine étape, mon code doit récupérer en Col C la partie à gauche de la première "(" (il n'y en a qu'une au maximum) des cellules en Col B.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Col A Col B allege_26 allege_26.wag AVE 102 AVE_102.eng(AVE_102) AVE 102 AVE_102_Cafe.wag AVE 102 AVE_102_Estd.wag AVE 102 AVE_102_Ex_P.wag BB26000 BB26000.eng( BB26000 ) BeeKay_150X BeeKay_SNCF_VINS.wag(BeeKay Wagon SNCF A VINS) CiternElf CiternElf.wag(CiternElf)
On constate que dans certains cas cette portion de chaîne n'est pas supprimée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub Concat_RR() ' ' Concaténer_RR ' ' Effacer chaîne de caractère à partir de "(" Dim Deb As Byte Dim Cell As range Worksheets("RouteRiter").Activate Columns("A:A").Select For Each Cell In range("B1:B" & range("B65536").End(xlUp).Row) Deb = InStr(1, Cell, "(") If Not Deb = 1 Then Cell.Offset(0, 1) = left(Cell, Len(Cell) - Deb + 1) 'Offset(Ligne, Colonne) Cell = left(Cell, Deb + Len(Cell)) & "" End If Next Cell End Sub
Il est intéressant de constater que "BB26000.eng( BB26000 )" et "BeeKay_SNCF_VINS.wag( BeeKay Wagon SNCF A VINS )", ainsi que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Col A Col B Col C allege_26 allege_26.wag allege_26.wag AVE 102 AVE_102.eng( AVE_102 ) AVE_102.eng AVE 102 AVE_102_Cafe.wag AVE_102_Cafe.wag AVE 102 AVE_102_Estd.wag AVE_102_Estd.wag AVE 102 AVE_102_Ex_P.wag AVE_102_Ex_P.wag BB26000 BB26000.eng( BB26000 ) BB26000.eng BeeKay_150X BeeKay_SNCF_VINS.wag( BeeKay Wagon SNCF A VINS ) BeeKay_SNCF_VINS.wag( BeeK CiternElf CiternElf.wag( CiternElf ) CiternElf.wag D-AAEC_Sffggmrrss_MMP AAE_Sff_136-001_A.wag( AAE Sffggmrrss 136BASsw A ) AAE_Sff_136-001_A.wag( AAE
"AAE_Sff_136-001_A.wag( AAE Sffggmrrss 136BASsw A )" comportent tous les 3 un espace après la parenthèse, mais ne sont pas traités de la même manière.
La dernière étape de ce module consistera à concaténer en Col D le contenu de la Col C en fonction de la référence en Col A.
Exemple :
L'enregistreur de macros ne m'est malheureusement d'aucune utilité et j'aurais besoin qu'on me mette le pied à l'étrier, ici aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Col A Col D AVE 102 AVE_102.eng, AVE_102_Cafe.wag, AVE_102_Estd.wag, AVE_102_Ex_P.wag AVE 102 Ave 102 Ave 102
Merci d'avance pour toute aide.
Cordialement
Pascal
Partager