Macro

Résolu/Fermé
mehdi - 23 juin 2016 à 09:59
 Utilisateur anonyme - 30 juil. 2016 à 20:51
Bonjour,


j'aimerai créer une macro pour trier des variables dans un tableaux avec des résultat en chiffre pour chaque variable aidez moi je suis perdu
A voir également:

1 réponse

Utilisateur anonyme
23 juin 2016 à 11:08
Bonjour mehdi,

Le tableau que tu veux trier est-il :

a) Un tableau qui est sur une feuille de calcul ?
b) Une variable tableau VBA déclarée par exemple avec Dim T() ?

--------------------------------------

Le cas a) est le plus simple : il faut utiliser l'instruction
expression.Sort paramètres
où expression est le Range du tableau de la feuille de calcul ;
pour les paramètres, regarde l'aide en ligne.

--------------------------------------

Le cas b) t'oblige à intégrer dans ton code VBA une sub de tri,
que tu dois écrire entièrement toi-même, ou recopier depuis
un code déjà existant (avec adaptation éventuelle).

Les méthodes de tri sont nombreuses.

La méthode la plus lente est le tri « Bulle », dénommée ainsi
parce qu'un élément remonte progressivement, à la façon
d'une bulle dans une boisson gazeuse (un soda) qui remonte
lentement à la surface. Exemple de tri Bulle figurant dans
un code VBA de Frenchie83.

Une méthode très rapide est le tri "Shell", améliorée ensuite
par Metzner et qui s'appelle donc le tri "Shell-Metzner".

La méthode la plus rapide est le tri "Quick sort" ;
Quick ? Genre Fast-food, quoi !  😉
Exemple de tri Quick sort figurant dans
un code VBA de ThauTheme.

Remarque bien que le tri Quick sort utilise la récursivité.

Cordialement.  😊
 
1
merci pour ta réponse, moi je suis nouveau dans le langage VBA j'ai pu faire ça
' Mise en forme spécifique

Columns("A:A").Select
Selection.NumberFormat = "0.000"

Columns("O:O").Select
Selection.NumberFormat = "0.000"

Columns("P:Q").Select
Selection.NumberFormat = "0"

Columns("T:T").Select
Selection.NumberFormat = "0.0"

Columns("U:W").Select
Selection.NumberFormat = "0.0"

Columns("X:X").Select
Selection.NumberFormat = "0.000"

Columns("Y:Y").Select
Selection.NumberFormat = "0"

Columns("AA:AA").Select
Selection.NumberFormat = "0.000"

Columns("AB:AC").Select
Selection.NumberFormat = "0"

Columns("AD:AG").Select
Selection.NumberFormat = "0.0"

Columns("AH:AH").Select
Selection.NumberFormat = "0.000"

Columns("AI:AK").Select
Selection.NumberFormat = "0.000"
et maintenant je voudrais changer parce que si la variable change de la colonne je suis pommé donc je voudrais faire appelle a la variable directement pour organiser mon tableau.
merci de ta réponse cordialement.
0
Utilisateur anonyme > mehdi
23 juin 2016 à 12:01
 
1) À propos de ton code VBA, qui est pour des formats numériques

a) J'ai vu que ça met différents formats numériques sur diverses colonnes
b) Il y a en tout 3 formats numériques : "0.000" ; "0.0" ; "0"

c) Ton code peut être beaucoup simplifié, en mettant une seule instruction
    de formatage numérique pour chaque type de format différent. De plus,
    note que pour un même format, il y a :
    - AH:AH et AI:AK contigus ; d'où : modifié en AH:AK
    - T:T et U:W contigus ; d'où : modifié en T:W

  ' Mise en forme spécifique
  Range("A:A, O:O, X:X, AA:AA, AH:AK").NumberFormat = "0.000"
  Range("T:W, AD:AG").NumberFormat = "0.0"
  Range("P:Q, Y:Y, AB:AC").NumberFormat = "0"

Mais toi seul peut savoir, selon le contexte de l'exercice, si c'est utile ou non
de le faire par VBA. Peut-être suffit-il de le faire manuellement sur la feuille
de calcul ?

Si la variable change de colonne, c'est à toi d'adapter ton code VBA,
mais si c'est fait directement sur la feuille de calcul, l'ajout d'une
colonne ne modifiera pas le format des autres colonnes ; idem pour
la suppression d'une colonne autre que celles déjà formatées.

2) Pour le tri, voir mon message précédent. Si tu m'en parles de nouveau,
précise si tu veux faire un tri sur la feuille de calcul ou un tri dans un
tableau VBA. Je t'aiderai dans le 1er cas ; pour le 2ème, voir les 2 liens.
 
0
merci pour ta réponse. ce qui mes demander c de créer une macro qui puissent lire la colonne par exemple "Tension1" et la chercher dans le tableau puis la metre au format "0.0" n'importe quelle format et le tableau ce compose de 70 colonne donc 70 variable ces des valeurs de tension et de courant mais c des variables différentes.
merci beaucoup.
0
Utilisateur anonyme > mehdi
Modifié par albkan le 23/06/2016 à 16:05
 
Je n'ai pas bien compris si « Tension 1 » est le nom de ta colonne (donc ce que
tu as mis en en-tête) ou si c'est une valeur qui est dans ta colonne (et si oui,
je suppose que c'est une valeur numérique telle que 1,5 volts, par exemple).

Est-ce bien cela que tu veux dire :
a) Tu as un tableau avec 70 colonnes (de tensions de courant)
b) Les en-têtes de colonnes sont « Tension 1 » à « Tension 70 »

Mais sois plus précis ; par exemple :
a) Des colonnes A à AK
b) En-têtes en ligne 2
c) Lignes de données de 3 à 200
d) Y aura-t-il plus tard d'autres lignes en dessous ?
e) Y aura-t-il plus tard d'autres colonnes à droite ?

Et je n'ai pas bien compris ce que tu veux :
Lire la colonne « Tension 1 », oui ; mais pour y chercher quelle valeur ?
À quel emplacement est cette valeur ? Et si on la trouve, faire quoi ?

Peux-tu mettre dans ton prochain message une copie d'écran ou mieux :
un lien Cjoint vers ton fichier Excel ?

Mais ça ne sert à rien si tu n'indiques pas mieux ce que tu veux !
 
0
Sam1899 Messages postés 14 Date d'inscription jeudi 23 juin 2016 Statut Membre Dernière intervention 22 juillet 2016
Modifié par Sam1899 le 23/06/2016 à 16:33
salut alban je suis le collègue de mehdi nous travaillons touts les deux sur cette macro j'ai pas trouver comment te . merci beaucoup pour le nombre de ligne y'a 15000 et pour les variables il changent de position entre un fichier et un autre fichier excel moi ce que je voudrais c avoir une macro qui puissent reconnaître directement la variable et la cherché pour ensuite maitre la colonne au format désirer. merci beaucoup.
Ah_Cha_Testtime .........Ah_Charge ........Ah_Charge.REC
Ah...............................Ah......................Ah
0.00.............................0.00...................0.00
0.00..............................0.00..................0.00
0.00..............................0.00..................0.00
0.00...............................0.00..................0.00
0.00...............................0.00..................0.00
0.00...............................0.00..................0.00
j'ai pasa trouver comment ajouter une pièce jointe donc j'ai copier le tableau

Ah_Cha_Testtime c une variable
et Ah c son unité ya plein d'autre variable dans le tableau.

merci infiniment
0