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

concaténation de données dans des lignes différentes

8 réponses
Avatar
Orsu
Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par identifiant
agrégeant l'ensemble des informations des lignes initiales (l'équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ...) je
suis preneur.....

Merci d'avance pour vos lumières !

8 réponses

Avatar
Daniel
Bonjour.
Quelques précisions. Si l'identifiant est en colonne A, sur la deuxième
ligne de données concernant cet identifiant, retrouve-t-on l'identifiant en
colonne A ou y a-t-il des données en colonne A concernant cet identifiant.
Si oui, comment reconnaît-on un identifiant ?
exemple1
A1 ID1, B1 donnée1, A2 ID1, B2 donnée n
exemple 2
A1 ID1, B1 donnée1, A2 donnée n
lequel de ces 2 exemples est le bon ?
Cordialement.
Daniel
"Orsu" a écrit dans le message de news:

Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par
identifiant
agrégeant l'ensemble des informations des lignes initiales (l'équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ...)
je
suis preneur.....

Merci d'avance pour vos lumières !


Avatar
Orsu
Merci de t'interesser à mon pbme.

Ci-joint les précisions demandées :
L'identifiant est toujours dans la même colonne, quel que soit le nb de
lignes : c'est donc la structure de l'exemple 1 qui se rapproche le plus de
ma base.

Bien cordialement, Orsu

"Daniel" wrote:

Bonjour.
Quelques précisions. Si l'identifiant est en colonne A, sur la deuxième
ligne de données concernant cet identifiant, retrouve-t-on l'identifiant en
colonne A ou y a-t-il des données en colonne A concernant cet identifiant.
Si oui, comment reconnaît-on un identifiant ?
exemple1
A1 ID1, B1 donnée1, A2 ID1, B2 donnée n
exemple 2
A1 ID1, B1 donnée1, A2 donnée n
lequel de ces 2 exemples est le bon ?
Cordialement.
Daniel
"Orsu" a écrit dans le message de news:

Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par
identifiant
agrégeant l'ensemble des informations des lignes initiales (l'équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ...)
je
suis preneur.....

Merci d'avance pour vos lumières !







Avatar
Daniel
Regarde la macro "Regrouper" du classeur à l'adresse :
http://cjoint.com/?frrr6pA7zM
Il ne faut toutefois pas avoir plus de 255 cellules par identifiant à moins
que tu n'utilises XL2007.
Daniel
"Orsu" a écrit dans le message de news:

Merci de t'interesser à mon pbme.

Ci-joint les précisions demandées :
L'identifiant est toujours dans la même colonne, quel que soit le nb de
lignes : c'est donc la structure de l'exemple 1 qui se rapproche le plus
de
ma base.

Bien cordialement, Orsu

"Daniel" wrote:

Bonjour.
Quelques précisions. Si l'identifiant est en colonne A, sur la deuxième
ligne de données concernant cet identifiant, retrouve-t-on l'identifiant
en
colonne A ou y a-t-il des données en colonne A concernant cet
identifiant.
Si oui, comment reconnaît-on un identifiant ?
exemple1
A1 ID1, B1 donnée1, A2 ID1, B2 donnée n
exemple 2
A1 ID1, B1 donnée1, A2 donnée n
lequel de ces 2 exemples est le bon ?
Cordialement.
Daniel
"Orsu" a écrit dans le message de news:

Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à
un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si
une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de
lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par
identifiant
agrégeant l'ensemble des informations des lignes initiales
(l'équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros,
...)
je
suis preneur.....

Merci d'avance pour vos lumières !









Avatar
JB
Bonjour,

Sub transforme()
ncol = Sheets(1).[A1].CurrentRegion.Columns.Count
LigneSrc = 1
ligneDest = 1
Do While Sheets(1).Cells(LigneSrc, 1) <> ""
temp = Sheets(1).Cells(LigneSrc, 1)
Sheets(2).Cells(ligneDest, 1) = temp
Do While Sheets(1).Cells(LigneSrc, 1) = temp
For Col = 2 To ncol
If Sheets(1).Cells(LigneSrc, Col) <> "" Then _
Sheets(2).Cells(ligneDest, Col) = Sheets(1).Cells(LigneSrc,
Col)
Next Col
LigneSrc = LigneSrc + 1
Loop
ligneDest = ligneDest + 1
Loop
End Sub

http://cjoint.com/?frtzVlKI7x

Cordialement JB

On 17 mai, 14:17, Orsu wrote:
Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de li gnes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par ide ntifiant
agrégeant l'ensemble des informations des lignes initiales (l'équival ent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ...) je
suis preneur.....

Merci d'avance pour vos lumières !


Avatar
Orsu
Merci à Daniel pour sa réponse, qui fonctionne trés bien compte tenu de mes
maigres explications..., mais, pour d'autres motifs de contexte, la solution
que tu as proposée correspond quasiment parfaitement à ce que je recherche,
et donc un grand merci à toi .

Une seule petite question d'adaptation : l'identifiant n'est pas dans la
première colonne mais dans la 7eme : peux tu m'indiquer quel élément modifier
dans la macro stp (je sais que mon ignorance est vraiment pathétique .....)

