Filtre élaboré sur des données alphanumériques

Bonjour à toute la communauté,

J'ai un petit soucis que j'aimerais partager en attente de vos inestimables apports.

J'ai un tableau comportant dans la colonne "C" des données alphanumériques au format "VEN-0001" qui sont incrémentées à chaque nouvelle vente (ces données correspondent à des numéros de factures).

J'essaie la macro suivante du filtre élaboré sur cette colonne mais elle ne marche pas:

' Application du filtreThisWorkbook.Sheets("VENTES").Range("TABLEAU_VENTES[#all]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _:=ThisWorkbook.Sheets("VENTES").Range("N1:O2"), CopyToRange:=ThisWorkbook.Sheets("VENTES").Range("Q1:AB1"), Unique:=False

Voici comment je procède: J'ai deux (02) textbox sur mon userform dans lesquels j'entre manuellement les critères de filtrage (intervalles de factures à filtrer). Le code ne marche pas lorsque les numéros de factures sont tapés manuellement, mais il marche parfaitement lorsque je copie des numéros des cellules vers les textbox.

Paradoxalement, lorsque je tape manuellement le texte "VEN-" dans les textbox, la macro semble fonctionner en procédant à l'extraction de toutes les données enregistrées dans la feuille, preuve que c'est le format alphanumérique des critères de filtre qui cause problème.

Je n'ai jamais été confronté à pareil situation et toute explication susceptible de m'outiller et surtout me sortir de cette galère sera la bienvenue.

Cordialement!

Bonjour,

11smart-business.xlsm (115.61 Ko)

Salut Bruno!

Merci pour ton intérêt et excuse moi surtout le retard. J'ai du retravailler mon fichier afin d'enlever pleins d'informations sensibles.

Cordialement!

bonsoir, je suppose que vous voulez tous les factures entre 2 chiffres, donc, au lieu de "*", j'utilise "<=" et ">="

Private Sub Txt_Début_Change()

Application.ScreenUpdating = False

'On Error Resume Next

'Dim Début As integer

'Début = Me.Txt_Début.Value

Me.Txt_Début = UCase(Me.Txt_Début.Value)

ThisWorkbook.Sheets("VENTES").Range("N2") = ">=" & Me.Txt_Début.Value '<-------

Application.ScreenUpdating = True

End Sub

Private Sub Txt_Début_Enter()
    'Form_Calendrier.Show
End Sub

Private Sub Txt_Fin_Change()

Application.ScreenUpdating = False

'On Error Resume Next

'Dim Fin As String
'Fin = Me.Txt_Fin.Value

Me.Txt_Fin = UCase(Me.Txt_Fin.Value)

ThisWorkbook.Sheets("VENTES").Range("O2") = "<=" & Me.Txt_Fin.Value '<-----------

Application.ScreenUpdating = True

End Sub

Incroyable j'y ai pas du tout pensé.

ca marche comme du tonnerre. Merci infiniment BSALV

Rechercher des sujets similaires à "filtre elabore donnees alphanumeriques"