Forum Clubic

VBA excel : classer selon une colonne

Bonjour,
Je rencontre des difficultés dans l’élaboration d’un programme VBA…
J’aimerais un programme pour chercher dans la colonne A, les mots “chat” par exemple parmi d’autres mots, et prendre le nombre dans la colonne D correspondant.
Ensuite, j’aimerais que ça marque sur une autre feuille, le classement de ces “Chats” (du plus petit au plus grand nombre de la colonne D)
Mais je veux que cela soit possible pour toutes les quantités, par exemple si il y avait 4 fois chat.
A B C D

chien 3
chat Felix 2
poisson 3
chat Pistache 6
souris 1
chat Noireau 1

Ex : sur autre feuille :
ex : Chat Noireau 1
Chat Felix 2
Chat Pistache 6

Merci beaucoup pour votre aide !!!

tu en es où exactement dans l’écriture de ton code ?
Tu bloques sur la partie extraction des lignes “chat”, sur la partie tri ou sur la partie écriture dans la feuille 2 ?

Je bloque pour extraire les lignes chats. Mais en fait, ici j’ai simplifié, mais entre le prénom du chat est le numéro, j’ai plein d’autres données qui ne m’intéressent pas : je souhaite donc seulement sélectionner la colonne D avec les colonnes A et B (ici).
Là où je bloque :

  1. Faire la recherche sur toutes les lignes
    2)Sélectionner la colonne D
    3)faire en sorte que ça les mette sur l’autre feuille
    Et après, pour ranger dans l’ordre, ça va…
    Merci :wink:

Pour la lecture/recherche :
Si tu as une colonne avec simplement le mot “chat” dans les lignes qui t’intéressent, tu fais une boucle.
Et la cellule de la colonne D, par rapport de celle de A se trouve par un .offset()

[b]for each c in range(les cellules utilisées de la colonne A)
if c = “chat” then
nombre=c.offset(0,3)
endif
next

[/b]pour écrire:
Tu te sers d’un Range que tu fais évoluer en fonction de ton écriture :
Set R = Range(la première cellule dans laquelle tu veux écrire)
R= c (là tu écris “chat”)
R.offset(0,1)=nombre
set R=R.offset(1)
(là tu passes à la ligne suivante)

Merci beaucoup…
Mais le problème est que ça sélectionne uniquement la dernière ligne concernée !
Car, je pense, avant le “next”, ça sélectionne à chaque fois, et il reste dans “nombre” seulement la dernière information… d’où l’écriture sur la feuille résultat, seulement du dernier “chat” sélectionné…

Ce n’est pas un programme clés en mains, ce sont des pistes pour y arriver.
C’est à toi d’imbriquer correctement les deux actions pour que ça fonctionne.

Et si tu bloques, tu donnes ton code pour qu’on puisse voir à quel endroit ça ne marche pas.