Filtre dynamique ne marche plus

Bonjour à tous,

J'ai crée un code permettant de filtrer une colonne d'un fichier 1 avec le nom du fichier sélectionné. Mon code marchait bien jusque là, malheureusement maintenant quand je l’exécute il applique bien un filtre sur le fichier 1 mais n'affiche aucune ligne du tableau (cf screenshot).

Voici mon entier code, si vous avez une idée pour solutionner l'erreur, je vous remercie :) :

Sub Note_de_débit_2()

Dim FileName As Variant
Dim wbSource As Workbook 'fichier factures
Dim wbInitial As Workbook 'fichier note de débit
Dim wsSource As Worksheet
Dim numero As String

FileName = Application.GetOpenFilename(Title:="Veuillez sélectionner la note de débit")
    If FileName = False Then Exit Sub
Workbooks.Open FileName

Set wbInitial = ActiveWorkbook
wbInitial.Sheets("Note de débit").Activate

numero = ActiveWorkbook.Name
If InStr(numero, ".") > 0 Then
    numero = Left(numero, InStr(numero, ".") - 1)
End If

    Set wbSource = Workbooks("Détail factures EMC JUIN 2020")
    Set wsSource = wbSource.Sheets("Détail factures EMC")

With wsSource
    On Error Resume Next
    .ShowAllData
    Err.Clear
    .Range("A3").AutoFilter Field:=1, Criteria1:="=*" & numero & "*"

End With

wbSource.Activate

End Sub

Je pense que l'erreur est sur cette partie, mais je ne vois pas où (ce code marchait bien jusqu'alors...) :

With wsSource
    On Error Resume Next
    .ShowAllData
    Err.Clear
    .Range("A3").AutoFilter Field:=1, Criteria1:="=*" & numero & "*"

End With

Voici à quoi ressemble le filtrage après exécution :

excel1

Je vous remercie pour votre aide !

Victoire

Bonjour

Dans cette ligne vous cherchez quoi ?

.Range("A3").AutoFilter Field:=1, Criteria1:="=*" & numero & "*"

Cela aurait été mieux de voir à quoi ressemble les données en colonne Facture

Peut être en supprimant le =* et remplacer par * ?

Cordialement

Bonjour Dan,

Merci pour ton retour.

Sur cette ligne je cherche à filtrer ma colonne Facture avec le nom du fichier ouvert précédemment (d'où la création de la variable "numero" pour rendre ce filtrage dynamique).

Les données dans la colonne Facture sont des numéros.

Malheureusement ça ne change rien en supprimant le =*...

Merci!

Re

Les données dans la colonne Facture sont des numéros

S'il n'y a que des numéros, vous ne devez pas utiliser les *

Essayer comme ceci -->

.Range("A3").AutoFilter Field:=1, Criteria1:=numero

Sinon il faudrait aussi vérifier quelle est la valeur de numero dans cette ligne --> numero = ActiveWorkbook.Name
Il se peut qu'excel ne considère pas le IF plus bas et que numero renvoyé par cette instruction n'est pas trouvé dans le filtre

Un autre point, pourquoi mettez vous Err.clear plus bas ?

En fait j'ai stocké ma variable "numero" en string car c'est le nom des différents fichiers que je sélectionne (ex: "35945657.xls") et je demande plus haut dans mon code de venir récupérer et stocker dans la variable numéro tous les caractères avant le "." dans le nom de mon fichier pour n'avoir que le numéro.

Je suis débutante en vba et je regarde beaucoup de forum pour adapter mon code à mes besoins, j'ai mis " Err.clear" car je l'ai vu cette partie de code écrite comme ça ^^.

Re

Si vos fichier sont nommés en numero uniquement sans lettres :
- Déclarez votre variable numero en LONG
- enlevez les * comme je vous avais dit dans mon post précédent à 13h04

Si pas ok, envoyez moi un fichier avec les numéros de facture tel qu'il sont dans votre fichier

Cordialement

Je vais essayer merci !

J'ai une erreur sur cette partie de code :

numero = ActiveWorkbook.Name
If InStr(numero, ".") > 0 Then
    numero = Left(numero, InStr(numero, ".") - 1)
End If

En effet comme j'ai déclaré numero en LONG et plus en STRING il ne doit pas comprendre...

J'ai déclaré "numero" en tant que VARIANT et ça marche ! Merci Dan pour toutes tes réponses et ton aide :)

Re

Ben oui en Variant, excel accepte tout mais c'est la dernière définition de variable à utiliser...

Je vous aurais bien proposé INTEGER mais au vu du numero, ce n'était pas possible au vu de l'exemple donné. D'où la demande au sujet du fichier afin de comprendre.

Rechercher des sujets similaires à "filtre dynamique marche"