VBA - Réorganiser un tableau

Bonjour,

Je vous mets un exemple en pièce jointe. J'aimerai savoir comment copier le tableau de Feuil1 à Feuil2 en classant les données par ordre décroissant de la colonne B. Puis en mettant à part (nb.sauter une ligne après toutes les données qui sont différentes de orange, bleu, rouge) et sauter encore une ligne pour mettre les données qui correspondent à turquoise et gris.

Sachant que les données à mettre de côté ont toujours le même nom et qu'il n'y a que 2 paquets de données à mettre de côté. Le nombre de lignes dans la partie haute du tableau peuvent varier.

Par avance merci pour votre aide.

Julien.

24re-organiser.zip (10.20 Ko)

Salut,

Tu dis que tu veux trier les données par ordre décroissant puis effectuer trois paquets de données, mais je trouve plutôt qu’il faut séparer tes données en trois paquets (Paquet 1, toutes données ne se trouvant pas dans les paquets 2 et 3 ; Paquet 2, toutes les données ‘Orange-Bleu-Rouge’ ; Paquet 3, toutes les données ‘Turquoise-Gris’) et trier chaque paquet par ordre décroissant.

C’est en fait ce que j’ai fait dans le fichier ci-joint. A chaque fois que tu sélectionnes la Feuil2, elle est actualisée en fonction des modifications de la Feuil1.

A te relire.

27re-organiser-v1.zip (14.66 Ko)

Bonjour

Bonjour Yvouille

Une autre version avec une approche un peu différente.

Bye !

13re-organiser.zip (24.94 Ko)

Salut gmb,

Si tu effectues plusieurs fois le report avec ton fichier – après avoir modifié les montants et éventuellement après avoir ajouté des couleurs - il y a certaines anciennes données qui restent en place (uniquement au niveau du gris et du turquoise ?) ; regarde l’exemple ci-joint.

Cordialement.

Bonjour

Merci Yvouille pour ta réponse.

J'aurais dû commencer par effacer la zone de destination.

Tu es la meilleure. Je m'incline d'autant plus volontiers que, sur ce forum, tu m'as beaucoup appris.

Je saisis donc cette occasion pour t'en remercier.

Bye !

Bonsoir,

Merci à vous deux de m'avoir répondu. Franchement cool. Vu que VBA à l'air de vous être accessible :p. Est-ce que je peux encore vous solliciter pour rajouter des choses en plus ?

Le but c'est d'aboutir au résultat de la feuille intitulée final dans le fichier que je vous joints.

Les colonnes D et I qui contiennent des formules sont des cellules fixes qui contiennent par défaut ces formules bien spécifiques. Elles ne bougent jamais.

L'ordre des colonnes est toujours le même, c'est également le cas des colonnes E et H qui sont vides.

Il y a une mise en forme conditionnelle elle aussi par défaut (nb. avant tout traitement par ailleurs, tel que mettre une ligne sur 2 en gris) sur la colonne F.

La mise en forme finale mettre une ligne sur 2 en gris et faire des cadres autour des 3 blocs.

Par avance merci c'est déjà super d'avoir pris du temps pour me répondre par ailleurs.

Julien.

14re-organiser-3.zip (24.74 Ko)

Salut, C'est re moi.

Bon ce que j'ai écrit hier soir me semble un peu alambiqué. Je remets un fichier.

En fait la Feuil1 contient les calculs, les données, et la disposition des colonnes du tableau.

Je souhaiterais aboutir à la feuille final. C'est-à-dire garder la réorganisation des lignes en 3 blocs, et le tri décroissant sur la colonne B.

Puis rajouter la mise en forme :

  • un ligne sur 2 grise pour chaque bloc,
  • des bordures pour chaque bloc,

Voilà j'espère que c'est plus clair.

Julien.

9re-organiser-4.zip (24.08 Ko)

Re-bonjour,

J’espère que ma solution te convenait quand même, puisque tu ne reprends pas mon fichier pour continuer la discussion. Mais bon, je me permets quand même d’insister avec mon idée.

