VBA vérifier présence valeurs sur feuille sur laquelle les données sont filtrées

llambry

XLDnaute Junior
Bonjour,

je cherche un code VBA pour vérifier la présence d'une valeur sur feuille sur laquelle un filtre est place...

voir fichier excel avec code vba qui ne fonctionne pas car il trouve toutes les valeurs, alors que certaines sont cachées par les filtres et il ne devrait pas me les trouver !!!!

merci d'avance de votre aide.
 

Pièces jointes

  • essai.xlsm
    23.8 KB · Affichages: 56
  • essai.xlsm
    23.8 KB · Affichages: 69
  • essai.xlsm
    23.8 KB · Affichages: 78

pierrejean

XLDnaute Barbatruc
Re : VBA vérifier présence valeurs sur feuille sur laquelle les données sont filtrées

Bonjour Ilambry

Je résume le problème

1) Etudier un code Vba non fonctionnel
2) En déduire ce qu'a voulu faire l'auteur du dit code
3) Créer un code fonctionnel réalisant ce qu'a voulu faire l'auteur

Est-il possible de zapper les paragraphes 1 et 2 par une explication (dans la langue de Molière de préférence) de ce que tu souhaites ???
 

llambry

XLDnaute Junior
Re : VBA vérifier présence valeurs sur feuille sur laquelle les données sont filtrées

oui en effet, explication :
dans sur la feuille1 je met un filtre afin de trouver toutes les valeurs négatives
je mets également un filtre sur les feuilles 2 et 3 en fonction du numéro de la semaine en cours et de la semaine des besoins
ma demande :
vérifier si il y une date et une quantité dans les feuilles 2 et 3 (sur les références restantes après filtre) des références de la feuille 1 et copier les données dans les colonnes Q et R.

J'espère avoir été un peu plus claire...

donc mon problème ce trouve dans la fin de mon code vba ...
dans application.match --> toutes les références sont trouvées même celle cachées suite au filtre --> d'où mon problème (moi je voudrait qu'il ne cherche que sur les références visibles)

If IsError(Application.Match(réf, Sheets("tampon").Range("A2:A200"), 0)) Then

Else
dat = WorksheetFunction.VLookup(réf, Sheets("tampon").Range("A2:F200"), 5, False)
qty = WorksheetFunction.VLookup(réf, Sheets("tampon").Range("A2:F200"), 6, False)

Cells(Tablo(i), 18).Value = qty
Cells(Tablo(i), 17).Value = dat
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : VBA vérifier présence valeurs sur feuille sur laquelle les données sont filtrées

Re

A tester (pas fait because absence de feuille tampon)

Code:
If mrp < 210 Then
        'If IsError(Application.Match(réf, Sheets("tampon").Range("A2:A200"), 0)) Then


             'Else
              'dat = WorksheetFunction.VLookup(réf, Sheets("tampon").Range("A2:F200"), 5, False)
              'qty = WorksheetFunction.VLookup(réf, Sheets("tampon").Range("A2:F200"), 6, False)


        
        'End If
     For n = 2 To Sheets("tampon").Range("A200").End(xlUp).Row
       If Rows(n).Hidden = False And Sheets("tampon").Range("A" & n) = réf Then
         dat = Sheets("tampon").Cells(n, 5)
         qty = Sheets("tampon").Cells(n, 6)
       End If
     Next
        Cells(Tablo(i), 18).Value = qty
        Cells(Tablo(i), 17).Value = dat
        Cells(Tablo(i), 17).NumberFormat = "mm/dd/yyyy"


    End If
 

llambry

XLDnaute Junior
Re : VBA vérifier présence valeurs sur feuille sur laquelle les données sont filtrées

merci pour la rapidité...

je viens de tester votre code en adaptant sur la feuil2, a priori cela devrait marcher, mais il reste un petit problème sur le code car il garde en mémoire dat et qty même si il ne trouve pas la référence --> donc résultat faut ...
 

Discussions similaires

Réponses
2
Affichages
111

Statistiques des forums

Discussions
312 112
Messages
2 085 417
Membres
102 885
dernier inscrit
AISSOU