Boucle qui remplace un filtre

15classeuressai.xlsm (14.67 Ko)
15classeuressai.xlsm (14.67 Ko)

Bonjour à tous,

Je me permets de revenir vers vous car malgré les tutos et autres explications sur les boucle je bug un peu avec l'une d'entre elle. Enfin c'est plutôt l'ordi qui bug .

En effet je cherche à filtrer des données par rapport à une condition (A1 du fichier). L'ensemble des données filtrées si elles sont séparées doivent constituer une nouvelle liste de choix pour une liste déroulante en étant groupé (à partir de E2).

Mon objectif : Avec plusieurs filtres ou tri par sélection de "button" + macro, je dois pouvoir créer un système entonnoir d'information et orienter les choix de mon utilisateur.

Pas certain d'être très clair mais si quelqu'un veut m'aider....j'en serais ravi.

Vous remerciant par avance pour votre aide et votre temps

A très bientôt

Bonjour,

Il est où le code que tu as commencé ?

Une base de données ne doit pas avoir de trous et comme Excel n'est pas un logiciel de base de données, il est nécessaire de dupliquer le champ !

Par exemple tu as en colonne A, B et C:

EP09/G1B/Grain bille

si sur la ligne suivante tu as G1C/Grain cuir et que ces valeurs sont "enfants" de "EP09", ta ligne doit être :

EP09/G1C/Grain cuir

La cellule en colonne A ne doit pas être vide.

C'est de cette façon que tu auras un filtrage efficace.

Bonjour Theze,

Merci pour ta réponse. Désolé de ne pas être revenu plus tôt. Je te réponds avant de faire un break WE 8) .

Bien d'accord sur le principe du filtre mais mon problème est juste là.

En fait j'ai différents codes en colonne B et C mais pas forcément d'affectation. C'est pourquoi je passe par une formule banale de sélection. Ensuite j'ai créé un code que je ne pense pas optimal car l'ordi tourne un long moment et j'ai l'impression que la mémoire sature. Le code est le suivant :

Sheets("db").Select

Range("a1").Copy

Range("b1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

'Sheets("db").Select

Range("f2:f10000").ClearContents

'Copie les bonnes infos et les tries

Range("e2:e100").Select

Selection.Copy

Range("f2").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

ActiveWorkbook.Worksheets("DB").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("DB").Sort.SortFields.Add Key:=Range("f2:f100"), _

SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("DB").Sort

.SetRange Range("f2:f100")

.Header = xlGuess

.MatchCase = True

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

'LigneTransf As String

For i = 1 To 100

Range("e65536").End(xlUp)(2).Cells(premierLigne, 1).Select

Selection.Cut

Range("f65536").End(xlUp)(2).Cells(DerniereLigne + 1, 1).Select

ActiveSheet.Paste

Next

Range("a2").Select

Qu'en penses tu ?

Merci d'avance

Salut FranckGail,

ben..., euh..., il n'y a rien à en penser! Désolé!

Ce code ne fait rien ou presque à part tourner dans le vide. Pauvre ordi!

Theze a raison : complète ta BDD! Les macros ont horreur du vide!

Explique-nous clairement le raisonnement de tes entonnoirs et un fichier un peu plus conséquent!

A+

Rechercher des sujets similaires à "boucle qui remplace filtre"