Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

concatener tout particulièrement, comment faire ?

9 réponses
Avatar
jipeache
Bonjour,
j'ai un tableau de plus de 6000 lignes contenant en col F et G des
donn=E9es tr=E8s mal saisies que je dois remettre en forme selon l'exemple
joint qui reprend les diff=E9rents cas existants (col A et B) et ce que
je souhaite obtenir (col D) ici : http://cjoint.com/?ezo4EAxUln.
Quelqu'un aurait-il une astuce ?
Merci d'avance
jp

9 réponses

Avatar
René Delcourt
Salut,
C'est tout simple :
= "tout" & "particulièrement"
:-)

En attendant une réponse à mon appel au secours, j'ai pondu un truc pas très
joli mais qui marche.
Il y a certainement un de nos experts qui se penchera sur ce problème par VBA

http://cjoint.com/?ezpVtIW0T1

--
René Delcourt



Bonjour,
j'ai un tableau de plus de 6000 lignes contenant en col F et G des
données très mal saisies que je dois remettre en forme selon l'exemple
joint qui reprend les différents cas existants (col A et B) et ce que
je souhaite obtenir (col D) ici : http://cjoint.com/?ezo4EAxUln.
Quelqu'un aurait-il une astuce ?
Merci d'avance
jp



Avatar
Ellimac
Bonjour,

¡&" "&DROITE(B1;4)

Camille

"jipeache" a écrit dans le message de news:

