quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'"
Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en cellule B1
Sub ListeCritère() Set w = Worksheets("Feuil1") With w.AutoFilter currentFiltRange = .Range.Address With .Filters For f = 1 To .Count With .Item(f) If .On Then Range("B1") = Range("B1") & .Criteria1 & " " If .Operator Then If .Operator = 1 Then Oper = "et" Else Oper = "ou" End If Range("B1") = Range("B1") & .Oper & " " Range("B1") = Range("B1") & .Criteria2 End If End If End With Next End With End With End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant: «ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en
cellule B1
Sub ListeCritère()
Set w = Worksheets("Feuil1")
With w.AutoFilter
currentFiltRange = .Range.Address
With .Filters
For f = 1 To .Count
With .Item(f)
If .On Then
Range("B1") = Range("B1") & .Criteria1 & " "
If .Operator Then
If .Operator = 1 Then
Oper = "et"
Else
Oper = "ou"
End If
Range("B1") = Range("B1") & .Oper & " "
Range("B1") = Range("B1") & .Criteria2
End If
End If
End With
Next
End With
End With
End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'"
Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
voici un exemple avec un filtre sur la colonne A et le résultat en cellule B1
Sub ListeCritère() Set w = Worksheets("Feuil1") With w.AutoFilter currentFiltRange = .Range.Address With .Filters For f = 1 To .Count With .Item(f) If .On Then Range("B1") = Range("B1") & .Criteria1 & " " If .Operator Then If .Operator = 1 Then Oper = "et" Else Oper = "ou" End If Range("B1") = Range("B1") & .Oper & " " Range("B1") = Range("B1") & .Criteria2 End If End If End With Next End With End With End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant: «ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
Denis Michon
Bonjour Daniel,
Un bout de code récupéré de l'aide et un peu transformé.
Tu dois adapter le nom de la feuille où se produit le filtre.
Tu récupères dans une boîte de message, les critères utilisés pour ton filtre sur la plage de données.
Ce n'est qu'un exemple pour te donner des idées !
;-)
'----------------------------------- Sub ChangeFilters()
Dim w As Worksheet, A As Integer, B As Integer Dim filterArray(), X As Integer, Message As String Dim currentFiltRange As String
Set w = Worksheets("Feuil1") ' à déterminer
If w.FilterMode = False Then Exit Sub With w.AutoFilter currentFiltRange = .Parent.Name & "!" & .Range.Address(0, 0) With .Filters ReDim filterArray(1 To .Count, 1 To 3) For f = 1 To .Count With .Item(f) If .On Then filterArray(f, 1) = .Criteria1 If .Operator Then If .Operator = xlOr Then filterArray(f, 2) = "OU" End If If .Operator = xlAnd Then filterArray(f, 2) = "ET" End If filterArray(f, 3) = .Criteria2 End If End If End With Next End With
End With
For A = LBound(filterArray) To UBound(filterArray, 1) For B = LBound(filterArray) To UBound(filterArray, 2) If filterArray(A, B) = "OU" Then Message = Message & "opérateur : OU " & vbCrLf ElseIf filterArray(A, B) = "ET" Then Message = Message & "opérateur : Et " & vbCrLf ElseIf filterArray(A, B) <> "" Then X = X + 1 Message = Message & "Colonne : " & A & _ " criteria" & X & ":" & filterArray(A, B) & " " & vbCrLf End If Next Next Message = "La plage filtrée est : " & currentFiltRange _ & vbCrLf & vbCrLf & Left(Message, Len(Message) - 1) MsgBox Message
End Sub '-------
Salutations!
"Ma Dalton" a écrit dans le message de news: Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant: «ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
Bonjour Daniel,
Un bout de code récupéré de l'aide et un peu transformé.
Tu dois adapter le nom de la feuille où se produit le filtre.
Tu récupères dans une boîte de message, les critères utilisés pour ton filtre sur la plage de données.
Ce n'est qu'un exemple pour te donner des idées !
;-)
'-----------------------------------
Sub ChangeFilters()
Dim w As Worksheet, A As Integer, B As Integer
Dim filterArray(), X As Integer, Message As String
Dim currentFiltRange As String
Set w = Worksheets("Feuil1") ' à déterminer
If w.FilterMode = False Then Exit Sub
With w.AutoFilter
currentFiltRange = .Parent.Name & "!" & .Range.Address(0, 0)
With .Filters
ReDim filterArray(1 To .Count, 1 To 3)
For f = 1 To .Count
With .Item(f)
If .On Then
filterArray(f, 1) = .Criteria1
If .Operator Then
If .Operator = xlOr Then
filterArray(f, 2) = "OU"
End If
If .Operator = xlAnd Then
filterArray(f, 2) = "ET"
End If
filterArray(f, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
For A = LBound(filterArray) To UBound(filterArray, 1)
For B = LBound(filterArray) To UBound(filterArray, 2)
If filterArray(A, B) = "OU" Then
Message = Message & "opérateur : OU " & vbCrLf
ElseIf filterArray(A, B) = "ET" Then
Message = Message & "opérateur : Et " & vbCrLf
ElseIf filterArray(A, B) <> "" Then
X = X + 1
Message = Message & "Colonne : " & A & _
" criteria" & X & ":" & filterArray(A, B) & " " & vbCrLf
End If
Next
Next
Message = "La plage filtrée est : " & currentFiltRange _
& vbCrLf & vbCrLf & Left(Message, Len(Message) - 1)
MsgBox Message
End Sub
'-------
Salutations!
"Ma Dalton" <Rantanplan@farwest.net> a écrit dans le message de news:e2wrVUDlDHA.2432@TK2MSFTNGP10.phx.gbl...
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'"
Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
Un bout de code récupéré de l'aide et un peu transformé.
Tu dois adapter le nom de la feuille où se produit le filtre.
Tu récupères dans une boîte de message, les critères utilisés pour ton filtre sur la plage de données.
Ce n'est qu'un exemple pour te donner des idées !
;-)
'----------------------------------- Sub ChangeFilters()
Dim w As Worksheet, A As Integer, B As Integer Dim filterArray(), X As Integer, Message As String Dim currentFiltRange As String
Set w = Worksheets("Feuil1") ' à déterminer
If w.FilterMode = False Then Exit Sub With w.AutoFilter currentFiltRange = .Parent.Name & "!" & .Range.Address(0, 0) With .Filters ReDim filterArray(1 To .Count, 1 To 3) For f = 1 To .Count With .Item(f) If .On Then filterArray(f, 1) = .Criteria1 If .Operator Then If .Operator = xlOr Then filterArray(f, 2) = "OU" End If If .Operator = xlAnd Then filterArray(f, 2) = "ET" End If filterArray(f, 3) = .Criteria2 End If End If End With Next End With
End With
For A = LBound(filterArray) To UBound(filterArray, 1) For B = LBound(filterArray) To UBound(filterArray, 2) If filterArray(A, B) = "OU" Then Message = Message & "opérateur : OU " & vbCrLf ElseIf filterArray(A, B) = "ET" Then Message = Message & "opérateur : Et " & vbCrLf ElseIf filterArray(A, B) <> "" Then X = X + 1 Message = Message & "Colonne : " & A & _ " criteria" & X & ":" & filterArray(A, B) & " " & vbCrLf End If Next Next Message = "La plage filtrée est : " & currentFiltRange _ & vbCrLf & vbCrLf & Left(Message, Len(Message) - 1) MsgBox Message
End Sub '-------
Salutations!
"Ma Dalton" a écrit dans le message de news: Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant: «ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
Ma Dalton
Merci pour cet exemple. Au premier coup d'oeil, je suis pas certain de tout suivre correctement mais je vais tester à tête reposée. Cela dit, du code dans Excell n'est vraiment pas mon domaine, ça a même l'air fou mais le code je le met où? et à partir de quel évènement il s'exécute?
"isabelle" a écrit dans le message news:
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en cellule B1
Sub ListeCritère() Set w = Worksheets("Feuil1") With w.AutoFilter currentFiltRange = .Range.Address With .Filters For f = 1 To .Count With .Item(f) If .On Then Range("B1") = Range("B1") & .Criteria1 & " " If .Operator Then If .Operator = 1 Then Oper = "et" Else Oper = "ou" End If Range("B1") = Range("B1") & .Oper & " " Range("B1") = Range("B1") & .Criteria2 End If End If End With Next End With End With End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
Merci pour cet exemple. Au premier coup d'oeil, je suis pas certain de tout
suivre correctement mais je vais tester à tête reposée. Cela dit, du code
dans Excell n'est vraiment pas mon domaine, ça a même l'air fou mais le code
je le met où? et à partir de quel évènement il s'exécute?
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message news:
3F8F3896.5FE056A@videotron.ca...
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en
cellule B1
Sub ListeCritère()
Set w = Worksheets("Feuil1")
With w.AutoFilter
currentFiltRange = .Range.Address
With .Filters
For f = 1 To .Count
With .Item(f)
If .On Then
Range("B1") = Range("B1") & .Criteria1 & " "
If .Operator Then
If .Operator = 1 Then
Oper = "et"
Else
Oper = "ou"
End If
Range("B1") = Range("B1") & .Oper & " "
Range("B1") = Range("B1") & .Criteria2
End If
End If
End With
Next
End With
End With
End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une
ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en
arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'"
Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme
de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte
suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
Merci pour cet exemple. Au premier coup d'oeil, je suis pas certain de tout suivre correctement mais je vais tester à tête reposée. Cela dit, du code dans Excell n'est vraiment pas mon domaine, ça a même l'air fou mais le code je le met où? et à partir de quel évènement il s'exécute?
"isabelle" a écrit dans le message news:
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en cellule B1
Sub ListeCritère() Set w = Worksheets("Feuil1") With w.AutoFilter currentFiltRange = .Range.Address With .Filters For f = 1 To .Count With .Item(f) If .On Then Range("B1") = Range("B1") & .Criteria1 & " " If .Operator Then If .Operator = 1 Then Oper = "et" Else Oper = "ou" End If Range("B1") = Range("B1") & .Oper & " " Range("B1") = Range("B1") & .Criteria2 End If End If End With Next End With End With End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
Ma Dalton
Pour les idées, ça m'en donne vraiment !! ;-) merci
mais je ne suis pas Daniel ...
"Denis Michon" a écrit dans le message news: VUGjb.143$
Bonjour Daniel,
Un bout de code récupéré de l'aide et un peu transformé.
Tu dois adapter le nom de la feuille où se produit le filtre.
Tu récupères dans une boîte de message, les critères utilisés pour ton filtre sur la plage de données.
Ce n'est qu'un exemple pour te donner des idées !
;-)
'----------------------------------- Sub ChangeFilters()
Dim w As Worksheet, A As Integer, B As Integer Dim filterArray(), X As Integer, Message As String Dim currentFiltRange As String
Set w = Worksheets("Feuil1") ' à déterminer
If w.FilterMode = False Then Exit Sub With w.AutoFilter currentFiltRange = .Parent.Name & "!" & .Range.Address(0, 0) With .Filters ReDim filterArray(1 To .Count, 1 To 3) For f = 1 To .Count With .Item(f) If .On Then filterArray(f, 1) = .Criteria1 If .Operator Then If .Operator = xlOr Then filterArray(f, 2) = "OU" End If If .Operator = xlAnd Then filterArray(f, 2) = "ET" End If filterArray(f, 3) = .Criteria2 End If End If End With Next End With
End With
For A = LBound(filterArray) To UBound(filterArray, 1) For B = LBound(filterArray) To UBound(filterArray, 2) If filterArray(A, B) = "OU" Then Message = Message & "opérateur : OU " & vbCrLf ElseIf filterArray(A, B) = "ET" Then Message = Message & "opérateur : Et " & vbCrLf ElseIf filterArray(A, B) <> "" Then X = X + 1 Message = Message & "Colonne : " & A & _ " criteria" & X & ":" & filterArray(A, B) & " " & vbCrLf End If Next Next Message = "La plage filtrée est : " & currentFiltRange _ & vbCrLf & vbCrLf & Left(Message, Len(Message) - 1) MsgBox Message
End Sub '-------
Salutations!
"Ma Dalton" a écrit dans le message de news:
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
Pour les idées, ça m'en donne vraiment !! ;-)
merci
mais je ne suis pas Daniel ...
"Denis Michon" <denis.michon@cgocable.ca> a écrit dans le message news:
VUGjb.143$V11.91@charlie.risq.qc.ca...
Bonjour Daniel,
Un bout de code récupéré de l'aide et un peu transformé.
Tu dois adapter le nom de la feuille où se produit le filtre.
Tu récupères dans une boîte de message, les critères utilisés pour ton
filtre sur la plage de données.
Ce n'est qu'un exemple pour te donner des idées !
;-)
'-----------------------------------
Sub ChangeFilters()
Dim w As Worksheet, A As Integer, B As Integer
Dim filterArray(), X As Integer, Message As String
Dim currentFiltRange As String
Set w = Worksheets("Feuil1") ' à déterminer
If w.FilterMode = False Then Exit Sub
With w.AutoFilter
currentFiltRange = .Parent.Name & "!" & .Range.Address(0, 0)
With .Filters
ReDim filterArray(1 To .Count, 1 To 3)
For f = 1 To .Count
With .Item(f)
If .On Then
filterArray(f, 1) = .Criteria1
If .Operator Then
If .Operator = xlOr Then
filterArray(f, 2) = "OU"
End If
If .Operator = xlAnd Then
filterArray(f, 2) = "ET"
End If
filterArray(f, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
For A = LBound(filterArray) To UBound(filterArray, 1)
For B = LBound(filterArray) To UBound(filterArray, 2)
If filterArray(A, B) = "OU" Then
Message = Message & "opérateur : OU " & vbCrLf
ElseIf filterArray(A, B) = "ET" Then
Message = Message & "opérateur : Et " & vbCrLf
ElseIf filterArray(A, B) <> "" Then
X = X + 1
Message = Message & "Colonne : " & A & _
" criteria" & X & ":" & filterArray(A, B) & " " & vbCrLf
End If
Next
Next
Message = "La plage filtrée est : " & currentFiltRange _
& vbCrLf & vbCrLf & Left(Message, Len(Message) - 1)
MsgBox Message
End Sub
'-------
Salutations!
"Ma Dalton" <Rantanplan@farwest.net> a écrit dans le message de
news:e2wrVUDlDHA.2432@TK2MSFTNGP10.phx.gbl...
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une
ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en
arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'"
Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme
de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte
suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
Pour les idées, ça m'en donne vraiment !! ;-) merci
mais je ne suis pas Daniel ...
"Denis Michon" a écrit dans le message news: VUGjb.143$
Bonjour Daniel,
Un bout de code récupéré de l'aide et un peu transformé.
Tu dois adapter le nom de la feuille où se produit le filtre.
Tu récupères dans une boîte de message, les critères utilisés pour ton filtre sur la plage de données.
Ce n'est qu'un exemple pour te donner des idées !
;-)
'----------------------------------- Sub ChangeFilters()
Dim w As Worksheet, A As Integer, B As Integer Dim filterArray(), X As Integer, Message As String Dim currentFiltRange As String
Set w = Worksheets("Feuil1") ' à déterminer
If w.FilterMode = False Then Exit Sub With w.AutoFilter currentFiltRange = .Parent.Name & "!" & .Range.Address(0, 0) With .Filters ReDim filterArray(1 To .Count, 1 To 3) For f = 1 To .Count With .Item(f) If .On Then filterArray(f, 1) = .Criteria1 If .Operator Then If .Operator = xlOr Then filterArray(f, 2) = "OU" End If If .Operator = xlAnd Then filterArray(f, 2) = "ET" End If filterArray(f, 3) = .Criteria2 End If End If End With Next End With
End With
For A = LBound(filterArray) To UBound(filterArray, 1) For B = LBound(filterArray) To UBound(filterArray, 2) If filterArray(A, B) = "OU" Then Message = Message & "opérateur : OU " & vbCrLf ElseIf filterArray(A, B) = "ET" Then Message = Message & "opérateur : Et " & vbCrLf ElseIf filterArray(A, B) <> "" Then X = X + 1 Message = Message & "Colonne : " & A & _ " criteria" & X & ":" & filterArray(A, B) & " " & vbCrLf End If Next Next Message = "La plage filtrée est : " & currentFiltRange _ & vbCrLf & vbCrLf & Left(Message, Len(Message) - 1) MsgBox Message
End Sub '-------
Salutations!
"Ma Dalton" a écrit dans le message de news:
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
WoW, j'ai pris du temps pour mettre en place ce code. je l'ai même agrémenté d'un peu de broderie et il fait exactement ce à quoi je m'attendais. Pour la question à savoir sur quel évènement il doit s'exécuter, j'ai aussi trouvé par moi même, par essai-erreur
merci encore
"isabelle" a écrit dans le message news:
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en cellule B1
Sub ListeCritère() Set w = Worksheets("Feuil1") With w.AutoFilter currentFiltRange = .Range.Address With .Filters For f = 1 To .Count With .Item(f) If .On Then Range("B1") = Range("B1") & .Criteria1 & " " If .Operator Then If .Operator = 1 Then Oper = "et" Else Oper = "ou" End If Range("B1") = Range("B1") & .Oper & " " Range("B1") = Range("B1") & .Criteria2 End If End If End With Next End With End With End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
merci
WoW,
j'ai pris du temps pour mettre en place ce code. je l'ai même agrémenté d'un
peu de broderie et il fait exactement ce à quoi je m'attendais. Pour la
question à savoir sur quel évènement il doit s'exécuter, j'ai aussi trouvé
par moi même, par essai-erreur
merci encore
"isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message news:
3F8F3896.5FE056A@videotron.ca...
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en
cellule B1
Sub ListeCritère()
Set w = Worksheets("Feuil1")
With w.AutoFilter
currentFiltRange = .Range.Address
With .Filters
For f = 1 To .Count
With .Item(f)
If .On Then
Range("B1") = Range("B1") & .Criteria1 & " "
If .Operator Then
If .Operator = 1 Then
Oper = "et"
Else
Oper = "ou"
End If
Range("B1") = Range("B1") & .Oper & " "
Range("B1") = Range("B1") & .Criteria2
End If
End If
End With
Next
End With
End With
End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une
ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en
arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'"
Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme
de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte
suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre
WoW, j'ai pris du temps pour mettre en place ce code. je l'ai même agrémenté d'un peu de broderie et il fait exactement ce à quoi je m'attendais. Pour la question à savoir sur quel évènement il doit s'exécuter, j'ai aussi trouvé par moi même, par essai-erreur
merci encore
"isabelle" a écrit dans le message news:
bonjour Ma Dalton,
voici un exemple avec un filtre sur la colonne A et le résultat en cellule B1
Sub ListeCritère() Set w = Worksheets("Feuil1") With w.AutoFilter currentFiltRange = .Range.Address With .Filters For f = 1 To .Count With .Item(f) If .On Then Range("B1") = Range("B1") & .Criteria1 & " " If .Operator Then If .Operator = 1 Then Oper = "et" Else Oper = "ou" End If Range("B1") = Range("B1") & .Oper & " " Range("B1") = Range("B1") & .Criteria2 End If End If End With Next End With End With End Sub
isabelle
Bonjour,
quand on sélectionne les constituantes d'un filtre automatique (dans une ou
plusieurs colonnes), il doit bien y avoir une sorte de code caché en arrière
plan. En comparaison Access permettrait :
Me.Filter = "ville='xyx' and arrondissement = 'abcd'" Me.FilterOn = True
Ma question est: peut-on récupérer ce code afin de l'afficher sous forme de
texte dans une cellule précise.
Ainsi j'obtiendrais par exemple dans la cellule Feuil2!C2, le texte suivant:
«ville="xyx" et arrondissement = "abcd"» ou quelques chose de ce genre