OVH Cloud OVH Cloud

Pb de macro

7 réponses
Avatar
David T.
Bonsoir

Il y a une erreur dans cette procedure mais je vois pas ou, de plus je pense
qu'il y a plus simple !!
Je veux filtrer sur : commence par A4 et termine par J4

Selection.AutoFilter Field:=3,
Criteria1:=Sheets("Feuille1").Range("=A4*").Value, Operator:=xlAnd,
Criteria2:=Sheets("Feuille1").Range("=*J4").Value

merci de votre aide précieuse

David

7 réponses

Avatar
michdenis
Bonsoir David,

A ) Tu as au moins un pépin avec tes critères.

Est-ce que le contenu d'une cellule de ta colonne 3 peut être à la fois ÉGAL au criteria1 ET criteria2 ?
Avec un filtre contenant 2 critères, tu peux avoir les opérateurs >= et <= mais sûrement deux signes "=" pour les 2
critères si les 2 critères ont des valeurs différentes

B ) Attention à l'adressage :
Range("A4") est une adresse de cellule, tu ne peux pas modifier la syntaxe pour ajouter des symboles comme "="
Mais il est possible d'écrire : Range("A4").value & "*"

Voici j'ai traduit ta procédure comme ceci :

à toi d'adapter le nom de la feuille et les symboles "<=" de tes critères.

'---------------------------
Sub Filtrer()

Dim DerLig As Long, Crit1 As String, Crit2 As String

With Worksheets("Feuil1")
DerLig = .Range("J65356").End(xlUp).Row
Crit1 = .Range("A4") & "*"
Crit2 = .Range("J4") & "*"
With Range("A4:J" & DerLig)
.AutoFilter field:=3, Criteria1:= ">=" & Crit1 _
, Operator:=xlAnd, Criteria2:= "<=" & Crit2
End With
End With

End Sub
'---------------------------


Salutations!







"David T." a écrit dans le message de news:OvX%
Bonsoir

Il y a une erreur dans cette procedure mais je vois pas ou, de plus je pense
qu'il y a plus simple !!
Je veux filtrer sur : commence par A4 et termine par J4

Selection.AutoFilter Field:=3,
Criteria1:=Sheets("Feuille1").Range("¤*").Value, Operator:=xlAnd,
Criteria2:=Sheets("Feuille1").Range("=*J4").Value

merci de votre aide précieuse

David
Avatar
michdenis
J'ai oublié le "Point" devant le mot range dans la procédure sur cette ligne de code

With Range("A4:J" & DerLig)

devrait être

With .Range("A4:J" & DerLig)


Salutations!

"michdenis" a écrit dans le message de news:
Bonsoir David,

A ) Tu as au moins un pépin avec tes critères.

Est-ce que le contenu d'une cellule de ta colonne 3 peut être à la fois ÉGAL au criteria1 ET criteria2 ?
Avec un filtre contenant 2 critères, tu peux avoir les opérateurs >= et <= mais sûrement deux signes "=" pour les 2
critères si les 2 critères ont des valeurs différentes

B ) Attention à l'adressage :
Range("A4") est une adresse de cellule, tu ne peux pas modifier la syntaxe pour ajouter des symboles comme "="
Mais il est possible d'écrire : Range("A4").value & "*"

Voici j'ai traduit ta procédure comme ceci :

à toi d'adapter le nom de la feuille et les symboles "<=" de tes critères.

'---------------------------
Sub Filtrer()

Dim DerLig As Long, Crit1 As String, Crit2 As String

With Worksheets("Feuil1")
DerLig = .Range("J65356").End(xlUp).Row
Crit1 = .Range("A4") & "*"
Crit2 = .Range("J4") & "*"
With Range("A4:J" & DerLig)
.AutoFilter field:=3, Criteria1:= ">=" & Crit1 _
, Operator:=xlAnd, Criteria2:= "<=" & Crit2
End With
End With

End Sub
'---------------------------


Salutations!







"David T." a écrit dans le message de news:OvX%
Bonsoir

Il y a une erreur dans cette procedure mais je vois pas ou, de plus je pense
qu'il y a plus simple !!
Je veux filtrer sur : commence par A4 et termine par J4