Je trouve que c’est toujours une catastrophe avec Excel de laisser des lignes ou des colonnes vides ; à la longue, ça ne créé que des problèmes. Je me suis donc permis d’insister afin de supprimer cette ligne vide tout en haut et – à contrecœur – j’ai laissé tes colonnes E et H vides au cas où elles te serviraient quand même ainsi que tes lignes vides au milieu des tableaux.

Mais regarde comme ça complique par exemple la mise en bordure des lignes

Range("A2:D" & DerLig & ",A" & DerLig + 2 & ":D" & DerLig + 4 & ",A" & DerLig + 6 & ":D" & DerLig + 7).BorderAround Weight:=xlMedium

Sinon j'avais bien compris ton premier message, mais il faut quand même nous laisser le temps de réagir.

A te relire.

15re-organiser-v5.zip (20.24 Ko)

Encore une fois merci.

Effectivement le fait d'avoir des colonnes vides complique bien la chose mais elles sont là dans un souci purement esthétique :p

Après je me rends surtout compte qu'il va falloir que je me mette sérieusement à vba. Comprendre ton code va me prendre du temps, pas mal de temps.

Tu as des conseils pour un débutant ? Par où commencer ? Comment progresser ?

Comment faire pour rajouter une ligne somme à la fin du tableau reporting Feuil2 ?

Tellement de questions :p

Salut,

Mutafukaz a écrit :

Tu as des conseils pour un débutant ? Par où commencer ? Comment progresser ?

Regarde la barre de menu noire au-dessus de nos messages, il y est inscrit ‘Cours VBA’. Si tu fais toutes les leçons les unes après les autres, je pense que tu en sauras déjà énormément.

Dans le fichier ci-joint, tu as une ligne pour les totaux en plus (afin de suivre ta logique, avec une ligne vide également). Comme je ne savais pas trop quelles colonnes devaient en contenir un – mais tu n’as pas été très précis non plus à ce sujet - j’ai choisi un peu au hasard. A corriger si nécessaire.

Amicalement.

22re-organiser-v6.zip (20.35 Ko)

Ok c'est parti pour les cours VBA :p

Oui c'était juste pour savoir comment mettre une fonction dans un code VBA. D'ailleurs je vois que la forme n'est pas la même que lorsqu'on tape une fonction dans Excel. Est-ce qu'on peut mettre toute les fonctions usuelles d'Excel dans du code VBA (nb. y aurait-il une sorte de tableau de correspondance ?)

Encore merci !

Re,

En suivant le cours de notre site tu progresserais d’une manière logique, en n’apprenant pas certains points très poussés sans connaître les bases.

Une autre manière d’obtenir de l’aide c’est l’aide Excel elle-même. C’est un outil extraordinaire à ne pas oublier.

Par exemple si tu places le curseur sur un mot-clé tel que le SUM du passage Application.Sum et que tu tapes F1, une fenêtre s’ouvre. Là tu as une explication générale sur cette fonction mais si tu choisis tout en bas un texte qui doit ressembler à ‘Eléments de WorksheetFunction-Objekts’ (comme je suis aujourd’hui sur un PC germanophone, je ne connais pas le texte exact en français), tu as la liste des fonctions utilisables en VBA.

Certaines fonctions ne sont pas sur cette liste, par exemple Len, Mod, Mid, Rnd. Je n’en connais pas la liste complète ni où tu trouverais une telle liste.

Par contre si tu veux connaitre la syntaxe d’une fonction en VBA que tu connais par le programme de base Excel, rien ne t’empêche d’enregistrer une macro en inscrivant cette fonction tout à fait normalement puis d’aller voir comme elle a été ‘traduite’ en VBA.

Dans les fenêtres ci-dessous, tu vois comment j’ai enregistré la première macro [ en utilisant la fonction =NBCAR() ] et comment j’ai utilisé le mot clef trouvé afin d’écrire mon code.

Sub Makro2()
'
' Makro2 Makro
'

'
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "=LEN(RC[-1])"
    Range("B2").Select
End Sub
Sub Utilisation_autre()
    Range("B2") = Len(Range("A1"))
End Sub

Bonnes salutations.

Merci Yvouille.

Effectivement les bases je dois acquérir parce que ça fait une semaine que je cherche à comprendre le code que vous m'avez donné. Je tâtonne je cherche.

A bientôt.

Rechercher des sujets similaires à "vba reorganiser tableau"