Bonjour,
j'ai un tableau de plus de 6000 lignes contenant en col F et G des
données très mal saisies que je dois remettre en forme selon l'exemple
joint qui reprend les différents cas existants (col A et B) et ce que
je souhaite obtenir (col D) ici : http://cjoint.com/?ezo4EAxUln.
Quelqu'un aurait-il une astuce ?
Merci d'avance
jp
Avatar
Philippe.R
Bonsoir,
Un début de piste, à travailler :
=SUBSTITUE(SI(ESTERR(TROUVE(CAR(10);A1));A1&"
"&B1;GAUCHE(A1;TROUVE(CAR(10);A1)-1)&SI(GAUCHE(B1;1)ÊR(10);"";GAUCHE(B1;TROUVE(CAR(10);B1)-1))&"
;
"&DROITE(GAUCHE(A1;TROUVE(CAR(10);A1;TROUVE(CAR(10);A1)+1)-1);NBCAR(GAUCHE(A1;TROUVE(CAR(10);A1;TROUVE(CAR(10);A1)+1)-1))-NBCAR(GAUCHE(A1;TROUVE(CAR(10);A1)))))&SI(GAUCHE(B1;2)ÊR(10);"";GAUCHE(B1;TROUVE(CAR(10);B1;2)-1));CAR(10);"
")
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"jipeache" a écrit dans le message de
news:
Bonjour,
j'ai un tableau de plus de 6000 lignes contenant en col F et G des
données très mal saisies que je dois remettre en forme selon l'exemple
joint qui reprend les différents cas existants (col A et B) et ce que
je souhaite obtenir (col D) ici : http://cjoint.com/?ezo4EAxUln.
Quelqu'un aurait-il une astuce ?
Merci d'avance
jp
Avatar
Sam
Bonjour,
oui ce fut aussi pour moi une piste de recherche : trouver le "pour" suivi
du retour CAR(10) ou le "en" suivi du CAR(10)
mais ce format ne semble pas être respecté pour la dernière date.

Il faudrait le faire sur plusieurs colonnes :
- trouver la fin des "pour" et "en" suivis de CAR(10) de A en supposant 4 ou
5 existences de ces termes (sur 5 colonnes)
- isoler les dates de B (sur 5 colonnes)
- mettre chaque date derrière chaque fin de "pour" ou "en" (sur 5 colonnes -
la dernière étant le résultat)
en gérant les conditions existence de ces éléments.

J'ai abandonné cette recherche, j'ai d'autres urgences.
Cordialement
Michel

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:

Bonsoir,
Un début de piste, à travailler :
=SUBSTITUE(SI(ESTERR(TROUVE(CAR(10);A1));A1&"
"&B1;GAUCHE(A1;TROUVE(CAR(10);A1)-1)&SI(GAUCHE(B1;1)ÊR(10);"";GAUCHE(B1;TROUVE(CAR(10);B1)-1))&"
;
"&DROITE(GAUCHE(A1;TROUVE(CAR(10);A1;TROUVE(CAR(10);A1)+1)-1);NBCAR(GAUCHE(A1;TROUVE(CAR(10);A1;TROUVE(CAR(10);A1)+1)-1))-NBCAR(GAUCHE(A1;TROUVE(CAR(10);A1)))))&SI(GAUCHE(B1;2)ÊR(10);"";GAUCHE(B1;TROUVE(CAR(10);B1;2)-1));CAR(10);"
")
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"jipeache" a écrit dans le message de
news:
Bonjour,
j'ai un tableau de plus de 6000 lignes contenant en col F et G des
données très mal saisies que je dois remettre en forme selon l'exemple
joint qui reprend les différents cas existants (col A et B) et ce que
je souhaite obtenir (col D) ici : http://cjoint.com/?ezo4EAxUln.
Quelqu'un aurait-il une astuce ?
Merci d'avance
jp


Avatar
PMO
Bonjour,

Une piste, en VBA, avec le code suivant à copier dans un module standard.

Je me suis référé à votre classeur sur Cjoint.com mais j'ai
traité les colonnes F:G (comme précisées d'en votre demande)
plutôt que les colonnes A:B de ce classeur. Le traitement
commence en ligne 1.
Il est, par conséquent, IMPERATIF que les données soient en
colonnes F:G et qu'elles commencent en ligne 1.

Le résultat s'affichera en colonne A d'une nouvelle feuille.

'****************
Sub ConcatPMO()
Dim nbLig&
Dim T$()
Dim var
Dim i&
Dim A$
Dim monText$
Dim maDate$
Dim x%
Dim y%
nbLig& = [f65536].End(xlUp).Row
ReDim T$(1 To nbLig&, 1 To 1)
var = Range("f1:g" & nbLig& & "")
For i& = 1 To nbLig&
A$ = ""
monText$ = var(i&, 1)
maDate$ = var(i&, 2)
Do Until monText$ = ""
If A$ <> "" And Right(A$, 2) <> ". " _
And Left(monText$, 1) <> "(" Then _
A$ = A$ & "; "
x% = InStr(1, monText$, Chr(10))
If x% > 1 Then
A$ = A$ & Mid(monText$, 1, x% - 1)
Else
A$ = A$ & monText$
End If
If Right(A$, 7) = "unique)" Then A$ = A$ & "."
A$ = A$ & Space(1)
monText$ = Mid(monText$, x% + 1)
If x% = 0 Then monText$ = ""
y% = InStr(1, maDate$, Chr(10))
If y% > 1 Then
A$ = A$ & Mid(maDate$, 1, y% - 1) & Space(1)
ElseIf y% = 0 Then
A$ = A$ & maDate$ & Space(1)
End If
maDate$ = Mid(maDate$, y% + 1)
If y% = 0 Then maDate$ = ""
Loop
T$(i&, 1) = Trim(A$)
Next i&
Sheets.Add
Range("a1:a" & nbLig& & "") = T$
End Sub
'****************

Cordialement.

PMO
Patrick Morange
Avatar
Sam
Bonjour,
la réponse est en colonne N sur le tableau
http://cjoint.com/?eAuXiyndeu
Cordialement
Michel

"jipeache" a écrit dans le message de news:

Bonjour,
j'ai un tableau de plus de 6000 lignes contenant en col F et G des
données très mal saisies que je dois remettre en forme selon l'exemple
joint qui reprend les différents cas existants (col A et B) et ce que
je souhaite obtenir (col D) ici : http://cjoint.com/?ezo4EAxUln.
Quelqu'un aurait-il une astuce ?
Merci d'avance
jp
Avatar
jipeache
On 26 avr, 18:23, PMO <patrickPOINTmorangeAROBASElapostePOINTnet>
wrote:
Bonjour,

Une piste, en VBA, avec le code suivant à copier dans un module standar d.

Je me suis référé à votre classeur sur Cjoint.com mais j'ai
traité les colonnes F:G (comme précisées d'en votre demande)
plutôt que les colonnes A:B de ce classeur. Le traitement
commence en ligne 1.
Il est, par conséquent, IMPERATIF que les données soient en
colonnes F:G et qu'elles commencent en ligne 1.

Le résultat s'affichera en colonne A d'une nouvelle feuille.

'****************
Sub ConcatPMO()
Dim nbLig&
Dim T$()
Dim var
Dim i&
Dim A$
Dim monText$
Dim maDate$
Dim x%
Dim y%
nbLig& = [f65536].End(xlUp).Row
ReDim T$(1 To nbLig&, 1 To 1)
var = Range("f1:g" & nbLig& & "")
For i& = 1 To nbLig&
A$ = ""
monText$ = var(i&, 1)
maDate$ = var(i&, 2)
Do Until monText$ = ""
If A$ <> "" And Right(A$, 2) <> ". " _
And Left(monText$, 1) <> "(" Then _
A$ = A$ & "; "
x% = InStr(1, monText$, Chr(10))
If x% > 1 Then
A$ = A$ & Mid(monText$, 1, x% - 1)
Else
A$ = A$ & monText$
End If
If Right(A$, 7) = "unique)" Then A$ = A$ & "."
A$ = A$ & Space(1)
monText$ = Mid(monText$, x% + 1)
If x% = 0 Then monText$ = ""
y% = InStr(1, maDate$, Chr(10))
If y% > 1 Then
A$ = A$ & Mid(maDate$, 1, y% - 1) & Space(1)
ElseIf y% = 0 Then
A$ = A$ & maDate$ & Space(1)
End If
maDate$ = Mid(maDate$, y% + 1)
If y% = 0 Then maDate$ = ""
Loop
T$(i&, 1) = Trim(A$)
Next i&
Sheets.Add
Range("a1:a" & nbLig& & "") = T$
End Sub
'****************

Cordialement.

PMO
Patrick Morange


Bonjour,
Merci beaucoup pour la macro qui fonctionne (PMO).
j'ai des soucis mais en fait j'ai compris enfin que pour aligner ses
dates la personne qui a saisi a utilisé soit le retour dans la cellule
soit parfois un alignement bas dans la cellule...
le joyeux bordel quoi.
Je reprends tout ça et utiliserai cette macro efficace (pour l'instant
dans environ la moitié des cas de ce tableau vraiment foireux).
merci encore
Pour les autres réponses, j'ai testé sans succès, peut-être à caus e du
tableau bizarre, et certainement à cause de mes connaissances limitées
pour peaufiner les pistes indiquées.
Merci à tous

Avatar
Sam
Bonjour,
ah zut, moi qui croyais avoir trouvé la bonne solution ! ;-)
mais je n'avais peut être pas mis le mode d'emploi :
- copier les colonnes F et G du tableau d'origine en colonnes A et B de mon
tableau
- étendre les formules de la ligne 4 colonnes D à R à toutes les lignes
- puis copier la colonne N et coller via "collage spécial valeur" dans la
colonne qui va bien du tableau d'origine

Cordialement
Michel

Bonjour,
Merci beaucoup pour la macro qui fonctionne (PMO).
j'ai des soucis mais en fait j'ai compris enfin que pour aligner ses
dates la personne qui a saisi a utilisé soit le retour dans la cellule
soit parfois un alignement bas dans la cellule...
le joyeux bordel quoi.
Je reprends tout ça et utiliserai cette macro efficace (pour l'instant
dans environ la moitié des cas de ce tableau vraiment foireux).
merci encore
Pour les autres réponses, j'ai testé sans succès, peut-être à cause du
tableau bizarre, et certainement à cause de mes connaissances limitées
pour peaufiner les pistes indiquées.
Merci à tous
Avatar
jipaih
"Sam" a écrit dans le message de news:
4815b94f$0$906$

Bonjour,
ah zut, moi qui croyais avoir trouvé la bonne solution ! ;-)
mais je n'avais peut être pas mis le mode d'emploi :
- copier les colonnes F et G du tableau d'origine en colonnes A et B de
mon tableau
- étendre les formules de la ligne 4 colonnes D à R à toutes les lignes
- puis copier la colonne N et coller via "collage spécial valeur" dans la
colonne qui va bien du tableau d'origine

Cordialement
Michel

Re-bonjour

J'ai testé aussi cette solution, qui fonctionne également, juste après ma
1ere réponse (du boulot ; là j'écris du domicile)
Il y a aussi quelques problèmes, sans doute dus à l'incohérence du fichier
lui-même, mais globalement elle fonctionne.
Je crois qu'avec un "mix" des 2, je devrais arriver à combler les petites
erreurs de l'une ou l'autre pour arriver à un résultat satisfaisant.
La personne qui a (mal) saisi ce fichier se chargera des contrôles, ce sera
sa punition ;-)
Merci encore, car de toutes façons, ces solutions me re-serviront, car j'ai
relativement souvent ce type de soucis avec des fichiers "mal" saisis, à
réimporter dans un autre logiciel très pointilleux sur la forme...
jp