Extraction à l'intérieur d'une BD
chaï
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
voici ma question:
Dans la BD ci-dessous, je désire extraire les lignes associées aux clients ayant fait 2 achats (donc ne pas tenir compte de ceux en ayant fait 1 seul achat seulement). Par la suite, je voudrais créer une colonne intitulée même magasin avec réponse oui/non, afin de savoir si le même client a réalisé ses 2 achats dans le même # de magasin ou pas... Je ne peux pas faire le tout manuellement car j'ai plus de 4400 clients...
Merci
voici ma question:
Dans la BD ci-dessous, je désire extraire les lignes associées aux clients ayant fait 2 achats (donc ne pas tenir compte de ceux en ayant fait 1 seul achat seulement). Par la suite, je voudrais créer une colonne intitulée même magasin avec réponse oui/non, afin de savoir si le même client a réalisé ses 2 achats dans le même # de magasin ou pas... Je ne peux pas faire le tout manuellement car j'ai plus de 4400 clients...
Merci
| magasin | achat | Client | ID |
|---|---|---|---|
| 8 | 01 | 2756 | 1 |
| 8 | 02 | 2756 | 1 |
| 10 | 01 | 2758 | 2 |
| 4 | 01 | 2759 | 3 |
| 7 | 02 | 2759 | 3 |
| 5 | 01 | 2760 | 4 |
| 5 | 01 | 2761 | 5 |
| 6 | 02 | 2761 | 5 |
| 6 | 01 | 2762 | 6 |
| 4 | 01 | 2763 | 7 |
| 4 | 01 | 2764 | 8 |
| 4 | 01 | 2765 | 9 |
| 4 | 02 | 2765 | 9 |
| 3 | 01 | 2766 | 10 |
| 6 | 02 | 2766 | 10 |
| 8 | 01 | 2767 | 11 |
| 8 | 01 | 2768 | 12 |
A voir également:
- Extraction à l'intérieur d'une BD
- Télécharger simulateur de peinture intérieur gratuit - Télécharger - Divers Photo & Graphisme
- Peut on mettre une parabole à l'intérieur - Forum TV & Vidéo
- Logiciel aménagement intérieur gratuit - Guide
- Ecran telephone cassé de l'interieur - Forum Wiko
- Ecran cassé de l’intérieur Samsung S7 ✓ - Forum Samsung
6 réponses
Bonjour ,
1- j'ai testé une modification de ton message. C'était juste pour vérifier.
Ton tableau correspond toujours?
2- Tu dis :
Soit on en tiens compte soit pas... Faut savoir.
1- j'ai testé une modification de ton message. C'était juste pour vérifier.
Ton tableau correspond toujours?
2- Tu dis :
je désire extraire les lignes associées aux clients ayant fait 2 achats (donc ne pas tenir compte de ceux en ayant fait 2)
Soit on en tiens compte soit pas... Faut savoir.
Bonjour à tous les deux
C'est clair
Une autre question. To tableau est il trié selon la colonne client comme dans ton exemple?
Cdlmnt
C'est clair
Une autre question. To tableau est il trié selon la colonne client comme dans ton exemple?
Cdlmnt
Un exemple à adapter via une macro
https://www.cjoint.com/?3CrqJnHwdxG
mes excuses (et salutations) à pijaku pour l'incruste
Cdlmnt
https://www.cjoint.com/?3CrqJnHwdxG
mes excuses (et salutations) à pijaku pour l'incruste
Cdlmnt
Bonjour merci beaucoup pour l'aide.
Cependant, j'éprouve quelques petits problèmes. Je n'arrive pas à rouler la macro. J'ai changé les constantes. Cependant si le nom de mes colonnes diffères, dois-je les changer également à droite? Ex: Const cosceauFS = 25 ' colonne achat (ici achat doit devenir sceau?)
' constantes à modifier selon ta configuration
Const FS = "BD" ' nom feuille soource
Const lidebFS = 2 ' premier ligne données
Const codebFS = 1 ' premiere colonne données
Const nbco = 37 ' nombre de colonnes tableau
Const copermisFS = 26 ' colonne client
Const cosceauFS = 25 ' colonne achat
Const FB = "Doubles abbatages seulement" ' feuille but
Const lidebFB = 2 ' premiere ligne
Const codebFB = 1 ' première colonne
Cependant, j'éprouve quelques petits problèmes. Je n'arrive pas à rouler la macro. J'ai changé les constantes. Cependant si le nom de mes colonnes diffères, dois-je les changer également à droite? Ex: Const cosceauFS = 25 ' colonne achat (ici achat doit devenir sceau?)
' constantes à modifier selon ta configuration
Const FS = "BD" ' nom feuille soource
Const lidebFS = 2 ' premier ligne données
Const codebFS = 1 ' premiere colonne données
Const nbco = 37 ' nombre de colonnes tableau
Const copermisFS = 26 ' colonne client
Const cosceauFS = 25 ' colonne achat
Const FB = "Doubles abbatages seulement" ' feuille but
Const lidebFB = 2 ' premiere ligne
Const codebFB = 1 ' première colonne
1. Je n'arrive pas à rouler la macro.
que veux tu dire par là ?
2. Cependant si le nom de mes colonnes diffères, dois-je les changer également à droite? Ex:
Const cosceauFS = 25 ' colonne achat
(ici achat doit devenir sceau?)
Non seul le n° intervient, tout ce qu'il y a après l'apostrophe est un commentaire pour éclairer le programmeur et n'est pas "vu" par vba
Par contre, dans la procedure les noms des constantes doivent aussi changer
Donc Edition puis
Remplacer coachetFS par cosceauFS et remplacer tout
que veux tu dire par là ?
2. Cependant si le nom de mes colonnes diffères, dois-je les changer également à droite? Ex:
Const cosceauFS = 25 ' colonne achat
(ici achat doit devenir sceau?)
Non seul le n° intervient, tout ce qu'il y a après l'apostrophe est un commentaire pour éclairer le programmeur et n'est pas "vu" par vba
Par contre, dans la procedure les noms des constantes doivent aussi changer
Donc Edition puis
Remplacer coachetFS par cosceauFS et remplacer tout
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai toujours le même message d'erreur: erreur d'exécution '9'. L'indice n'appartient pas à la sélection....
Quand tu obtiens ce message d'erreur, tu vérifies l'état des variables (en passant le curseur dessus)
Vérifies que les noms des feuilles sont corrects (attention aux espaces)
Envoies un extrait (50 lignes) de ton vrai ficier au format excel 2003 sur cjoint.com et joins le lien à ton prochain message
Quand tu obtiens ce message d'erreur, tu vérifies l'état des variables (en passant le curseur dessus)
Vérifies que les noms des feuilles sont corrects (attention aux espaces)
Envoies un extrait (50 lignes) de ton vrai ficier au format excel 2003 sur cjoint.com et joins le lien à ton prochain message
Je vérifie mais rien.... Peut-être verra tu une erreur:
Désolé...
Désolé...
' constantes à modifier selon ta configuration
Const FS = "BD" ' nom feuille soource
Const lidebFS = 2 ' premier ligne données
Const codebFS = 1 ' premiere colonne données
Const nbco = 37 ' nombre de colonnes tableau
Const copermisFS = 26 ' colonne client
Const cosceauFS = 25 ' colonne achat
Const FB = "Feuil4" ' feuille but
Const lidebFB = 2 ' premiere ligne
Const codebFB = 6 ' première colonne
Public Sub Transfert()
Dim lifinFS As Long, TFS, nbliFS As Long, plageFS As Range, co As Long, liFS As Long
Dim client As String, achat As Long, nbachat As Long
Dim TFB, nbliFB As Long, liFB As Long
Dim t As Single
t = Timer
lifinFS = Sheets(FS).Cells(Rows.Count, codebFS).End(xlUp).Row
Set plageFS = Sheets(FS).Range(Cells(lidebFS, codebFS), Cells(lifinFS, codebFS + nbco - 1))
TFS = plageFS
nbliFS = plageFS.Rows.Count
nbliFB = Application.WorksheetFunction.SumIf(Columns(cosceauFS), ">=2")
ReDim TFB(1 To nbliFB, 1 To nbco)
liFS = 1
liFB = 1
On Error GoTo fin
Do
achat = TFS(liFS, cosceauFS)
While achat = 1
liFS = liFS + 1
achat = TFS(liFS, cosceauFS)
Wend
client = TFS(liFS, copermisFS)
nbachat = 1
For co = 1 To nbco
TFB(liFB, co) = TFS(liFS - 1, co)
Next co
liFB = liFB + 1
While TFS(liFS, copermisFS) = client
For co = 1 To nbco
TFB(liFB, co) = TFS(liFS, co)
Next co
liFS = liFS + 1
liFB = liFB + 1
Wend
Loop Until liFS >= nbliFS
fin:
Sheets(FB).Cells(lidebFB, codebFB).Resize(nbliFB, nbco) = TFB
MsgBox " temps mis " & Timer - t & " sec"
End Sub
1- je désire extraire les lignes associées aux clients...
Toutes les valeurs de la ligne? Le numéro de ligne? Une seule valeur le n° du client?
Autre feuille? => son nom?
Ailleurs dans la même feuille? => ou?
2- Comment le client 2756 a pu faire 1 achat puis 2 achats dans le magasin 8?
Soit il n'en a fait qu'un, soit 2, soit 3... Non?
2) En fait, dans la colonne achat on y retrouve 1 et 2 comme valeur. Le client peut avoir fait un seul achat, ex: 2758. Donc, pour ce numéro de client, on retrouve seulement une ligne associé à son numéro (avec 1 dans la colonne achat). Cependant, pour un autre client ex: 2756, on retrouve 2 lignes associées à ce numéro de client. Ainsi, il a donc fait un premier achat au magasin 8 et un second achat au magasin 8.
Ainsi, dans l'extraction le client 2758 n'apparaîtrait pas car il a fait un seul achat tandis que pour le client 2756 dans l'extraction on retrouverait les deux lignes associées à chacun de ses achats puisqu'il en a fait 2.