Selection.AutoFilter Field:=3,
Criteria1:=Sheets("Feuille1").Range("¤*").Value, Operator:=xlAnd,
Criteria2:=Sheets("Feuille1").Range("=*J4").Value

merci de votre aide précieuse

David
Avatar
David T.
Bonjour

Merci pour cette aide

En fait, n'y connaisant rien en VB, j'utilise l'enregistreur

Mon 1er critère s'est "commence par" et le 2ème "fini par"
Ex :
Dans la colonne 3 de la feuille 2 , il y a Dupont Jean michel Paris
Dans la celulle A4 de la feuille 1, il y a Dupont Jean Michel
Dans la cellule J4 de la feuille 1, il y a Paris

En fait je penser que cela allez faire comme un CONCATENER

Je vois avec ta procédure ce que je peut faire..

Merci de ton aide

David
Avatar
ChrisV
Bonjour David,

En fait je penser que cela allez faire comme un CONCATENER


Tu peux...

Selection.AutoFilter _
Field:=3, Criteria1:="=" & Sheets("Feuil1").[A4] & _
"*" & Sheets("Feuil1").[J4]


ChrisV


"David T." a écrit dans le message de news:

Bonjour

Merci pour cette aide

En fait, n'y connaisant rien en VB, j'utilise l'enregistreur

Mon 1er critère s'est "commence par" et le 2ème "fini par"
Ex :
Dans la colonne 3 de la feuille 2 , il y a Dupont Jean michel Paris
Dans la celulle A4 de la feuille 1, il y a Dupont Jean Michel
Dans la cellule J4 de la feuille 1, il y a Paris

En fait je penser que cela allez faire comme un CONCATENER

Je vois avec ta procédure ce que je peut faire..

Merci de ton aide

David




Avatar
David T.
Bonjour ChrisV

Un grand merci cela fonctionne tres bien

Si je peux me permettre comment faire ceci :
Le pb c'est que j'ai au moins une centaine de procedure dans le meme genre à
faire.Alors ma question est :
comment faire ceci

Quand je clic sur T4 :

Sub T4_QUANDCLIC()
Sheets("Feuille2").Select
Selection.AutoFilter Field:=3, Criteria1:="=" & Sheets("Feuille1").[A4]
& _
"*" & Sheets("Feuille1").[J4]
End Sub

Quand je clic sur T5

Sub T5_QUANDCLIC()
Sheets("Feuille2").Select
Selection.AutoFilter Field:=3, Criteria1:="=" & Sheets("Feuille1").[A5]
& _
"*" & Sheets("Feuille1").[J5]
End Sub

etc...
il faut peut etre repérer ou on a cliquer, non ?

merci de ton aide
salutations
David
Avatar
ChrisV
Re,

Dans la feuille de code de l'onglet concerné...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case True
Case Target.Address = "$T$4": T4_QUANDCLIC
Case Target.Address = "$T$5": T5_QUANDCLIC
End Select
End Sub


ChrisV


"David T." a écrit dans le message de news:
#
Bonjour ChrisV

Un grand merci cela fonctionne tres bien

Si je peux me permettre comment faire ceci :
Le pb c'est que j'ai au moins une centaine de procedure dans le meme genre
à

faire.Alors ma question est :
comment faire ceci

Quand je clic sur T4 :

Sub T4_QUANDCLIC()
Sheets("Feuille2").Select
Selection.AutoFilter Field:=3, Criteria1:="=" &
Sheets("Feuille1").[A4]

& _
"*" & Sheets("Feuille1").[J4]
End Sub

Quand je clic sur T5

Sub T5_QUANDCLIC()
Sheets("Feuille2").Select
Selection.AutoFilter Field:=3, Criteria1:="=" &
Sheets("Feuille1").[A5]

& _
"*" & Sheets("Feuille1").[J5]
End Sub

etc...
il faut peut etre repérer ou on a cliquer, non ?

merci de ton aide
salutations
David




Avatar
David T.
Merci ChrisV

Cela m'évite de mettre des rectangles du menu dessin un peu partout et d'y
appliquer une macro
mais n'évite pas de faire toutes les procédures une à une.

Toutes les procédures ne peuvent t'il pas se rassemblées en une.

Merci de ton aide très précieuse

David