Bonjour, je desespere.... !
Je cherche a faire le graph suivant sous exel.
en ordonnee : des noms d'auteurs par ordre alphabetique
en abcise : de 1910 a 2003
les points : les titre des livres ces auteurs ranges par ordre chronologique sur
la ligne de l'auteur
je ne sais pas si c'est tres clair.
En fait, c'est tout simplement une historiographie en graph!!
merci d'avance a tous ceux qui pourront m'aider.
--
Ce message a ete poste via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Je n'ai pas de réponse concernant un vrai graphe car ça ne me paraît pas possible (mais bon...) Par contre si on se satisfait de cette partie de la question : "...: les titre des livres ces auteurs ranges par ordre chronologique sur la ligne de l'auteur..." On pourrait faire un tableau ! Exemple (à adapter) qui pourrait faire :
Organisation des données et contraintes : - A2:Ax : le nom des auteurs - plage nommée "Auteurs" - B2:Bx : les titres des ouvrages - plage nommée "Titres" - C2:Cx : les années de parution (19910-1911...) - plage nommée "Années" - En B1:C1 des étiquettes de colonnes correspondant (c'est mieux) aux noms des champs - Les colonnes adjacentes (D:IV) sont vides
Sub Extract_Spé() Application.ScreenUpdating = False 'efface précédent If [E1] <> "" Then [E1].CurrentRegion.Clear 'extraction des auteurs sans doublons [A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[E1], Unique:=True 'extraction des Années sans doublons [C:C].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[F2], Unique:=True 'copie/collage transpo des années x = [F65536].End(3).Address Range("F2", x).Copy [E1].PasteSpecial Paste:=xlValues, Transpose:=True Range("F2", x).Clear 'der ligne et der col tableau derCol = [E1].End(2).Column derLg = [E1].End(4).Row Application.Calculation = xlManual 'écriture formule matricielle et recopie (puis valeurs) dans tableau Set plg = Range("F2", Cells(derLg, derCol)) '=== début de la ligne d'instruction === [F2].FormulaArray "=if(isnumber(match($E2&F$1,Auteurs&Années,0)),index(Titres,match($E2&F$1,Auteur s&Années,0)),"""")" '=== fin de la ligne d'instruction === [F2].AutoFill Destination:=Range("F2", Cells(2, derCol)) Range("F2", Cells(2, derCol)).AutoFill Destination:=plg Application.Calculation = xlAutomatic plg.Value = plg.Value 'bricoles Range(Columns(5), Columns(derCol)).EntireColumn.AutoFit [E1].Select End Sub
NDLR : * Si un auteur a écrit plusieurs ouvrages la même année, il y aura problème ! Auquel cas, on pourrait avoir un champ "Dates" au lieu de "Années" * A voir si le résultat ne doit pas être présenté différemment (Années en lignes et Auteurs en colonnes)
AV qui s'est quand même forcé sur ce coup : le code est commenté ;-)
Je n'ai pas de réponse concernant un vrai graphe car ça ne me paraît pas
possible (mais bon...)
Par contre si on se satisfait de cette partie de la question :
"...: les titre des livres ces auteurs ranges par ordre chronologique sur la
ligne de l'auteur..."
On pourrait faire un tableau !
Exemple (à adapter) qui pourrait faire :
Organisation des données et contraintes :
- A2:Ax : le nom des auteurs - plage nommée "Auteurs"
- B2:Bx : les titres des ouvrages - plage nommée "Titres"
- C2:Cx : les années de parution (19910-1911...) - plage nommée "Années"
- En B1:C1 des étiquettes de colonnes correspondant (c'est mieux) aux noms des
champs
- Les colonnes adjacentes (D:IV) sont vides
Sub Extract_Spé()
Application.ScreenUpdating = False
'efface précédent
If [E1] <> "" Then [E1].CurrentRegion.Clear
'extraction des auteurs sans doublons
[A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[E1], Unique:=True
'extraction des Années sans doublons
[C:C].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[F2], Unique:=True
'copie/collage transpo des années
x = [F65536].End(3).Address
Range("F2", x).Copy
[E1].PasteSpecial Paste:=xlValues, Transpose:=True
Range("F2", x).Clear
'der ligne et der col tableau
derCol = [E1].End(2).Column
derLg = [E1].End(4).Row
Application.Calculation = xlManual
'écriture formule matricielle et recopie (puis valeurs) dans tableau
Set plg = Range("F2", Cells(derLg, derCol))
'=== début de la ligne d'instruction === [F2].FormulaArray "=if(isnumber(match($E2&F$1,Auteurs&Années,0)),index(Titres,match($E2&F$1,Auteur
s&Années,0)),"""")"
'=== fin de la ligne d'instruction === [F2].AutoFill Destination:=Range("F2", Cells(2, derCol))
Range("F2", Cells(2, derCol)).AutoFill Destination:=plg
Application.Calculation = xlAutomatic
plg.Value = plg.Value
'bricoles
Range(Columns(5), Columns(derCol)).EntireColumn.AutoFit
[E1].Select
End Sub
NDLR :
* Si un auteur a écrit plusieurs ouvrages la même année, il y aura problème !
Auquel cas, on pourrait avoir un champ "Dates" au lieu de "Années"
* A voir si le résultat ne doit pas être présenté différemment (Années en lignes
et Auteurs en colonnes)
AV qui s'est quand même forcé sur ce coup : le code est commenté ;-)
Je n'ai pas de réponse concernant un vrai graphe car ça ne me paraît pas possible (mais bon...) Par contre si on se satisfait de cette partie de la question : "...: les titre des livres ces auteurs ranges par ordre chronologique sur la ligne de l'auteur..." On pourrait faire un tableau ! Exemple (à adapter) qui pourrait faire :
Organisation des données et contraintes : - A2:Ax : le nom des auteurs - plage nommée "Auteurs" - B2:Bx : les titres des ouvrages - plage nommée "Titres" - C2:Cx : les années de parution (19910-1911...) - plage nommée "Années" - En B1:C1 des étiquettes de colonnes correspondant (c'est mieux) aux noms des champs - Les colonnes adjacentes (D:IV) sont vides
Sub Extract_Spé() Application.ScreenUpdating = False 'efface précédent If [E1] <> "" Then [E1].CurrentRegion.Clear 'extraction des auteurs sans doublons [A:A].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[E1], Unique:=True 'extraction des Années sans doublons [C:C].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[F2], Unique:=True 'copie/collage transpo des années x = [F65536].End(3).Address Range("F2", x).Copy [E1].PasteSpecial Paste:=xlValues, Transpose:=True Range("F2", x).Clear 'der ligne et der col tableau derCol = [E1].End(2).Column derLg = [E1].End(4).Row Application.Calculation = xlManual 'écriture formule matricielle et recopie (puis valeurs) dans tableau Set plg = Range("F2", Cells(derLg, derCol)) '=== début de la ligne d'instruction === [F2].FormulaArray "=if(isnumber(match($E2&F$1,Auteurs&Années,0)),index(Titres,match($E2&F$1,Auteur s&Années,0)),"""")" '=== fin de la ligne d'instruction === [F2].AutoFill Destination:=Range("F2", Cells(2, derCol)) Range("F2", Cells(2, derCol)).AutoFill Destination:=plg Application.Calculation = xlAutomatic plg.Value = plg.Value 'bricoles Range(Columns(5), Columns(derCol)).EntireColumn.AutoFit [E1].Select End Sub
NDLR : * Si un auteur a écrit plusieurs ouvrages la même année, il y aura problème ! Auquel cas, on pourrait avoir un champ "Dates" au lieu de "Années" * A voir si le résultat ne doit pas être présenté différemment (Années en lignes et Auteurs en colonnes)
AV qui s'est quand même forcé sur ce coup : le code est commenté ;-)