OVH Cloud OVH Cloud

il y a t'il une macro pour donner des choix de mots

4 réponses
Avatar
Daniel
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.

4 réponses

Avatar
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!


"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.
Avatar
Denis Michon
Message annulé , erreur d'aiguillage !


Salutations!


"Denis Michon" a écrit dans le message de news:dUGjb.142$
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.
Avatar
Daniel
Je ne parvient pas a faire fonctionner cela. pourrait tu me faire parvenir
un fichier en exemple
Gros MERCI

"Denis Michon" a écrit dans le message de
news:dUGjb.142$
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.





Avatar
Denis Michon
Bonjour Daniel,

Le code sur le filtre était destiné à Ma Dalton. J'ai commis une erreur d'aiguillage. Désolé.
Évidemment, cela ne peut répondre à ta question de ce fil.

Concernant le fichier exemple, je ne sais pas de quoi tu parles, je n'ai pas formulé de réponse à ta question.


Salutations!



"Daniel" a écrit dans le message de news:64Xjb.56478$
Je ne parvient pas a faire fonctionner cela. pourrait tu me faire parvenir
un fichier en exemple
Gros MERCI

"Denis Michon" a écrit dans le message de
news:dUGjb.142$
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.