Tableau mémoire VBA

Bonsoir à tous,

S'il vous plaît pouvez vous m'aider à déclarer comme tableau mémoire la plage B21:G30 et la trier dans un tri croissant selon la colonne N° Compte :

screenshot 20220712 192437 samsung internet

après le trie je voudrais insérer une ligne vide entre deux N° Compte différents ... (pour une meilleure représentation). Le résultat finira par alimenter une listbox dans un userform.

merci beaucoup d'avance

Bonsoir,

quel type d'aide souhaites-tu?

Conseils? Bouts de code? Code tout prêt sans rien avoir à faire?

Un peu d'aide d'initiation au départ devra aider. Declaration du tableau c'est tout :) sans tri ni insertion ... j'ai lu le cours tableaux vba sur le site mais je n'y arrive pas ... merci

Ah d'accord!

Dans ce cas on peut le faire de façon assez simple, quelque chose comme:

tableau = Range("B21:G30").Value

Le tableau aura directement lignes et colonnes de la plage donnée.

ça peut légèrement être amélioré en rendant la dernière ligne que l'on veut prendre dynamique en faisant:

Dim ligFin as Integer
ligFin = range("B" & Rows.Count).End(xlup).Row
tableau = Range("B21:G" & ligFin).Value

On va chercher la dernière ligne remplie en colonne B en partant de la dernière ligne du classeur colonne B (donc celle tout en bas du classeur) avec Rows.Count, on monte vers le haut, comme si on faisait le raccourci Ctrl + flèche vers le haut avec .End(xlup), ça s'arrête sur la première cellule remplie, et on demande à avoir la ligne avec .Row

On change ensuite un peu la définition de la plage de cellule pour rendre la ligne variable avec le symbole & qui sert à assembler la chaine de texte qui est constante avec la variable dont on vient de déterminer la valeur, et le tour est joué.

La particularité des tableaux définis de cette façon à partir d'une plage de cellules, c'est qu'ils ont toujours deux dimensions, et elles commencent à l'indice 1.

Les fonctions LBound(tableau,1) et Ubound(tableau,1) permettent d'avoir les limites inférieures et supérieures de ton tableau pour la première dimension (les lignes), c'est très pratique pour faire des boucles.

merci bien Ausecour :)

je déduis que pour boucler un tri décroissant on utilise Ubount et pour tri décroissant un Lbound peut être ?

Non pas spécialement, tu peux parcourir ton tableau dans n'importe quel sens pour tes tris, en général je vais lbound to ubound parce que c'est le sens le plus logique pour moi.

Je n'utilise ubound to lbound step -1 (par défaut step est à 1 si on ne précise pas) que quand il y a par exemple des suppressions de lignes.

Si tu n'es pas à l'aise avec les algorithmes de tri tu peux en trouver des exemples sur internet.

Bon je pense qu'on peut clore ce sujet comme tu en as créé un autre ici: https://forum.excel-pratique.com/excel/tri-dans-tableau-memoire-vba-173967

Merci beaucoup Ausecour :)

Comment je peux clore et mettre résolu le sujet svp ?

Il y a un coche sur lequel cliquer tout en haut du sujet j'imagine, que seul toi peux cocher

Rechercher des sujets similaires à "tableau memoire vba"