Merci d'avance !!

"JB" wrote:

Bonjour,

Sub transforme()
ncol = Sheets(1).[A1].CurrentRegion.Columns.Count
LigneSrc = 1
ligneDest = 1
Do While Sheets(1).Cells(LigneSrc, 1) <> ""
temp = Sheets(1).Cells(LigneSrc, 1)
Sheets(2).Cells(ligneDest, 1) = temp
Do While Sheets(1).Cells(LigneSrc, 1) = temp
For Col = 2 To ncol
If Sheets(1).Cells(LigneSrc, Col) <> "" Then _
Sheets(2).Cells(ligneDest, Col) = Sheets(1).Cells(LigneSrc,
Col)
Next Col
LigneSrc = LigneSrc + 1
Loop
ligneDest = ligneDest + 1
Loop
End Sub

http://cjoint.com/?frtzVlKI7x

Cordialement JB

On 17 mai, 14:17, Orsu wrote:
Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par identifiant
agrégeant l'ensemble des informations des lignes initiales (l'équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ...) je
suis preneur.....

Merci d'avance pour vos lumières !







Avatar
JB
J'ai supposé qu'il y avait 7 colonnes. S'il y a + de 7 colonnes,
rétablir la boucle en commentaire.

http://cjoint.com/?frvfpllKyz

JB

On 17 mai, 20:04, Orsu wrote:
Merci à Daniel pour sa réponse, qui fonctionne trés bien compte ten u de mes
maigres explications..., mais, pour d'autres motifs de contexte, la solut ion
que tu as proposée correspond quasiment parfaitement à ce que je rech erche,
et donc un grand merci à toi .

Une seule petite question d'adaptation : l'identifiant n'est pas dans la
première colonne mais dans la 7eme : peux tu m'indiquer quel élémen t modifier
dans la macro stp (je sais que mon ignorance est vraiment pathétique .. ...)

Merci d'avance !!



"JB" wrote:
Bonjour,

Sub transforme()
ncol = Sheets(1).[A1].CurrentRegion.Columns.Count
LigneSrc = 1
ligneDest = 1
Do While Sheets(1).Cells(LigneSrc, 1) <> ""
temp = Sheets(1).Cells(LigneSrc, 1)
Sheets(2).Cells(ligneDest, 1) = temp
Do While Sheets(1).Cells(LigneSrc, 1) = temp
For Col = 2 To ncol
If Sheets(1).Cells(LigneSrc, Col) <> "" Then _
Sheets(2).Cells(ligneDest, Col) = Sheets(1).Cells(LigneSrc,
Col)
Next Col
LigneSrc = LigneSrc + 1
Loop
ligneDest = ligneDest + 1
Loop
End Sub

http://cjoint.com/?frtzVlKI7x

Cordialement JB

On 17 mai, 14:17, Orsu wrote:
Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportan t à un
même identifiant qui apparaissent dans plusieurs lignes mais dans d es
colonnes différentes ; par hypothèse, et pour un même identifia nt, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre d e lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par identifiant
agrégeant l'ensemble des informations des lignes initiales (l'équ ivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ...) je
suis preneur.....

Merci d'avance pour vos lumières !- Masquer le texte des messages p récédents -



- Afficher le texte des messages précédents -




Avatar
Orsu
Merci beaucoup, c'est exactement ce que j'espérais !

C'est vraiment super de pouvoir trouver autant de réactivité et de conseils
avisés (et c'est un euphémisme !!!) dans des délais aussi brefs.

Je vais pour ma part tenter de procéder à quelques modifs pour permettre à
l'utilisateur de pouvoir choisir le n° de colonne dans lequel se trouve
l'identifiant de référence (en fonction de l'extraction réalisée dans la bd,
il n'est pas toujours dans la même colonne : c'aurait été trop simple....).

Merci encore au forum et plus particulièrement à JB

"JB" wrote:

J'ai supposé qu'il y avait 7 colonnes. S'il y a + de 7 colonnes,
rétablir la boucle en commentaire.

http://cjoint.com/?frvfpllKyz

JB

On 17 mai, 20:04, Orsu wrote:
Merci à Daniel pour sa réponse, qui fonctionne trés bien compte tenu de mes
maigres explications..., mais, pour d'autres motifs de contexte, la solution
que tu as proposée correspond quasiment parfaitement à ce que je recherche,
et donc un grand merci à toi .

Une seule petite question d'adaptation : l'identifiant n'est pas dans la
première colonne mais dans la 7eme : peux tu m'indiquer quel élément modifier
dans la macro stp (je sais que mon ignorance est vraiment pathétique ......)

Merci d'avance !!



"JB" wrote:
Bonjour,

Sub transforme()
ncol = Sheets(1).[A1].CurrentRegion.Columns.Count
LigneSrc = 1
ligneDest = 1
Do While Sheets(1).Cells(LigneSrc, 1) <> ""
temp = Sheets(1).Cells(LigneSrc, 1)
Sheets(2).Cells(ligneDest, 1) = temp
Do While Sheets(1).Cells(LigneSrc, 1) = temp
For Col = 2 To ncol
If Sheets(1).Cells(LigneSrc, Col) <> "" Then _
Sheets(2).Cells(ligneDest, Col) = Sheets(1).Cells(LigneSrc,
Col)
Next Col
LigneSrc = LigneSrc + 1
Loop
ligneDest = ligneDest + 1
Loop
End Sub

