Tri par couleur de cellule (Gouvernements 1965-2015)

Bonsoir chers Excelents (pas trouvé mieux)

Dans le cadre de recherches, j'ai produit un tableau de données sur Excel. Chaque colonne représente une entité, chaque ligne une année et chaque case une donnée exprimée en couleur de fond de cellule. Actuellement j'en suis déjà à 90 colonnes, 50 lignes et 20 couleurs différentes (et j'estime être à 30-40% de ma saisie...).

Je souhaite présenter ce travail sous différentes formes. Jusqu'à présent je saisis entité par entité, colonne par colonne et je n'ai donc pas vraiment de vision année par année. J'aimerais notamment regrouper sur chaque ligne les cellules d'une même couleur. Exemple, sur la ligne 3, où les couleurs s'enchaînent dans un ordre tout à fait aléatoire, j'aimerais avoir toutes les cellules bleues (mettons que j'en ai dix, de B à K) puis toutes les rouges (de K à M) puis toutes les oranges etc. Ca me permettrait de voir sur chaque ligne, la couleur majoritaire ; et plus globalement l'évolution, entre la ligne 3 et la ligne 13 par exemple, de la quantité de chaque couleur.

Dans un second temps, j'aimerais produire des graphiques (camembert pour chaque année, aires empilées...) mais ça, c'est dans un second temps .

Vous vous en doutez, je ne suis pas familier d'Excel ni de programmation et ça me prend d'ailleurs un temps fou de vous décrire précisément ce que je veux. J'espère être tout de même suffisamment clair.

A bientôt,

JokerJet

EDIT : j'ai modifié le nom du topic pour que l'objet soit plus clair. Comme dit ci-dessous, je préférais ne pas partager le document inachevé mais on gagne en efficacité si vous comprenez le but recherché. A bientôt

Bonjour et bienvenu,

Merci de joindre un fichier à ta demande afin que le forum puisse t'apporter une aide adaptée.

Cdlt.

Salut Jean-Eric,

Effectivement c'est ce que j'ai vu dans les autres messages... Comme c'est un document de travail que je ne souhaite pas (encore) partager, j'en ai fait une version vierge de toutes annotations et légendes. Le résultat est abstrait et bordélique, enjoy

Je souhaite donc que sur chaque ligne, les cases de même couleur soient regroupées... J'ai fait pas mal de recherches et expériences (en inversant abscisse et ordonnée, en triant et filtrant de diverses manières, j'ai même trouvé un topic ici sur le tri par couleurs avec des bonnes pistes... mais quand j'applique sur mon tableau, le résultat est toujours foireux). Je suis complètement largué mais j'aperçois toutes les possibilités offertes par Excel et le VBA, il y a de quoi faire !

Merci pour ta disponibilité et à bientôt

JokerJet

15tableau.xlsx (107.52 Ko)

A la réflexion, on gagnerait en efficacité si vous aviez le document complet. Le voici donc.

Il s'agit d'un tableau représentant les différents gouvernements au pouvoir depuis 1965. Ce sera un des documents présents sur un site type data-journalisme que j'ai en projet depuis un moment. La version actuelle est très incomplète et contient sans doute des erreurs, n'y prêtez pas trop attention (mais si vous avez des remarques ou suggestions, je serais ravi de les avoir par MP ).

Regrouper les couleurs sur chaque ligne permettrait ainsi de savoir pour chaque année quelles sont les forces majoritaires ; et d'identifier facilement des tendances en terme d'évolution des forces.

A terme, l'idée est de produire à partir de ce tableau, plusieurs graphiques, voire des cartes. Mais ce sera l'objet d'autres topics plus précis au moment venu.

Merci d'avance pour votre aide qui me sera précieuse

JokerJet

Re-Bonsoir à tous,

En l'absence de réponse ici, j'ai demandé à mon frère d'y jeter un coup d'oeil. Sans être un pro de Visual Basic, il m'a fourni un résultat très proche de ce que j'attendais

Voici le code qu'il a produit :

Sub CodeCouleur()

'Ca sélectionne la feuille ou la macro marche, histoire de ne pas faire de bétise
Application.Worksheets("Copie de Feuille 1").Activate

'For = pour faire une boucle
For i = 57 To 66

Dim a As Long
Dim b As Long

  'prends les codes couleurs
    a = Cells(i, 3).Interior.Color
    Cells(i, 2).Value = a
    b = Cells(i, 9).Interior.Color
    Cells(i, 7).Value = b

    'recopie les couleurs dans des cases en dessous, histoire de vérifier
    Cells(i + 13, 2).Interior.Color = a
    Cells(i + 13, 7).Interior.Color = b
Next i

End Sub

Sub tri()

'Ca sélectionne la feuille ou la macro marche, histoire de ne pas faire de bétise
Application.Worksheets("Copie de Feuille 1").Activate

'Boucle For sur les lignes
For i = 3 To 53
    'Valeur pour la colonne qui va augmenter en fonction des couleurs trouvées
    a = 3
    'Boucle For sur les codes couleurs 1ere colonne
    For k = 57 To 66

        'Boucle For sur les colonnes
        For j = 3 To 144

            'test = est-ce que c'est la bonne couleur ?
            If Cells(i, j).Interior.Color = Cells(k, 3).Interior.Color Then

                'si oui = on rentre la donnée dans la nouvelle feuille
                Worksheets("test").Cells(i, a).Value = Cells(2, j).Value
                Worksheets("test").Cells(i, a).Interior.Color = Cells(i, j).Interior.Color
                 a = a + 1

            End If
        Next j
    Next k

 'Boucle For sur les codes couleurs 2eme colonne
    For k = 57 To 66

        'Boucle For sur les colonnes
        For j = 3 To 144

            'test = est-ce que c'est la bonne couleur ?
            If Cells(i, j).Interior.Color = Cells(k, 9).Interior.Color Then

                'si oui = on rentre la donnée dans la nouvelle feuille
                Worksheets("test").Cells(i, a).Value = Cells(2, j).Value
                Worksheets("test").Cells(i, a).Interior.Color = Cells(i, j).Interior.Color
                 a = a + 1

            End If
        Next j
    Next k

Next i

End Sub

Le résultat est sur l'onglet Test1.

J'ai copié le résultat et collé sur l'onglet Feuil2 en "transposé" (inversion abscisse et ordonnée) ce qui donne un grand tableau allant de la colonne B (1965) à la colonne AZ (2015). En dézoomant, on obtient une esquisse de graphiques (aires empilées) qui donne en un instant, une vision très claire de l'évolution des forces politiques dans le monde sur le demi-siècle, soit ce que je recherchais.

Le résultat n'est pas parfait (il y a des trous dus à mes propres erreurs lors de la saisie) mais ça vaut le coup d'oeil. Je pense qu'on peut peaufiner tout ça, j'aimerais avoir vos avis, c'est pour ça que je ne marque pas le topic comme résolu.

A bientôt,

JokerJet

Rechercher des sujets similaires à "tri couleur gouvernements 1965 2015"