Souci de code VBA avec un filtre avec critère

Bonjour,

Je rencontre un souci avec le code vba pour filtrer selon un critère.
J'utilise le code suivant :

ActiveSheet.Range("$A$1:$R" & LastRowTravail).AutoFilter Field:=1, Criteria1:="6*"

Cette commande ne fonctionne pas car sur mon pc lorsque je le déroule pas à pas, je me rends compte que le critère 6* n'est pas renseigné.

Quelqu'un aurait-il une solution svp?

Merci.

bonjour,

"6*" est un critère de sélection qui s'applique à des données de type texte et ne fonctionne pas avec des nombres.

vérifie que tes cellules à sélectionner sont bien au format texte.

Même en mettant au format texte, le résultat est le identique.

image

le critère ne se met pas.

Bonjour,

tu n'aurais pas l'option de menu "filtres numériques" si les données étaient considérées comme texte. Il ne suffit pas de mettre les cellules au format texte, il faut également les convertir en texte.

Merci h2so4 pour ton aide.

J'utilise le code suivant pour passer en format texte :

Worksheets("Travail").Range("A:A").Select
Selection.NumberFormat = "@"

ActiveSheet.Range("$A$1:$R" & LastRowTravail).AutoFilter Field:=1, Criteria1:="6*"

mais le résultat est le même. Le critère 6* n'est pas présent....

rebonjour;

With Sheets("travail")
        lastrowtravail = .Cells(Rows.Count, 1).End(xlUp).Row
        With .Range("$A$2:$A" & lastrowtravail)
            .NumberFormat = "@"
            On Error Resume Next
            .Value = .Value & "" 'convertir en texte
            On Error GoTo 0
        End With
        .Range("$A$1:$R" & lastrowtravail).AutoFilter Field:=1, Criteria1:="=6*", Operator:=xlAnd
    End With

Re bonjour,

Je pense que ma version d'Excel me pose problème car le code que tu me proposes me donne le même résultat. Ca ne fonctionne pas.

re bonjour,

as-tu fait un copier/coller du code proposé à partir du forum ou l'as-tu retapé dans ton classeur ?

Bonjour,

J'ai bien fait un copier coller :(

bonjour,

y compris cette instruction

Criteria1:="=6*",

re-bonjour,

Oui j'ai bien fait un copier coller de ton code :

Sub MeF_Commandes()

Application.ScreenUpdating = True

LastRowCommandes = WorksheetFunction.CountA(Sheets("Travail").Range("A:A"))

'Fige les volets sur la ligne 2
Rows("2:2").Select
ActiveWindow.FreezePanes = True

'Mise en place des filtre sur la ligne 1
Rows("1:1").Select
' Selection.AutoFilter

With Sheets("travail")
lastrowtravail = .Cells(Rows.Count, 1).End(xlUp).Row
With .Range("$A$2:$A" & lastrowtravail)
.NumberFormat = "@"
On Error Resume Next
.Value = .Value & "" 'convertir en texte
On Error GoTo 0
End With
.Range("$A$1:$R" & lastrowtravail).AutoFilter Field:=1, Criteria1:="=6*", Operator:=xlAnd
End With

End Sub

Voici toujours le même résultat :

image
Rechercher des sujets similaires à "souci code vba filtre critere"