VBA - combobox en cascade - filtrer une listbox

Bonjour a tous,

J'ai réalisé deux formulaires avec userform pour modifier mes données de manière simple et rapide.

Mais je rencontre deux petits problèmes que je n'arrive pas à résoudre:

1/J'utilise un USERFORM pour modifier des donnée d'une ligne et lorsque j'effectue cette action, toutes les données écrases les données présente dans ma base de donnée.

Exemple: je renseigne la date de paiement (voir image 1)

Conséquences normales: les cellule %TVA, %RG, %BF écrase les données présente dans ma base de donnée

Problèmes: les cellules %TVA, %RG, %BF , dans ma base de données nom plus d'unités valide. (voir image 2)

image image

2/ Je n'arrive pas à faire en sortes que les combobox soient liées entre elles et crée des filtres en cascades (voir l'image ci aprés)

image

Je vous remercie pour votre aide et je met en PJ le fichier Excel de référence.

Cordialement

Bonjour,

ci-joint votre fichier corrigé

1- J'ai ajouté au début votre tableau structuré : Tableauentree, une colonne ligne afin de procéder facilement à la modification/suppression

2- J'ai intégré le filtrage de vos combobox dans la procédure : show_data_in_listbox

NB: il serait bien que vous indentiez votre code pour sa lisibilité. Je l'ai fait en partie.

Bonjour à tous,

Une suggestion :

Remplacer :

    Sheets("ENTREE").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Par :

   Sheets("ENTREE").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Remplacer :

    Sheets("FORMULAIRE ENTREE").Select
    Range("D3").Select
    Selection.Copy
    Sheets("ENTREE").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Par :

   Sheets("ENTREE").Range("B2") = Sheets("FORMULAIRE ENTREE").Range("D3").Value2

L'exécution du code sera plus rapide.

Attention : thev a ajouté une colonne. Cela a décalé les colonnes. Il faut en tenir compte dans le code.

.Range("A2") est devenu.Range("B2")

.Range("B2") est devenu .Range("C2")

Etc.

Bizz

Bonjour,

Avant tous un grand merci pour vos réponses.

Suite à vos recommandations, j'ai dans un premier temps:

-simplifier le code comme le suggère "Bizare" et ca fonction beaucoup mieux!! merci

-identifier tous les codes comme le suggere "thev".

Mais malheureusement, les modifications apporté par "thev" ne fonctionne pas. Il y a une erreur que je n'arrive pas à identifié.

Je remet mon fichier avec les deux premières modifications ci dessus à l'indice N.

Le but de l'opération:

1/dans le userform forme-entree est de filtrer les résultat de la listbox en fonction de la combobox1 et des dates dans la textbox32 et textbox31
2/dans le userform forme-sortie est de filtrer les résultat de la listbox en fonction de la combobox1, combobox2, combobox3, et des dates dans la textbox32 et textbox33

Cela fonction déjà avec mon code actif mais les diffèrent filtres ne sont pas liée.

Encore merci pour votre aide.

Sans vos aides respectifs, je n'en serai pas à ce stade du projet.

Mais malheureusement, les modifications apporté par "thev" ne fonctionne pas. Il y a une erreur que je n'arrive pas à identifié.

Pouvez-vous préciser ce qui ne ne fonctionne pas dans le fichier que je vous ai transmis : affichage des userform ? , modifications ?, filtrages ?

Quelle erreur recontrez-vous ? ... Je reste surpris car chez moi, tout fonctionnait correctement.

Ou alors, vous n'êtes pas reparti du fichier que je vous ai transmis .....

Bonjour thev,

Je vous met quelques imprimes écrans:

1/Dans le userform sortie, ce sont les filtrages successifs qui ne fonctionnent plus, code erreur 13:

image

2/Dans le userform entree, le filtrage ne fonctionne plus, rien ne s'affiche:

image

Dans le userform entree, j'avais implémenté un code qui masquait les lignes dont la colonne chantier était vide. Et la ca ne fonctionne plus, on voit les 4 ligne vide:

image

Ca fonctionne pourtant toujours dans le userform sortie

image

Merci beaucoup car je suis arrivé a un niveau vba qui me dépasse

Bonjour,

ci-jointe nouvelle version :

avec ajout fonctions de conversion pour la modification et simplification code associé aux formulaires de création d'entrée/sortie.

Bonjour thev,

Je te remercie pour ton aide mais le code vba que tu propose semble être complètement diffèrent de mon code originel.

N'ayant pas de réelle compétence en VBA, je n'arrive pas à comprendre le code. Je ne pourrait donc malheureusement pas utiliser ton dernier indice.

je te remercie grandement pour ton aide.

Cordialement

Bonjour,

Merci tout de même pour ton retour.

Si cela peut éventuellement t'aider pour compréhension du code :

1- ci jointe explication des instructions associées à un tableau structuré :

https://forum.excel-pratique.com/astuces/tableau-structure-instructions-vba-specifiques-a-cet-objet-...

2- ci jointe explication des instructions associées à un dictionnaire :

9dictionary.docx (13.35 Ko)

Bonjour thev,

je vais me pencher sur tous ca!

Ca risque de prendre un peu de temps et je reviendrai sur le forum lorsque j'aurai compris ton code

Merci encore

Rechercher des sujets similaires à "vba combobox cascade filtrer listbox"