Récapitulatif

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rouch
Le #7070381
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


LSteph
Le #7070741
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





Papyjac
Le #7072431
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" 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






lebaud
Le #7073161
Merci pour vos pistes, je vais tester

"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" 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









Publicité
Poster une réponse
Anonyme