Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tris sur critères multiples adjacents

4 réponses
Avatar
d.sundow
Bonjour,

J'aimerai pouvoir parvenir =E0 trier (via les fl=E8ches de filtres
usuelles) une base de donn=E9es non pas sur le crit=E8re principal mais
sur l'information qui le jouxte (qui se situe dans la colonne
adjacente).

J'ai r=E9fl=E9chi =E0 comment rendre cela possible et je pense que le
concept que j'ai envisag=E9 doit pouvoir fonctionner.

Me manque encore la formule ou le code qui permettra =E0 l'outil de
g=E9n=E9rer l'information pertinente.

Vous trouverez l'explication compl=E8te et d=E9taill=E9e du probl=E8me dans =
le
classeur ci-joint :

http://cjoint.com/?dAkAQtDONG


Merci d'avance pour votre aide - cordialement - Sundow

4 réponses

Avatar
FdeCourt
Salut,

En fonction des infos de ton fichier (ca met un x dans la premiere
colonne) :

Sub DoubleCritères()
Dim ListeValeurs
Dim MaValeur As Long, x As Long, NbLgn As Long, k As Long, y As
Long
Dim MonResultat()
Dim temp()

ListeValeurs = Range(Cells(5, 2), Cells(Cells(65536,
1).End(xlUp).Row, 3))
MaValeur = 101172 'Il s'agit de la valeur contenu dans ton listbox

NbLgn = UBound(ListeValeurs)
ReDim MonResultat(1 To NbLgn)

For x = 1 To UBound(ListeValeurs)
If ListeValeurs(x, 2) = MaValeur Then
k = k + 1
ReDim Preserve temp(1 To k)
temp(k) = ListeValeurs(x, 1)
End If
Next

For x = 1 To UBound(ListeValeurs)
For y = 1 To UBound(temp)
If ListeValeurs(x, 1) = temp(y) Then
MonResultat(x) = "x"
Exit For
Else
MonResultat(x) = ""
End If
Next
Next
Dim tbl

Range(Cells(5, 1), Cells(NbLgn + 4, 1)).Value =
Application.Transpose(MonResultat)
End Sub



On 26 mar, 12:10, wrote:
Bonjour,

J'aimerai pouvoir parvenir à trier  (via les flèches de filtres
usuelles) une base de données non pas sur  le critère principal mais
sur l'information qui le jouxte (qui se situe dans la colonne
adjacente).

J'ai réfléchi à comment rendre cela possible et je pense que le
concept que j'ai envisagé doit pouvoir fonctionner.

Me manque encore la formule ou le code qui permettra à l'outil de
générer l'information pertinente.

Vous trouverez l'explication complète et détaillée du problème dan s le
classeur ci-joint :

http://cjoint.com/?dAkAQtDONG

Merci d'avance pour votre aide - cordialement  - Sundow


Avatar
d.sundow
Salut,

Merci beaucoup de te pencher sur ce problème qui est depuis longtemps
un véritable casse tête pour moi; je n'ai jamais vraiment su par quel
bout le prendre.

J'ai essayé de lancer ta macro mais malheureusement ça bogue :

For y = 1 To UBound(temp) se me en surbrillance jaune.

Sais-tu de quoi ça peu provenir ?

Merci pour ton aide et le temps que tu as du passer à rédiger ce long
code - sundow
Avatar
FdeCourt
Hello,

Voilà un exemple dans le fichier joint :
http://cjoint.com/?dAqS3rRWQD

Tous se passe par macro (dans le module 1 ainsi que sur la feuille 1
et le workbook)

Cordialement,

F.

On 26 mar, 15:49, wrote:
Salut,

Merci beaucoup de te pencher sur ce problème qui est depuis longtemps
un véritable casse tête pour moi; je n'ai jamais vraiment su par quel
bout le prendre.

J'ai essayé de lancer ta macro mais malheureusement ça bogue :

For y = 1 To UBound(temp)      se me en surbrillance jaune.

Sais-tu de quoi ça peu provenir ?

Merci pour ton aide et le temps que tu as du passer à rédiger ce long
code - sundow


Avatar
d.sundow
On 26 mar, 16:46, FdeCourt wrote:
Hello,

Voilà un exemple dans le fichier joint :http://cjoint.com/?dAqS3rRWQD

Tous se passe par macro (dans le module 1 ainsi que sur la feuille 1
et le workbook)

Cordialement,

F.


Hello F.,

Merci mille fois pour cette solution VBA qui fonctionne à merveille.
Je suis très impressionné par le code que tu as écris.

Personnellement en code je vaux pas pipo et ça sera une bonne occasion
de tenter de comprendre un peu comment ça fonctionne.

J'ai, de mon côté, passé la journée à tenter de résoudre ce prob lème
qui me prenait la tête depuis longtemps et je crois être aussi tombé
sur une solution intéressante.

Je te la soumets car elle fonctionne sans une ligne de code; juste
avec des formules et des tables :

http://cjoint.com/?dAqUoFrcoe

Voilà donc réuni les deux écoles d'Excel : celle du code et celle de
la formule ! :-))

Merci F. c'est très sympa à toi de m'avoir donné un coup de main. Je
vais devoir adapté ces solutions dans une base de données plus grande
et plus complexe, je verai alors laquelle de nos deux solutions sera
la plus adaptée.

Merci aussi pour tout le temps que tu m'as consacré aujourd'hui, très
bonne soirée à toi (et à ceux et celles qui poseront les yeux sur ces
mots) - sundow