[access] traitement macro pour tableau croisé
Fermé
Leonardus
Messages postés
4
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
12 juillet 2006
-
1 juil. 2006 à 19:16
leonardus - 16 juil. 2006 à 15:59
leonardus - 16 juil. 2006 à 15:59
A voir également:
- [access] traitement macro pour tableau croisé
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
10 réponses
Leonardus
Messages postés
4
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
12 juillet 2006
3 juil. 2006 à 22:33
3 juil. 2006 à 22:33
Bonjour,
Je profite de ce rappel pour préciser qu'il y a peut-être une requête en SQL qui fournit simplement ce résultat, auquel cas ça me conviendrait évidemment. Thanks !
Je profite de ce rappel pour préciser qu'il y a peut-être une requête en SQL qui fournit simplement ce résultat, auquel cas ça me conviendrait évidemment. Thanks !
blux
Messages postés
26549
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
27 décembre 2024
3 319
4 juil. 2006 à 09:23
4 juil. 2006 à 09:23
Salut,
tes données sont sous quel format en ACCESS, car il ne manipule pas les tableaux croisés, mais plutôt des tables...
tes données sont sous quel format en ACCESS, car il ne manipule pas les tableaux croisés, mais plutôt des tables...
Salut,
Oui, c'est une requête croisée dynamique en fait. Et ça ne vient pas de Excel, c'est bien du Access.
Je voudrais aboutir à une matrice où les FamProd qui sont en colonne dans ma première étape décrite ci-dessus (dans la requête croisée dynamique de départ) se retrouvent dans une nouvelle table en colonne ET en ligne, avec le résultat d'occurence par même facture qui apparait en données.
Merci,
A+
Oui, c'est une requête croisée dynamique en fait. Et ça ne vient pas de Excel, c'est bien du Access.
Je voudrais aboutir à une matrice où les FamProd qui sont en colonne dans ma première étape décrite ci-dessus (dans la requête croisée dynamique de départ) se retrouvent dans une nouvelle table en colonne ET en ligne, avec le résultat d'occurence par même facture qui apparait en données.
Merci,
A+
blux
Messages postés
26549
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
27 décembre 2024
3 319
4 juil. 2006 à 16:20
4 juil. 2006 à 16:20
Tu as un nombre fini de FamProd ? Elles sortent toutes dans le même ordre ?
Ce que je conseille :
- tu crées un tableau en mémoire avec n lignes (autant que de FamProd)
- tu lis chaque ligne de ta requête analyse
- pour une ligne tu parcours toutes les colonnes et tu incrémentes un compteur indicé par le rang de la colonne sur laquelle tu es
Ex :
Lecture ligne 1, facture 1 :
On ne fait rien pour ligne 1 (pas de produit P1), mais il y en a d'autres
On fait +1 dans tableau(ligne2, col3) et tableau(ligne3, col2)
Lecture ligne1, facture 2 :
On fait +1 pour tableau(ligne1, col2) et tableau(ligne1, col3), mais aussi +1 pour tableau(ligne2, col1) et tableau(ligne2, col3), et aussi +1 pour tableau(ligne3, col1) et tableau(ligne3, col2)...
Ainsi de suite...
A la fin, il ne reste plus qu'à lire le tableau et on obtient le nombre de fois où les produits se sont retrouvés sur la même facture.
Ca te va, comme début ?
Ce que je conseille :
- tu crées un tableau en mémoire avec n lignes (autant que de FamProd)
- tu lis chaque ligne de ta requête analyse
- pour une ligne tu parcours toutes les colonnes et tu incrémentes un compteur indicé par le rang de la colonne sur laquelle tu es
Ex :
P1 P2 P3 P4 F1 0 8 1 0 F2 1 1 5 0 F3 7 0 0 0 F4 0 1 0 3
Lecture ligne 1, facture 1 :
On ne fait rien pour ligne 1 (pas de produit P1), mais il y en a d'autres
On fait +1 dans tableau(ligne2, col3) et tableau(ligne3, col2)
Lecture ligne1, facture 2 :
On fait +1 pour tableau(ligne1, col2) et tableau(ligne1, col3), mais aussi +1 pour tableau(ligne2, col1) et tableau(ligne2, col3), et aussi +1 pour tableau(ligne3, col1) et tableau(ligne3, col2)...
Ainsi de suite...
A la fin, il ne reste plus qu'à lire le tableau et on obtient le nombre de fois où les produits se sont retrouvés sur la même facture.
Ca te va, comme début ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui, j'ai un nombre fini de famprod, aux alentours de 240 (mais je vais les ramener sans doute à des plus génériques, et j'en aurai alors à peu près 15)
Ta proposition m'as l'air vraiment bien. Est-ce que ça ressemble à une boucle en VBA sur excel par exemple ?
Je suis incapable pour le moment au vu de mes connaissances d'écrire ce code, donc je te suis aveuglément.
Merci pour ta réponse.
A+
Ta proposition m'as l'air vraiment bien. Est-ce que ça ressemble à une boucle en VBA sur excel par exemple ?
Je suis incapable pour le moment au vu de mes connaissances d'écrire ce code, donc je te suis aveuglément.
Merci pour ta réponse.
A+
blux
Messages postés
26549
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
27 décembre 2024
3 319
5 juil. 2006 à 08:37
5 juil. 2006 à 08:37
C'est du VBA, donc ça ressemble à du VBA ! ;-)
Seuls les objects manipulés sont différents d'EXCEL : recordset (résultat de requête) et champs au lieu de feuilles, lignes et colonnes
Seuls les objects manipulés sont différents d'EXCEL : recordset (résultat de requête) et champs au lieu de feuilles, lignes et colonnes
Leonardus
Messages postés
4
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
12 juillet 2006
8 juil. 2006 à 10:56
8 juil. 2006 à 10:56
Il faut que je te dise, je suis nul en programmation. J'aurais même besoin de plus qu'un coup de main...
Merci d'avance,
A+
Merci d'avance,
A+
Leonardus
Messages postés
4
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
12 juillet 2006
12 juil. 2006 à 18:02
12 juil. 2006 à 18:02
UP
blux
Messages postés
26549
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
27 décembre 2024
3 319
13 juil. 2006 à 10:42
13 juil. 2006 à 10:42
Salut,
je te file un bout de code pour afficher les champs résultant d'une requête nommée R1 comprenant 15 champs :
Il ne te reste plus qu'à adapter avec les tests et les incrémentations dans la table résultat.
Je ne pourrai plus t'aider au-delà d'aujourd'hui, je suis en vacances ce soir et il y a peu de chances que je fasse un tour sur le forum...
je te file un bout de code pour afficher les champs résultant d'une requête nommée R1 comprenant 15 champs :
Private Sub Commande1_Click() Dim I As Byte Dim Rs Set Rs = CurrentDb.OpenRecordset("R1") Rs.MoveFirst While Not Rs.EOF For I = 0 To 14 MsgBox Rs.Fields(I) Next Rs.MoveNext Wend End Sub
Il ne te reste plus qu'à adapter avec les tests et les incrémentations dans la table résultat.
Je ne pourrai plus t'aider au-delà d'aujourd'hui, je suis en vacances ce soir et il y a peu de chances que je fasse un tour sur le forum...