Extration d'une partie d'un tableau avec filtre par macro

l.et.lilou

XLDnaute Junior
Bonjour,

Voila je suis passionnée par Excel et pouvoir exécuter des Macros en un Click ça sera super. Malheureusement je suis que "débutante". :confused:

J'ai un tableau avec deux feuilles : Refus et liste.

Je voudrais arriver à taper simplement le numéro de compte d'un fournisseur dans la feuille "Refus" et automatiquement Excel me remplisse le tableau suivant (N° commande, Motif, Montant...) en ne prenant en compte que ce fournisseur. De plus, l'idée première de cette macro, c'est qu'elle puisse me remplir ce tableau avec que des accords "NON" : Cela voudrait dire que les commandes avec accord NON serait refuser.
Je vous transmet mon fichier.

Je vous remercie pour l'aide que vous pourrez m'apporter !
 

Pièces jointes

  • vba.xlsx
    11.3 KB · Affichages: 65
  • vba.xlsx
    11.3 KB · Affichages: 70
  • vba.xlsx
    11.3 KB · Affichages: 65

Fred0o

XLDnaute Barbatruc
Re : Extration d'une partie d'un tableau avec filtre par macro

Bonjour l.et.lilou et bienvenue sur le forum.

Si j'ai bien tout compris, voisi un code à placer dans le module de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, dlr, dll, la
    If Not Intersect(Target, [A1]) Is Nothing Then
        Application.EnableEvents = False
        [A4:G23].ClearContents
        With Sheets("liste")
            dlr = Range("A65536").End(xlUp).Row + 1
            dll = .Range("A65536").End(xlUp).Row
            For Each c In .Range("A2:A" & dll)
                If c = Target And UCase(c.Offset(0, 8)) = "NON" Then
                    la = c.Row
                    Range("A" & dlr) = .Range("C" & la)
                    Range("B" & dlr) = .Range("D" & la)
                    Range("C" & dlr) = .Range("E" & la)
                    Range("D" & dlr) = .Range("F" & la)
                    Range("E" & dlr) = .Range("G" & la)
                    Range("F" & dlr) = .Range("H" & la)
                    Range("G" & dlr) = .Range("I" & la)
                    dlr = dlr + 1
                End If
            Next
        End With
    Application.EnableEvents = True
    End If
End Sub

Pour placer le code dans le module de la feuille, tu fais Click-droit sur le nom de l'onglet, puis "Visualiser le code". Ensuite, tu colles le code fourni et tu testes.

Je te conseille de mettre une liste de validation an "A1" de la feuille "refus".

A+
 

l.et.lilou

XLDnaute Junior
Re : Extration d'une partie d'un tableau avec filtre par macro

Grand merci à toi ! c'est exactement ce que je voulais.

A présent j'essai d'utiliser ce modèle pour le reporter sur le vrais fichier mais je dois t'avouer que j'ai quelques difficultés.
J'arrive à comprendre quelque phrases de la macro mais pas toute... :confused:

Merci encore :D
 

l.et.lilou

XLDnaute Junior
Re : Extration d'une partie d'un tableau avec filtre par macro

J'ai essayé de reprendre la macro de Fred0o et de changer quelques données pour pouvoir réussir à la faire fonctionner sur mon vrai fichier et sa ne marche pas :confused:

J'ai besoin d'aide s'il vous plait...

je vous transmet mon fichier avec l'exact position de tous mes tableaux.
 

Pièces jointes

  • Essai 2.xls
    54.5 KB · Affichages: 44
  • Essai 2.xls
    54.5 KB · Affichages: 45
  • Essai 2.xls
    54.5 KB · Affichages: 47

l.et.lilou

XLDnaute Junior
Re : Extration d'une partie d'un tableau avec filtre par macro

J'ai de nouveau besoin de votre aide...

Je vous transmet le fichier modifié.

Voila, ce que je voudrais c'est que ma macro fonctionne sur deux feuilles différentes..
Imaginons que j'ai 2 feuilles (créée sur la même base de tableau) que sur ma feuille "refus", je veux que ma macro prenne en compte ma feuille 1, comme ma feuille 2...

Exemple :
Numéro de fournisseur : 109500 (dans liste 2)
je veux que toute les accords "non" s'affiche.
mais si a présent je souhaite avoir le numéro de fournisseur : 109310 (dans liste 1), idem....
je voudrais que ma macro arrive a prendre les données que ça soit sur la feuille 1 ou 2 ou 3 ou4....

S'il vous plait.. help :)


et heu, si se serait possible, comment écrivez vous la formule "recherchev" dans la cellule D7 de la feuille "refus"
pour qu'elle prenne en compte plusieurs feuilles ?
J'avais écrit : =RECHERCHEV(C7;liste!C4:D29;2)&RECHERCHEV(C7;'liste 2'!C4:D20;2) mais sa ne marche pas :(

Merci d'avance
 

Pièces jointes

  • Essai 2.xls
    61.5 KB · Affichages: 57
  • Essai 2.xls
    61.5 KB · Affichages: 60
  • Essai 2.xls
    61.5 KB · Affichages: 56

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG