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!
"Daniel" a écrit dans le message de
news:
Bonsoir a tous
J'ai un agenda PALM avec le programme TEXTPLUS.(
http://www.smartcell.com/id18.htm )
Ce programme donne des choix de mots et de phrase au moment ou ont écrie.
je voudrait cela a la place des dérouler de liste de VALIDATION.
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!
"Daniel" <pellet15@videotron.ca> a écrit dans le message de
news:ekZ9ApDlDHA.424@TK2MSFTNGP10.phx.gbl...
Bonsoir a tous
J'ai un agenda PALM avec le programme TEXTPLUS.(
http://www.smartcell.com/id18.htm )
Ce programme donne des choix de mots et de phrase au moment ou ont écrie.
je voudrait cela a la place des dérouler de liste de VALIDATION.
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!
"Daniel" a écrit dans le message de
news:
Bonsoir a tous
J'ai un agenda PALM avec le programme TEXTPLUS.(
http://www.smartcell.com/id18.htm )
Ce programme donne des choix de mots et de phrase au moment ou ont écrie.
je voudrait cela a la place des dérouler de liste de VALIDATION.
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!
"Daniel" a écrit dans le message de
news:
Bonsoir a tous
J'ai un agenda PALM avec le programme TEXTPLUS.(
http://www.smartcell.com/id18.htm )
Ce programme donne des choix de mots et de phrase au moment ou ont écrie.
je voudrait cela a la place des dérouler de liste de VALIDATION.
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!
"Daniel" <pellet15@videotron.ca> a écrit dans le message de
news:ekZ9ApDlDHA.424@TK2MSFTNGP10.phx.gbl...
Bonsoir a tous
J'ai un agenda PALM avec le programme TEXTPLUS.(
http://www.smartcell.com/id18.htm )
Ce programme donne des choix de mots et de phrase au moment ou ont écrie.
je voudrait cela a la place des dérouler de liste de VALIDATION.
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!
"Daniel" a écrit dans le message de
news:
Bonsoir a tous
J'ai un agenda PALM avec le programme TEXTPLUS.(
http://www.smartcell.com/id18.htm )
Ce programme donne des choix de mots et de phrase au moment ou ont écrie.
je voudrait cela a la place des dérouler de liste de VALIDATION.