http://cjoint.com/?frtzVlKI7x

Cordialement JB

On 17 mai, 14:17, Orsu wrote:
Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rapportant à un
même identifiant qui apparaissent dans plusieurs lignes mais dans des
colonnes différentes ; par hypothèse, et pour un même identifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les autres.
Autre précision, un identifiant n'a pas toujours le même nombre de lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par identifiant
agrégeant l'ensemble des informations des lignes initiales (l'équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macros, ....) je
suis preneur.....

Merci d'avance pour vos lumières !- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -









Avatar
JB
Bonjour,

Sub Transforme()
Ncol = 20
ColRef = 7 'ColRef = Application.InputBox("ColRef (1,2,3,..)?",
Type:=1)
LigneSrc = 1
ligneDest = 1
Do While Sheets(1).Cells(LigneSrc, ColRef) <> ""
temp = Sheets(1).Cells(LigneSrc, ColRef)
Sheets(2).Cells(ligneDest, ColRef) = temp
Do While Sheets(1).Cells(LigneSrc, ColRef) = temp
For Col = 1 To Ncol
If Sheets(1).Cells(LigneSrc, Col) <> "" And Col <> ColRef Then
_
Sheets(2).Cells(ligneDest, Col) = Sheets(1).Cells(LigneSrc,
Col)
Next Col
LigneSrc = LigneSrc + 1
Loop
ligneDest = ligneDest + 1
Loop
End Sub

http://cjoint.com/?fseKSNZkdL

Cordialement JB
On 17 mai, 23:50, Orsu wrote:
Merci beaucoup, c'est exactement ce que j'espérais !

C'est vraiment super de pouvoir trouver autant de réactivité et de co nseils
avisés (et c'est un euphémisme !!!) dans des délais aussi brefs.

Je vais pour ma part tenter de procéder à quelques modifs pour permet tre à
l'utilisateur de pouvoir choisir le n° de colonne dans lequel se trouve
l'identifiant de référence (en fonction de l'extraction réalisée dans la bd,
il n'est pas toujours dans la même colonne : c'aurait été trop simp le....).

Merci encore au forum et plus particulièrement à JB



"JB" wrote:
J'ai supposé qu'il y avait 7 colonnes. S'il y a + de 7 colonnes,
rétablir la boucle en commentaire.

http://cjoint.com/?frvfpllKyz

JB

On 17 mai, 20:04, Orsu wrote:
Merci à Daniel pour sa réponse, qui fonctionne trés bien compte tenu de mes
maigres explications..., mais, pour d'autres motifs de contexte, la s olution
que tu as proposée correspond quasiment parfaitement à ce que je recherche,
et donc un grand merci à toi .

Une seule petite question d'adaptation : l'identifiant n'est pas dans la
première colonne mais dans la 7eme : peux tu m'indiquer quel él ément modifier
dans la macro stp (je sais que mon ignorance est vraiment pathétiqu e ......)

Merci d'avance !!

"JB" wrote:
Bonjour,

Sub transforme()
ncol = Sheets(1).[A1].CurrentRegion.Columns.Count
LigneSrc = 1
ligneDest = 1
Do While Sheets(1).Cells(LigneSrc, 1) <> ""
temp = Sheets(1).Cells(LigneSrc, 1)
Sheets(2).Cells(ligneDest, 1) = temp
Do While Sheets(1).Cells(LigneSrc, 1) = temp
For Col = 2 To ncol
If Sheets(1).Cells(LigneSrc, Col) <> "" Then _
Sheets(2).Cells(ligneDest, Col) = Sheets(1).Cells(Lign eSrc,
Col)
Next Col
LigneSrc = LigneSrc + 1
Loop
ligneDest = ligneDest + 1
Loop
End Sub

http://cjoint.com/?frtzVlKI7x

Cordialement JB

On 17 mai, 14:17, Orsu wrote:
Bonjour à tous, je bute sur le pbme suivant .
Aprés export d'une bd dans Excel j'ai des informations se rappo rtant à un
même identifiant qui apparaissent dans plusieurs lignes mais da ns des
colonnes différentes ; par hypothèse, et pour un même ident ifiant, si une
colonne est remplie dans une ligne, elle ne l'est pas dans les au tres.
Autre précision, un identifiant n'a pas toujours le même nomb re de lignes
(en gros de 1 à 6).
En résumé, je cherche au final à disposer d'une seule ligne par identifiant
agrégeant l'ensemble des informations des lignes initiales (l' équivalent
d'une concaténation).

Si un bienfaiteur peut m'indiquer quelques pistes (formules, macr os, ....) je
suis preneur.....

Merci d'avance pour vos lumières !- Masquer le texte des messag es précédents -



- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -



- Afficher le texte des messages précédents -