Bonjour

j'ai parcouru bon nombre de messages un peu partout pour essayer de trouver ma solution mais rien à faire, je tombe sur des cas qui sont un peu différents du mien !
je précise que je suis novice; je commence à faire des macros depuis quelques semaines; j'ai commencé par des trucs un peu compliqués et j'apprends au fur et à mesure, donc il me manque évidemment parfois des....bases!


je suis en train de faire un programme qui utilise des filtres (pour ensuite compter les données résultat du filtre)

C'est un tableau de 15 colonnes, la variable de ce fichier s'appelle "compil"
le fichier (activesheet)où sont écrites les macros s'appelle "stat"

Je fais d'abord un premier filtre sur la 15ème colonne constituées de dates; je filtre des dates qui sont inférieures à la date de jour - 8
j'obtiens bien mes données, c'est ok
Puis je veux ensuite désélectionner de ce résultat des données qui se trouvent sur une troisième colonne et qui sont des N° de compte sur onze caractères numériques (exemple 00000029004)
Ces comptes se trouvent dans une table sur autre feuille excel; cette table s'appelle "table_compte_arrondi" et mon Array qui en découle s'appelle ecriturecptearrondiBONAT


Je précise que je n'ai aucun mal à filtrer mon tableau avec cette table de compte


mais ici, je voudrais DEFILTRER ces données et je n'arrive pas à écrire la bonne syntaxe sur l'élément "différent de" : "<>"


voici le début de mon code, j'ai mis la phrase qui me pose problème en rouge: elle essaie bien de filtrer quelque chose mais ne me retourne rien !!



'PROGRAMME QUI COMPTE LES ECRITURES NON LETTREES DONT LA DATE DE NEGO EST SUPERIEURE A 8 ET 30 JOURS; COLORATION DES ECRITURES FILTREES PAR POLE

Sub ecrituredateinf()

Set wb_stat = ActiveWorkbook
date_jour_texte = CStr(Format(Date, "DD/MM/YYYY"))
wb_stat.Sheets("synthese_stat_pole").Range("range_equiv").FormulaLocal = "=EQUIV(""" & date_jour_texte & """;A:A;0)"

If IsError(wb_stat.Sheets("synthese_stat_pole").Range("range_equiv").Value) Then
'la date jour n'est pas dans le fichier histo on peut le remplir
der_synthese_pole = wb_stat.Sheets("synthese_stat_pole").Cells(10000, 1).End(xlUp).Row + 1
Else
'la date est deja remplie on remplace sur la meme ligne
der_synthese_pole = wb_stat.Sheets("synthese_stat_pole").Range("range_equiv").Value
End If

'identifie le repertoire ou sont les fichiers source comme étant la variable chemin_rep
chemin_rep_compil = "\\prlfichiers-expl-srv\commun\Suivi activité BO\Back office Clients Tréso et OST\outil_controle_lettrage\STATS LETTRAGE\FICHIERS LETTRAGE COMPILES\compil_lettrage_YYYYMMDD.xlsx"
'selectionne le fichier renomme dans stat SGLB et selectionne le fichier du jour
chemin_rep_compil = Replace(chemin_rep_compil, "YYYYMMDD", Format(Date, "YYYY-MM-DD"))
'ouvre le fichier source SGLB (dans le fichier des comptes conservés)
Set wb_compil = Workbooks.Open(chemin_rep_compil)


wb_compil.Activate
wb_compil.Sheets("BONAT").Activate

Dim date_jour As Long
Dim datenego_moins_huit As Long
Dim datenego_moins_trente As Long

date_du_jour = Date
datenego_moins_huit = (date_du_jour) - 8
datenego_moins_trente = (date_du_jour) - 30


'POUR CHAQUE POLE FILTRE, COLORIE ET COMPTE LES ECRITURES NON LETTREES AVEC DATE DE NEGO SUPERIEURES A 8 ET 30 JOURS

'POLE BONAT

'FILTRE, COLORIE EN BLEU ET COMPTE AVEC DATE DE NEGO SUPERIEURES A 8

der_lig_BONAT = Cells(1048576, 1).End(xlUp).Row

wb_compil.Sheets("BONAT").Activate
Cells.Select

If Sheets("BONAT").AutoFilterMode = False Then
Sheets("BONAT").Cells.AutoFilter
End If
Cells.AutoFilter
Cells.AutoFilter

Selection.AutoFilter Field:=15, Criteria1:="<= " & datenego_moins_huit, Operator:=xlFilterValues


'cherche les comptes arrondis à enlever pour bonat
'ne filtre pas les comptes arrondis bonat dans la sélection des dates nego sup à huit

wb_stat.Activate
wb_stat.Sheets("table_compte_arrondi").Select
Dim nbre_ecriture_compte_arrondi_BONAT As String



nbre_ecriture_compte_arrondi_BONAT = Range("C1048576").End(xlUp).Row - 2

Dim ecriturecptearrondiBONAT()
ReDim ecriturecptearrondiBONAT(nbre_ecriture_compte_arrondi_BONAT - 1)

For i = 0 To nbre_ecriture_compte_arrondi_BONAT - 1
ecriturecptearrondiBONAT(i) = Cells(i + 3, 3).Text
Next


wb_compil.Activate
wb_compil.Sheets("BONAT").Activate

Selection.AutoFilter Field:=3, Criteria2:="<> & Array(ecriturecptearrondiBONAT)", Operator:=xlFilterValues


der_lig_BONAT = Cells(1048576, 1).End(xlUp).Row
Sheets("BONAT").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 33
Range("A1:O1").Interior.ColorIndex = 2
der_synthese_pole = wb_stat.Sheets("synthese_stat_pole").Range("range_equiv").Value
nombre_ecriture_inf_huit = Sheets("BONAT").Range("O1:O" & der_lig_BONAT).SpecialCells(xlCellTypeVisible).Count - 1
wb_stat.Sheets("synthese_stat_pole").Range("Y" & der_synthese_pole).Value = nombre_ecriture_inf_huit





c'est la première fois que je poste un message; j'espère avoir donné assez d'éléments pour que vous puissiez m"aider !!

Merci d'avance