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

Récapitulatif

4 réponses
Avatar
lebaud
bonjour,
j'expose mon problème

soit une base comprenant
client date d'achat

dupont 01012008
durand 01012008
dupont 01072008
durand 01072008
dupont 01102008
durand 01112008

je dois faire une recap se présentant ainsi

client date d'achat1 date d'achat 2 date d'achat n
dupont 01012008 01072008 01102008
durand 01012008 01072008 01112008

quel serait le meilleur moyen d'obtenir ce type de resultat ?
Merci d'avance

4 réponses

Avatar
Rouch
Bonjour,

2 questions:
Tes donnees sont'elles en 1 colonne ou en 2 (c'est à dire as tu le nom
dans la preimère colonne et la date dans la deuxième ou tout est'il
dans la première?)
Quelle version d'XL utilises tu?


@+

bonjour,
j'expose mon problème

soit une base comprenant
client date d'achat

dupont 01012008
durand 01012008
dupont 01072008
durand 01072008
dupont 01102008
durand 01112008

je dois faire une recap se présentant ainsi

client date d'achat1 date d'achat 2 date d'achat n
dupont 01012008 01072008 01102008
durand 01012008 01072008 01112008

quel serait le meilleur moyen d'obtenir ce type de resultat ?
Merci d'avance


Avatar
LSteph
Bonjour,

la meilleure je ne sais pas, voici une façon, exemple:

http://cjoint.com/?gwmXJ8ZJm3

voici le code du bouton inséré dans la feuille et nommé CmbExtraction
via la fenêtre des propriétés

Private Sub CmbExtraction_Click()
Dim i As Long, c As Range
Application.ScreenUpdating = False
[e1:iv10000].Delete
Range("A1:" & [a65536].End(xlUp).Address).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Range("E1"), Unique:=True

For i = 2 To [e65536].End(xlUp).Row
For Each c In Range("b1:" & [b65536].End(xlUp).Address)
If c.Offset(0, -1) = Cells(i, 5) Then _
Cells(i, 256).End(xlToLeft).Offset(0, 1) = c
Next c
Next i
Range("F2:IV10000").NumberFormat = "m/d/yyyy"

End Sub

'lSteph


lebaud a écrit :
bonjour,
j'expose mon problème

soit une base comprenant
client date d'achat

dupont 01012008
durand 01012008
dupont 01072008
durand 01072008
dupont 01102008
durand 01112008

je dois faire une recap se présentant ainsi

client date d'achat1 date d'achat 2 date d'achat n
dupont 01012008 01072008 01102008
durand 01012008 01072008 01112008

quel serait le meilleur moyen d'obtenir ce type de resultat ?
Merci d'avance





Avatar
Papyjac
Bonjour lebaud

Moi je ne me casse plus tête, je stocke tout en mémoire, et je vide à la fin
:

Dim T1_nom(1000) 'Nom des personnes
Dim T1_nbD(1000) 'Nombre d'achats
Dim T1_Date(1000,100) 'Dates d'achat
DimT1_nb ' Nombre de personnes

'Pour toutes les lignes => Charger en mémoire
For L = 2 to 10000
if isempty(cells(L, 1)) then exit for 'Fin de la liste
For I = 1 to T1_nb 'Rechercher le nom
if cells(L, 1)) = T1_nom(I) then goto S1
Next
T1_nb=T1_nb+1 'Nouveau nom
I=T1_nb
T1_nom(I)= cells(L,1)
S1: T1_nbD(I)=T1_nbD(I)+1 'Nouvelle date
T1_Date(I,T1_nbD(I))= cells(L,2)
next

'Vider la mémoire
L=Lignedébut
For I = 1 to T1_nb
Cells(L,1) = T1_Nom(I)
C=1
For J = 1 to T1_nbD(I)
C=C+1
Cells(L,C) = T1_Date(I,J)
Next
Next

On peut si on veut dédoublonner les dates d'achats

"lebaud" <lbaudin%@%fnac.net> a écrit dans le message de
news:

bonjour,
j'expose mon problème

soit une base comprenant
client date d'achat

dupont 01012008
durand 01012008
dupont 01072008
durand 01072008
dupont 01102008
durand 01112008

je dois faire une recap se présentant ainsi

client date d'achat1 date d'achat 2 date d'achat n
dupont 01012008 01072008 01102008
durand 01012008 01072008 01112008

quel serait le meilleur moyen d'obtenir ce type de resultat ?
Merci d'avance






Avatar
lebaud
Merci pour vos pistes, je vais tester

"Papyjac" <papyjac(supprimerceci)@free.fr> a écrit dans le message de news:

Bonjour lebaud

Moi je ne me casse plus tête, je stocke tout en mémoire, et je vide à la
fin :

Dim T1_nom(1000) 'Nom des personnes
Dim T1_nbD(1000) 'Nombre d'achats
Dim T1_Date(1000,100) 'Dates d'achat
DimT1_nb ' Nombre de personnes

'Pour toutes les lignes => Charger en mémoire
For L = 2 to 10000
if isempty(cells(L, 1)) then exit for 'Fin de la liste
For I = 1 to T1_nb 'Rechercher le nom
if cells(L, 1)) = T1_nom(I) then goto S1
Next
T1_nb=T1_nb+1 'Nouveau nom
I=T1_nb
T1_nom(I)= cells(L,1)
S1: T1_nbD(I)=T1_nbD(I)+1 'Nouvelle date
T1_Date(I,T1_nbD(I))= cells(L,2)
next

'Vider la mémoire
L=Lignedébut
For I = 1 to T1_nb
Cells(L,1) = T1_Nom(I)
C=1
For J = 1 to T1_nbD(I)
C=C+1
Cells(L,C) = T1_Date(I,J)
Next
Next

On peut si on veut dédoublonner les dates d'achats

"lebaud" <lbaudin%@%fnac.net> a écrit dans le message de
news:

bonjour,
j'expose mon problème

soit une base comprenant
client date d'achat

dupont 01012008
durand 01012008
dupont 01072008
durand 01072008
dupont 01102008
durand 01112008

je dois faire une recap se présentant ainsi

client date d'achat1 date d'achat 2 date d'achat n
dupont 01012008 01072008 01102008
durand 01012008 01072008 01112008

quel serait le meilleur moyen d'obtenir ce type de resultat ?
Merci d'avance