[access] traitement macro pour tableau croisé
Leonardus
Messages postés
4
Statut
Membre
-
leonardus -
leonardus -
Bonjour,
Je suis à la recherche d'une façon de synthétiser un tableau croisé.
En ligne j'ai des numéros de facture (NumFact) et en colonne des familles de produits (FamProd)
à l'intersection, le nombre de Qtées facturée sur une facture donnée.
J'ai déjà eu sur ce forum il y a qques temps une réponse pour aboutir avec une solution excel, maintenant j'aimerais vraiment savoir si c'est possible d'automatiser ça via une macro avec access.
Mon but est de pouvoir répondre à la question suivante : pour chaque famille de produit, combien de fois chacune des autres familles de produits se trouve être factuée en même temps - c'est à dire sur la même facture - (nota, je ne m'intéresse pas vraiment aux Qtées, mais aux occurences)
Je n'ai aucune idée de la façon de programmer sur access, je remercu la bonne âme qui aurait l'idée ou la connaissance recquise.
Merci !
Je suis à la recherche d'une façon de synthétiser un tableau croisé.
En ligne j'ai des numéros de facture (NumFact) et en colonne des familles de produits (FamProd)
à l'intersection, le nombre de Qtées facturée sur une facture donnée.
J'ai déjà eu sur ce forum il y a qques temps une réponse pour aboutir avec une solution excel, maintenant j'aimerais vraiment savoir si c'est possible d'automatiser ça via une macro avec access.
Mon but est de pouvoir répondre à la question suivante : pour chaque famille de produit, combien de fois chacune des autres familles de produits se trouve être factuée en même temps - c'est à dire sur la même facture - (nota, je ne m'intéresse pas vraiment aux Qtées, mais aux occurences)
Je n'ai aucune idée de la façon de programmer sur access, je remercu la bonne âme qui aurait l'idée ou la connaissance recquise.
Merci !
A voir également:
- [access] traitement macro pour tableau croisé
- Tableau word - Guide
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Tableau ascii - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
10 réponses
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 !
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+
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+
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
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+
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...