Difficultés pour la création de tableaux dynamiques
Bonjour à tous,
Je suis en train de travailler sur une base de données pour une bibliothèque. Jusque-là rien de bien compliqué.
J'ai un onglet qui contient les données et 3 autres onglets qui contiennent les informations qui vont me permettre de créer des tableaux dynamiques croisés.
J'arrive facilement à créer un tableau dynamique croisé et à effectuer un tri en fonction des initiales de pays mais je suis embêté lorsqu'il s'agit de créer un tableau dynamique croisé en fonction des onglets (catégorie de droit, droit international public). Soit excel m'indique qu'il y a trop de données, soit il crée un tableau avec des données totalement fausses (les chiffres ne correspondent pas à la bonne catégorie de droit).
Je suppose que mes tableaux d'informations doivent être saisis différemment mais je sèche sur ce coup.
Mon objectif est de créer un tableau dynamique où Excel retrouve non seulement la cote de livre, mais également son titre et la catégorie de droit auquelle il est associé.
Est-ce possible de procéder ainsi ? Je joins un exemple de fichier dans mon post et j'espère que les dieux de la planète excel pourront me porter chance.
Je vous remercie si vous trouvez le temps de vous pencher sur mon problème.
Meilleures Salutations!
Cobbycom
Bonjour,
Il faudrait que tu précises par des exemples ce que tu souhaites, car tu n'es pas très clair
Cdlt
Bonjour Jean-Eric,
Effectivement, j'aurais pu simplifier
Je te renvois un autre tableau avec un peu plus de données.
Tu as les mêmes onglets qu'auparavant et j'ai rajouté un onglet "tableau dynamique" (tableau que j'ai créé directement grâce aux outils excel).
Dans cet onglet, tu vois la 1ère ligne : CB/CDN 1.3 a BEAU 2000
CB/CDN = pays
1.3 = Catégorie de droit /
BEAU = Auteur
Mon objectif est qu'excel sache que le chiffre existant dans chaque étiquette correspond à une catégorie.
J'ai mis 3 exemple dans l'onglet "objectif visé". En espérant que je sois plus clair cette fois
Merci
Cobbycom
Bonjour Jean-Eric,
Effectivement, j'aurais pu simplifier
Je te renvois un autre tableau avec un peu plus de données.
Tu as les mêmes onglets qu'auparavant et j'ai rajouté un onglet "tableau dynamique" (tableau que j'ai créé directement grâce aux outils excel).
Dans cet onglet, tu vois la 1ère ligne : CB/CDN 1.3 a BEAU 2000
CB/CDN = pays
1.3 = Catégorie de droit /
BEAU = Auteur
Mon objectif est qu'excel sache que le chiffre existant dans chaque étiquette correspond à une catégorie.
J'ai mis 3 exemple dans l'onglet "objectif visé". En espérant que je sois plus clair cette fois
Merci
Cobbycom
Excuse moi Jean-Eric.
Problème d'envoi du fichier.
Dès que je rentre du boulot, je te le renvois sur la même page.
Merci pour ta compréhension.
Cobbycom
Voilà le tableau d'exemple.
Re,
Un début de réponse
Cdlt
J'ai supprimé des données pour avoir un fichier compressé <300ko.
Bonjour Jean-Eric,
Je te remercie pour le magnifique travail accompli. J'ai déjà pu avancer mon tableau de manière exceptionnelle.
Le "problème" que je rencontre maintenant (après j'arrête de t'embêter c'est promis) c'est au sujet de la colonne "Q" (cat.) dans l'onglet "données" de notre tableau.
Comment as-tu fait pour que Excel reconnaisse le bon chiffre à inscrire dans cette colonne ?
Pour le reste, rien à dire c'est tout simplement excellent.
Bonne journée
Cobbycom
Le problème est que j'ai un peu plus de 100'000 lignes à classer dans mon tableau.
Si je dois taper les chiffres à la main, c'est facile pour les 1'000 premiers, mais si je dois répéter la procédure pour les 90'000 autres, je n'ai plus qu'à planter la tente, préparer un barbecue et surtout repousser la date à laquelle je devrai remettre le tableau à mon supérieur.
Désolé de t'embêter.
Merci
Bonjour,
Avec VBA
J'avais omis de te le préciser, désolé
A te relire.
Cdlt
Option Explicit
Public Sub Décomposer()
Dim ws As Worksheet
Dim lrow As Long, i As Long
Dim tmp
Application.ScreenUpdating = False
Set ws = Worksheets("Données")
With ws
lrow = .Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lrow
tmp = Split(.Cells(i, 3), " ")
.Cells(i, 16) = tmp(0)
.Cells(i, 17) = "'" & tmp(1)
Next
End With
End Sub
Bonjour Jean-Eric,
Malheureusement, je croyais que je connaissais Excel. Ben tu m'as donné un cours en accéléré et je vois que mes connaissances sont très basiques
Pour être précis, j'ai bien essayé de reproduire les formules que tu as glissé dans l'onglet "données" (celles qui permettent d'obtenir la catégorie de droit et le résultat). A chaque fois, je rencontre un problème.
Pour faire bien, j'ai également essayé d'introduire les mêmes "VBA" dans tous les onglets données (CA, CB, CC, CD, CE, CF) mais ça ne fonctionne pas. Dès que je reproduis la fonction que tu as mis à ma disposition (=RECHERCHEV(Q2;'Catégorie de droit (A)'!C:D;2;FAUX)), le formulaire se plante et me sort des données qui n'ont rien à voir avec ce qui est marqué.
Je me permets de te transmettre un dernier formulaire "exemple" qui va me servir pour ma base de données finales. Peux-tu m'aider à programmer les onglets CA, CB, CC, CD, CE et CF ? J'ai conservé les données que tu m'as transmises dans l'onglet CB mais pour tous les autres il ne s'agit que d'une copie de fonction que j'ai "emprunté" à l'onglet "CB".
Si tu n'as pas le temps pas de problèmes. Je te remercie encore pour ton aide.
Bon après-midi.
Cobbycom
Bonjour,
Tu avais supprimé la macro
Pour le moment, je te renvoie ton fichier, tel que avec la macro modifiée:
Option Explicit
Public Sub Décomposer()
' Lancement procédure : Ctrl+w
Dim ws As Worksheet
Dim lrow As Long, i As Long
Dim tmp
10 Application.ScreenUpdating = False
20 Set ws = ActiveSheet
30 With ws
40 lrow = .Range("A" & Rows.Count).End(xlUp).Row
50 For i = 2 To lrow
60 tmp = Split(.Cells(i, 3), " ")
70 .Cells(i, 16) = tmp(0)
80 .Cells(i, 17) = "'" & tmp(1)
90 Next
100 End With
End Sub
Pour chaque feuille créée CA, CB, etc..., en appuyant sur Ctrl+w, tu lanceras la macro pour décomposer 'tes cotes'.
Plus tard, si tu as besoin, on pourra automatiser si ton nombre d'onglets est variable...
A te relire.
Cdlt