Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" <-retirercecipourrepondre-hervejeanroland@wanadoo.fr> a écrit dans
le message de news:
ej6qdTA8FHA.1000@tk2msftngp13.phx.gbl...
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ORJmGr27FHA.1864@TK2MSFTNGP12.phx.gbl...
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" <-retirercecipourrepondre-hervejeanroland@wanadoo.fr> a écrit dans
le message de news:
ej6qdTA8FHA.1000@tk2msftngp13.phx.gbl...
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ORJmGr27FHA.1864@TK2MSFTNGP12.phx.gbl...
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" a écrit dans le message de news:
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" a écrit dans le message de news:Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news: ecFZLlP8FHA.1248@TK2MSFTNGP14.phx.gbl...
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eqSp4MC8FHA.3928@TK2MSFTNGP10.phx.gbl...
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" <-retirercecipourrepondre-hervejeanroland@wanadoo.fr> a écrit dans
le message de news:
ej6qdTA8FHA.1000@tk2msftngp13.phx.gbl...
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ORJmGr27FHA.1864@TK2MSFTNGP12.phx.gbl...
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" a écrit dans le message de news:
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" a écrit dans le message de news:Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour je trouve ta question très intéressante car si dans le dropdown ou
peut voir l'ensemble des critères il doit avoir moyen de les accèder. Je
cherche depuis quelque jours la solutions, j'ai fait le tour des objects
ActiveSheet, application, range, shapes .... et cette information semble
introuvable meme en inspectant les shapes de la feuille on ne peut consulter
le data u dropdown. J'ai essayé de faire un critère sur Différent de blanc et
voir les résultats via Filters mais ce ne fonctionne pas.
Je suis d'accord Michdenis que Via un Tableau que cette information est
facilement exploitable, à l'inverse moi je ne peux l'utilisé car j'ai un
problème .Net vs office 2000.
Pour l'instant mon utilisateur devra patienter quelque secondes de plus mais
il serait extrèmement intéressant de savoir si on peut exploiter cette
information déjà remplis par excel ce qui permettrait de 1 avoir une très
bonne performance et de ne pas utiliser le Tableau croisé dynamique.Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" a écrit dans le message de news:
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" a écrit dans le message de news:Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour je trouve ta question très intéressante car si dans le dropdown ou
peut voir l'ensemble des critères il doit avoir moyen de les accèder. Je
cherche depuis quelque jours la solutions, j'ai fait le tour des objects
ActiveSheet, application, range, shapes .... et cette information semble
introuvable meme en inspectant les shapes de la feuille on ne peut consulter
le data u dropdown. J'ai essayé de faire un critère sur Différent de blanc et
voir les résultats via Filters mais ce ne fonctionne pas.
Je suis d'accord Michdenis que Via un Tableau que cette information est
facilement exploitable, à l'inverse moi je ne peux l'utilisé car j'ai un
problème .Net vs office 2000.
Pour l'instant mon utilisateur devra patienter quelque secondes de plus mais
il serait extrèmement intéressant de savoir si on peut exploiter cette
information déjà remplis par excel ce qui permettrait de 1 avoir une très
bonne performance et de ne pas utiliser le Tableau croisé dynamique.
Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news: ecFZLlP8FHA.1248@TK2MSFTNGP14.phx.gbl...
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eqSp4MC8FHA.3928@TK2MSFTNGP10.phx.gbl...
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" <-retirercecipourrepondre-hervejeanroland@wanadoo.fr> a écrit dans
le message de news:
ej6qdTA8FHA.1000@tk2msftngp13.phx.gbl...
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ORJmGr27FHA.1864@TK2MSFTNGP12.phx.gbl...
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bonjour je trouve ta question très intéressante car si dans le dropdown ou
peut voir l'ensemble des critères il doit avoir moyen de les accèder. Je
cherche depuis quelque jours la solutions, j'ai fait le tour des objects
ActiveSheet, application, range, shapes .... et cette information semble
introuvable meme en inspectant les shapes de la feuille on ne peut consulter
le data u dropdown. J'ai essayé de faire un critère sur Différent de blanc et
voir les résultats via Filters mais ce ne fonctionne pas.
Je suis d'accord Michdenis que Via un Tableau que cette information est
facilement exploitable, à l'inverse moi je ne peux l'utilisé car j'ai un
problème .Net vs office 2000.
Pour l'instant mon utilisateur devra patienter quelque secondes de plus mais
il serait extrèmement intéressant de savoir si on peut exploiter cette
information déjà remplis par excel ce qui permettrait de 1 avoir une très
bonne performance et de ne pas utiliser le Tableau croisé dynamique.Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" a écrit dans le message de news:
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" a écrit dans le message de news:Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bon finalement je dois me résoudre, on ne peut visualiser les valeurs.
Donc les Dropdowns(Filtre) de excel ce retrouve sous l'objet Shapes de
l'Activesheet. Pour voir les valeurs d'un dropdown il faut aller sous
controlformat. L'ensemble des propriétées ne sont pas accessible probablement
à cause que le créateur est xlCREATEURCode ... donc on recois "Impossible de
lire la propriété ..."
activesheet.shapes(1).controlformat.listcount
Il serait intéressant d'avoir d'un MVP la raison, réponse du pourquoi excel
ne publie pas les valeur.
Bye alainclBonjour je trouve ta question très intéressante car si dans le dropdown ou
peut voir l'ensemble des critères il doit avoir moyen de les accèder. Je
cherche depuis quelque jours la solutions, j'ai fait le tour des objects
ActiveSheet, application, range, shapes .... et cette information semble
introuvable meme en inspectant les shapes de la feuille on ne peut consulter
le data u dropdown. J'ai essayé de faire un critère sur Différent de blanc et
voir les résultats via Filters mais ce ne fonctionne pas.
Je suis d'accord Michdenis que Via un Tableau que cette information est
facilement exploitable, à l'inverse moi je ne peux l'utilisé car j'ai un
problème .Net vs office 2000.
Pour l'instant mon utilisateur devra patienter quelque secondes de plus mais
il serait extrèmement intéressant de savoir si on peut exploiter cette
information déjà remplis par excel ce qui permettrait de 1 avoir une très
bonne performance et de ne pas utiliser le Tableau croisé dynamique.Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" a écrit dans le message de news:
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" a écrit dans le message de news:Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bon finalement je dois me résoudre, on ne peut visualiser les valeurs.
Donc les Dropdowns(Filtre) de excel ce retrouve sous l'objet Shapes de
l'Activesheet. Pour voir les valeurs d'un dropdown il faut aller sous
controlformat. L'ensemble des propriétées ne sont pas accessible probablement
à cause que le créateur est xlCREATEURCode ... donc on recois "Impossible de
lire la propriété ..."
activesheet.shapes(1).controlformat.listcount
Il serait intéressant d'avoir d'un MVP la raison, réponse du pourquoi excel
ne publie pas les valeur.
Bye alaincl
Bonjour je trouve ta question très intéressante car si dans le dropdown ou
peut voir l'ensemble des critères il doit avoir moyen de les accèder. Je
cherche depuis quelque jours la solutions, j'ai fait le tour des objects
ActiveSheet, application, range, shapes .... et cette information semble
introuvable meme en inspectant les shapes de la feuille on ne peut consulter
le data u dropdown. J'ai essayé de faire un critère sur Différent de blanc et
voir les résultats via Filters mais ce ne fonctionne pas.
Je suis d'accord Michdenis que Via un Tableau que cette information est
facilement exploitable, à l'inverse moi je ne peux l'utilisé car j'ai un
problème .Net vs office 2000.
Pour l'instant mon utilisateur devra patienter quelque secondes de plus mais
il serait extrèmement intéressant de savoir si on peut exploiter cette
information déjà remplis par excel ce qui permettrait de 1 avoir une très
bonne performance et de ne pas utiliser le Tableau croisé dynamique.
Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news: ecFZLlP8FHA.1248@TK2MSFTNGP14.phx.gbl...
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
eqSp4MC8FHA.3928@TK2MSFTNGP10.phx.gbl...
Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" <-retirercecipourrepondre-hervejeanroland@wanadoo.fr> a écrit dans
le message de news:
ej6qdTA8FHA.1000@tk2msftngp13.phx.gbl...
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
ORJmGr27FHA.1864@TK2MSFTNGP12.phx.gbl...
Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e5B7Saw7FHA.3416@TK2MSFTNGP15.phx.gbl...
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" <hervejeanroland@wanadoo.fr> a écrit dans le message de news:
uHeHx%23u7FHA.1020@TK2MSFTNGP15.phx.gbl...
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci
Bon finalement je dois me résoudre, on ne peut visualiser les valeurs.
Donc les Dropdowns(Filtre) de excel ce retrouve sous l'objet Shapes de
l'Activesheet. Pour voir les valeurs d'un dropdown il faut aller sous
controlformat. L'ensemble des propriétées ne sont pas accessible probablement
à cause que le créateur est xlCREATEURCode ... donc on recois "Impossible de
lire la propriété ..."
activesheet.shapes(1).controlformat.listcount
Il serait intéressant d'avoir d'un MVP la raison, réponse du pourquoi excel
ne publie pas les valeur.
Bye alainclBonjour je trouve ta question très intéressante car si dans le dropdown ou
peut voir l'ensemble des critères il doit avoir moyen de les accèder. Je
cherche depuis quelque jours la solutions, j'ai fait le tour des objects
ActiveSheet, application, range, shapes .... et cette information semble
introuvable meme en inspectant les shapes de la feuille on ne peut consulter
le data u dropdown. J'ai essayé de faire un critère sur Différent de blanc et
voir les résultats via Filters mais ce ne fonctionne pas.
Je suis d'accord Michdenis que Via un Tableau que cette information est
facilement exploitable, à l'inverse moi je ne peux l'utilisé car j'ai un
problème .Net vs office 2000.
Pour l'instant mon utilisateur devra patienter quelque secondes de plus mais
il serait extrèmement intéressant de savoir si on peut exploiter cette
information déjà remplis par excel ce qui permettrait de 1 avoir une très
bonne performance et de ne pas utiliser le Tableau croisé dynamique.Bonjour Hervé,
Je ne sais pas où est vraiment ta difficulté, suite à un filtre automatique, tu peux déplaces le résultat vers une autre feuille. Tu
peux même appeler un filtre automatique à partir d'une autre feuille et extraire directement dans cette feuille les données que tu
désires en fonction du ou des critères retenus dans une zone de critère.
Je ne vois pas pourquoi tu t'entêtes à vouloir exécuter sur une même plage de cellules toute une série de filtres, tris en même
temps.
Tu peux aussi si tu le désires, utiliser un formulaire et selon une recherche que tu lances sur une colonne donnée, faire apparaître
dans ce formulaire tout l'enregistrement (la ligne de données), chaque champ dans un textbox séparé et faire les ajouts ou
modifications directement à partir du formulaire.
Salutations!
"hervé" a écrit dans le message de news:
bonjour
j'ai des fiches à remplir en fonction des qte commandées par les clients.
seulement, afin d'éviter à parcourir tout le fichier client pour chaque jour
de commande, je voudrais extraire la liste de ceux qui ont commandé pour un
jour donné et remplir mes fiches en fonction de cette liste
donc, j'applique un filtre auto sur la colonne des qtés, et je voudrais
récupérer les différentes options possibles de tri pour la colonne des noms
de clients.
merci encore pour ta patience
"michdenis" a écrit dans le message de news:Bonjour Hervé,
Que veux-tu obtenir à la fin? Pour ce qui est des regroupements, un
tableau croisé dynamique te donnerait ce que tu attends avec la
possibilité d'effectuer des filtres sur chacun des items dans ton tableau.
Si tu veux extraire tes données pour chaque item et créer
autant de plages de données séparées qu'il y a d'items différents dans ta
liste, c'est une autre chose!
Salutations!
"herve" a écrit dans
le message de news:
bonjour michel
merci tout d'abord pour ta patience. c'est aussi valable pour toutes
celles
et ceux qui prennent la peine de répondre pour nous aider à nous
dépatouiller.
ta procédure fonctionne au poil, seulement je me suis mal exprimé.
je ne cherche pas à récupérer le critère sur lequel a été effectué le tri,
mais l'ensemble des critères possibles pour effectuer un tri.
je m'explique :
j'ai en col A une liste de noms dont certains se répètent.
en col B des qtés.
j'effectue un filtre automatique sur les qtés non vides en B
puis je voudrais récupérer les différents noms disponibles alors en col A
(un peu comme effecuter un filtre élaboré sans doublon
j'avais pensé à ceci d'abord :
1 appliquer un filtre élaboré avec extraction sans doublon pour récuperer
la
liste des noms dispo
2 effectuer un filtre auto sur la col B (non vide)
3 tester par une boucle tous les noms et récupérer ceux dont le total qte
est <>0
ouf c'est un peu lourd, surtout si on a cinquante millions de noms !
merci à vous
rv
"michdenis" a écrit dans le message de news:Même procédure... mais inclus tous les opérateurs qu'on peut retrouver
dans un filtre auto.
'-----------------------------------
Sub RetrouverCriteres()
Dim X As Excel.XlAutoFilterOperator
X = xlBottom10Items
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
Select Case .Operator
Case 1
P = """Et"""
Case 2
P = """Ou"""
Case 3
P = """10 Premiers items"""
Case 4
P = """10 Derniers items"""
Case 5
P = """10% premiers items"""
Case 6
P = """10% derniers items"""
End Select
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'-----------------------------------
Salutations!
"michdenis" a écrit dans le message de news:
Bonjour Hervé,
Essaie ceci en adaptant le nom de la feuille dans la procédure
'--------------------------------------
Sub RetrouverCriteres()
Dim F As AutoFilter, Col As String
Dim i As Integer, P As Variant
Dim N1 As Variant, N2 As Variant
Dim Message As String
On Error Resume Next
Set F = Worksheets("Feuil1").AutoFilter
If F Is Nothing Then Exit Sub
With F.Filters
For i = 1 To .Count
With .Item(i)
If .On = True Then
Col = F.Range.Columns(i).Address
N1 = .Criteria1
N2 = .Criteria2
If Err <> 0 Then
Err = 0
P = ""
Else
If .Operator = 1 Then
P = """Et"""
ElseIf .Operator = 0 Then
P = """Ou"""
End If
End If
If N2 = "" Then
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & vbCrLf
Else
Message = Message & "Plage : " & Col & " " & _
"critère1 : " & N1 & " " & P & _
" critère2: " & N2 & vbCrLf
End If
End If
End With
N1 = "": N2 = "": P = ""
Next
End With
If Message = "" Then
MsgBox "Aucun critère appliqué."
Else
MsgBox Message
End If
Set F = Nothing
End Sub
'--------------------------------------
Salutations!
"hervé" a écrit dans le message de news:
uHeHx%
bonsoir à tous
j'ai besoin de récupérer la liste de critères générée par un filtre
automatique.
comment m'y prendre ?
par avance merci