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
Daniel
Bonjour. Tu utilises un filtre personnalisé. Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes de manières de filtrer. Cordialement. Daniel "Jean-Paul V" a écrit dans le message de news:
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Y-a-t-il une instruction si j'ai plus de 2 possibilités par exemple ou MC ; ou MD ou ME et sans passer par un champ de critère nommé sur une feuille .
Jean-Paul V
Bonjour.
Tu utilises un filtre personnalisé.
Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes
de manières de filtrer.
Cordialement.
Daniel
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news: 2F776769-A394-44D9-9B96-8DD980D3F35F@microsoft.com...
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Bonjour. Tu utilises un filtre personnalisé. Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes de manières de filtrer. Cordialement. Daniel "Jean-Paul V" a écrit dans le message de news:
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Je vois que l'on passe par un champ nommé Critéria , peut-on échaper à un champ de critère défini sur une feuille , ne peut-on pas mettre entièrement dans la macros la définition des critères mon exemple est sur la premiére zone (1 ère colonne ) avec comme possibilités MA; MB; MC; MD
@+
Bonjour. Tu utilises un filtre personnalisé. Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes de manières de filtrer. Cordialement. Daniel "Jean-Paul V" a écrit dans le message de news:
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Je vois que l'on passe par un champ nommé Critéria , peut-on échaper à un
champ de critère défini sur une feuille , ne peut-on pas mettre entièrement
dans la macros la définition des critères mon exemple est sur la premiére
zone (1 ère colonne ) avec comme possibilités MA; MB; MC; MD
@+
Bonjour.
Tu utilises un filtre personnalisé.
Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes
de manières de filtrer.
Cordialement.
Daniel
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news: 2F776769-A394-44D9-9B96-8DD980D3F35F@microsoft.com...
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Je vois que l'on passe par un champ nommé Critéria , peut-on échaper à un champ de critère défini sur une feuille , ne peut-on pas mettre entièrement dans la macros la définition des critères mon exemple est sur la premiére zone (1 ère colonne ) avec comme possibilités MA; MB; MC; MD
@+
Bonjour. Tu utilises un filtre personnalisé. Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes de manières de filtrer. Cordialement. Daniel "Jean-Paul V" a écrit dans le message de news:
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Y-a-t-il une instruction si j'ai plus de 2 possibilités par exemple ou MC ; ou MD ou ME et sans passer par un champ de critère nommé sur une feuille .
Jean-Paul V
anonymousA
Bonjour,
Je ne vois ce qui te gêne tant que ca d'utiliser une plage de cellules. Ca m'étonnerait que toutes tes cellules de ta feuille soient remplies, et quand bien même elles le seraient, il est possible de prendre une plage sur une autre feuille. Dans l'exemple qui suit, on fait un filtre élaboré à partir des données de la feuille 1 du fichier toto4.xls ( au passage , la syntaxe ici présente impose qu'il y ait au moins une fois dans la vie du classeur un filtre automatique en feuille 1 à cause de Feuil1!_Filterdatabase ) en prenant comme critère une plage de cellules du même fichier sur la feuille 3 et on envoie les valeurs résultantes sur la feuille 2 à la cellule A1.LA seule contrainte reste de déclarer ce que l'on met comme critère ( ici dans la plage IU1:IV2).
Et en prime c'est écrit à la façon AV. Pour une fois que ces crochets nous permettent d'y voir un peu plus clair.
Je vois que l'on passe par un champ nommé Critéria , peut-on échaper à un champ de critère défini sur une feuille , ne peut-on pas mettre entièrement dans la macros la définition des critères mon exemple est sur la premiére zone (1 ère colonne ) avec comme possibilités MA; MB; MC; MD
@+
Bonjour. Tu utilises un filtre personnalisé. Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes de manières de filtrer. Cordialement. Daniel "Jean-Paul V" a écrit dans le message de news:
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Y-a-t-il une instruction si j'ai plus de 2 possibilités par exemple ou MC ; ou MD ou ME et sans passer par un champ de critère nommé sur une feuille .
Jean-Paul V
Bonjour,
Je ne vois ce qui te gêne tant que ca d'utiliser une plage de cellules.
Ca m'étonnerait que toutes tes cellules de ta feuille soient remplies,
et quand bien même elles le seraient, il est possible de prendre une
plage sur une autre feuille.
Dans l'exemple qui suit, on fait un filtre élaboré à partir des données
de la feuille 1 du fichier toto4.xls ( au passage , la syntaxe ici
présente impose qu'il y ait au moins une fois dans la vie du classeur un
filtre automatique en feuille 1 à cause de Feuil1!_Filterdatabase ) en
prenant comme critère une plage de cellules du même fichier sur la
feuille 3 et on envoie les valeurs résultantes sur la feuille 2 à la
cellule A1.LA seule contrainte reste de déclarer ce que l'on met comme
critère ( ici dans la plage IU1:IV2).
Et en prime c'est écrit à la façon AV. Pour une fois que ces crochets
nous permettent d'y voir un peu plus clair.
Je vois que l'on passe par un champ nommé Critéria , peut-on échaper à un
champ de critère défini sur une feuille , ne peut-on pas mettre entièrement
dans la macros la définition des critères mon exemple est sur la premiére
zone (1 ère colonne ) avec comme possibilités MA; MB; MC; MD
@+
Bonjour.
Tu utilises un filtre personnalisé.
Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes
de manières de filtrer.
Cordialement.
Daniel
"Jean-Paul V" <JeanPaulV@discussions.microsoft.com> a écrit dans le message
de news: 2F776769-A394-44D9-9B96-8DD980D3F35F@microsoft.com...
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Je ne vois ce qui te gêne tant que ca d'utiliser une plage de cellules. Ca m'étonnerait que toutes tes cellules de ta feuille soient remplies, et quand bien même elles le seraient, il est possible de prendre une plage sur une autre feuille. Dans l'exemple qui suit, on fait un filtre élaboré à partir des données de la feuille 1 du fichier toto4.xls ( au passage , la syntaxe ici présente impose qu'il y ait au moins une fois dans la vie du classeur un filtre automatique en feuille 1 à cause de Feuil1!_Filterdatabase ) en prenant comme critère une plage de cellules du même fichier sur la feuille 3 et on envoie les valeurs résultantes sur la feuille 2 à la cellule A1.LA seule contrainte reste de déclarer ce que l'on met comme critère ( ici dans la plage IU1:IV2).
Et en prime c'est écrit à la façon AV. Pour une fois que ces crochets nous permettent d'y voir un peu plus clair.
Je vois que l'on passe par un champ nommé Critéria , peut-on échaper à un champ de critère défini sur une feuille , ne peut-on pas mettre entièrement dans la macros la définition des critères mon exemple est sur la premiére zone (1 ère colonne ) avec comme possibilités MA; MB; MC; MD
@+
Bonjour. Tu utilises un filtre personnalisé. Pour le filtre élaboré, utilises AdvancedFilter qui te permets toutes sortes de manières de filtrer. Cordialement. Daniel "Jean-Paul V" a écrit dans le message de news:
Bonjour
J'ai une macro qui lance des filtres élaborés avec l'instruction :
Y-a-t-il une instruction si j'ai plus de 2 possibilités par exemple ou MC ; ou MD ou ME et sans passer par un champ de critère nommé sur une feuille .
Jean-Paul V
JB
Bonjour,
Simulation du Filtre Auto avec Filtre élaboré:
http://cjoint.com/?bChSorFzJy
Le choix des critères de sélection se fait dans des menus déroulants. Les menus sont alimentés par une fonction matricielle:
SansDoublonsTrié(champ As Range)SansDoublonsTrié(champ As Range)
Function SansDoublonsTrié(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count témoin = False For k = 0 To j If temp(k, 0) = champ(i) Then témoin = True Next k If Not témoin Then temp(j, 0) = champ(i): j = j + 1 Next i Call tri(temp, 0, j - 1) SansDoublonsTrié = temp End Function Sub tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2, 0) g = gauc: d = droi Do Do While a(g, 0) < ref: g = g + 1: Loop Do While ref < a(d, 0): d = d - 1: Loop If g <= d Then temp = a(g, 0): a(g, 0) = a(d, 0): a(d, 0) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
La construction du critère se fait avec:
Services choisis DG Ou GESTION Ou MARKETING Ou PRODUCTION
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("services_choisis")) Is Nothing And Target.Count = 1 Then temp = "=OR(" ligne = 1 Do While Range("services_choisis")(ligne, 1) <> "" temp = temp & "F9=""" & Range("services_choisis")(ligne, 1) & """," ligne = ligne + 1 Loop temp = Left(temp, Len(temp) - 1) & ")" If ligne > 1 Then Range("j2").Formula = temp Range("A8:G10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("J1:J2") Else Range("j2").Formula = "Tous" On Error Resume Next ActiveSheet.ShowAllData End If End If End Sub
Cordialement JB
Bonjour,
Simulation du Filtre Auto avec Filtre élaboré:
http://cjoint.com/?bChSorFzJy
Le choix des critères de sélection se fait dans des menus
déroulants. Les menus sont alimentés par une fonction matricielle:
SansDoublonsTrié(champ As Range)SansDoublonsTrié(champ As Range)
Function SansDoublonsTrié(champ As Range)
Dim temp(1000, 1)
j = 0
For i = 1 To champ.Count
témoin = False
For k = 0 To j
If temp(k, 0) = champ(i) Then témoin = True
Next k
If Not témoin Then temp(j, 0) = champ(i): j = j + 1
Next i
Call tri(temp, 0, j - 1)
SansDoublonsTrié = temp
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2, 0)
g = gauc: d = droi
Do
Do While a(g, 0) < ref: g = g + 1: Loop
Do While ref < a(d, 0): d = d - 1: Loop
If g <= d Then
temp = a(g, 0): a(g, 0) = a(d, 0): a(d, 0) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
La construction du critère se fait avec:
Services choisis
DG
Ou GESTION
Ou MARKETING
Ou PRODUCTION
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("services_choisis")) Is Nothing And
Target.Count = 1 Then
temp = "=OR("
ligne = 1
Do While Range("services_choisis")(ligne, 1) <> ""
temp = temp & "F9=""" & Range("services_choisis")(ligne, 1) &
""","
ligne = ligne + 1
Loop
temp = Left(temp, Len(temp) - 1) & ")"
If ligne > 1 Then
Range("j2").Formula = temp
Range("A8:G10000").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range("J1:J2")
Else
Range("j2").Formula = "Tous"
On Error Resume Next
ActiveSheet.ShowAllData
End If
End If
End Sub
Le choix des critères de sélection se fait dans des menus déroulants. Les menus sont alimentés par une fonction matricielle:
SansDoublonsTrié(champ As Range)SansDoublonsTrié(champ As Range)
Function SansDoublonsTrié(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count témoin = False For k = 0 To j If temp(k, 0) = champ(i) Then témoin = True Next k If Not témoin Then temp(j, 0) = champ(i): j = j + 1 Next i Call tri(temp, 0, j - 1) SansDoublonsTrié = temp End Function Sub tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2, 0) g = gauc: d = droi Do Do While a(g, 0) < ref: g = g + 1: Loop Do While ref < a(d, 0): d = d - 1: Loop If g <= d Then temp = a(g, 0): a(g, 0) = a(d, 0): a(d, 0) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
La construction du critère se fait avec:
Services choisis DG Ou GESTION Ou MARKETING Ou PRODUCTION
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("services_choisis")) Is Nothing And Target.Count = 1 Then temp = "=OR(" ligne = 1 Do While Range("services_choisis")(ligne, 1) <> "" temp = temp & "F9=""" & Range("services_choisis")(ligne, 1) & """," ligne = ligne + 1 Loop temp = Left(temp, Len(temp) - 1) & ")" If ligne > 1 Then Range("j2").Formula = temp Range("A8:G10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("J1:J2") Else Range("j2").Formula = "Tous" On Error Resume Next ActiveSheet.ShowAllData End If End If End Sub
Cordialement JB
Jean-Paul V
Bonjour
En fait je souhaitais ne pas poluer mes feulles par des champs de critères. Et je ne voulais pas gonfler le fichier en insérant une feuille de critères.
Mais je vai essayer votre syntaxe claire avec crochets
Merci @+
Bonjour
J’ai une macro qui lance des filtres élaborés avec l’instruction :
Y-a-t-il une instruction si j’ai plus de 2 possibilités par exemple ou MC ; ou MD ou ME et sans passer par un champ de critère nommé sur une feuille .
Jean-Paul V
Bonjour
En fait je souhaitais ne pas poluer mes feulles par des champs de critères.
Et je ne voulais pas gonfler le fichier en insérant une feuille de critères.
Mais je vai essayer votre syntaxe claire avec crochets
Merci @+
Bonjour
J’ai une macro qui lance des filtres élaborés avec l’instruction :
En fait je souhaitais ne pas poluer mes feulles par des champs de critères. Et je ne voulais pas gonfler le fichier en insérant une feuille de critères.
Mais je vai essayer votre syntaxe claire avec crochets
Merci @+
Bonjour
J’ai une macro qui lance des filtres élaborés avec l’instruction :
Y-a-t-il une instruction si j’ai plus de 2 possibilités par exemple ou MC ; ou MD ou ME et sans passer par un champ de critère nommé sur une feuille .
Jean-Paul V
Jean-Paul V
Bonjour JB
J'ai chargé le fichier cela m'a semblé intéressant je vais l'étudier . Merci encore
Bien Cordialement JPV
Bonjour,
Simulation du Filtre Auto avec Filtre élaboré:
http://cjoint.com/?bChSorFzJy
Le choix des critères de sélection se fait dans des menus déroulants. Les menus sont alimentés par une fonction matricielle:
SansDoublonsTrié(champ As Range)SansDoublonsTrié(champ As Range)
Function SansDoublonsTrié(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count témoin = False For k = 0 To j If temp(k, 0) = champ(i) Then témoin = True Next k If Not témoin Then temp(j, 0) = champ(i): j = j + 1 Next i Call tri(temp, 0, j - 1) SansDoublonsTrié = temp End Function Sub tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2, 0) g = gauc: d = droi Do Do While a(g, 0) < ref: g = g + 1: Loop Do While ref < a(d, 0): d = d - 1: Loop If g <= d Then temp = a(g, 0): a(g, 0) = a(d, 0): a(d, 0) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
La construction du critère se fait avec:
Services choisis DG Ou GESTION Ou MARKETING Ou PRODUCTION
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("services_choisis")) Is Nothing And Target.Count = 1 Then temp = "=OR(" ligne = 1 Do While Range("services_choisis")(ligne, 1) <> "" temp = temp & "F9=""" & Range("services_choisis")(ligne, 1) & """," ligne = ligne + 1 Loop temp = Left(temp, Len(temp) - 1) & ")" If ligne > 1 Then Range("j2").Formula = temp Range("A8:G10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("J1:J2") Else Range("j2").Formula = "Tous" On Error Resume Next ActiveSheet.ShowAllData End If End If End Sub
Cordialement JB
Bonjour JB
J'ai chargé le fichier cela m'a semblé intéressant je vais l'étudier .
Merci encore
Bien Cordialement JPV
Bonjour,
Simulation du Filtre Auto avec Filtre élaboré:
http://cjoint.com/?bChSorFzJy
Le choix des critères de sélection se fait dans des menus
déroulants. Les menus sont alimentés par une fonction matricielle:
SansDoublonsTrié(champ As Range)SansDoublonsTrié(champ As Range)
Function SansDoublonsTrié(champ As Range)
Dim temp(1000, 1)
j = 0
For i = 1 To champ.Count
témoin = False
For k = 0 To j
If temp(k, 0) = champ(i) Then témoin = True
Next k
If Not témoin Then temp(j, 0) = champ(i): j = j + 1
Next i
Call tri(temp, 0, j - 1)
SansDoublonsTrié = temp
End Function
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2, 0)
g = gauc: d = droi
Do
Do While a(g, 0) < ref: g = g + 1: Loop
Do While ref < a(d, 0): d = d - 1: Loop
If g <= d Then
temp = a(g, 0): a(g, 0) = a(d, 0): a(d, 0) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
La construction du critère se fait avec:
Services choisis
DG
Ou GESTION
Ou MARKETING
Ou PRODUCTION
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("services_choisis")) Is Nothing And
Target.Count = 1 Then
temp = "=OR("
ligne = 1
Do While Range("services_choisis")(ligne, 1) <> ""
temp = temp & "F9=""" & Range("services_choisis")(ligne, 1) &
""","
ligne = ligne + 1
Loop
temp = Left(temp, Len(temp) - 1) & ")"
If ligne > 1 Then
Range("j2").Formula = temp
Range("A8:G10000").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range("J1:J2")
Else
Range("j2").Formula = "Tous"
On Error Resume Next
ActiveSheet.ShowAllData
End If
End If
End Sub
J'ai chargé le fichier cela m'a semblé intéressant je vais l'étudier . Merci encore
Bien Cordialement JPV
Bonjour,
Simulation du Filtre Auto avec Filtre élaboré:
http://cjoint.com/?bChSorFzJy
Le choix des critères de sélection se fait dans des menus déroulants. Les menus sont alimentés par une fonction matricielle:
SansDoublonsTrié(champ As Range)SansDoublonsTrié(champ As Range)
Function SansDoublonsTrié(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count témoin = False For k = 0 To j If temp(k, 0) = champ(i) Then témoin = True Next k If Not témoin Then temp(j, 0) = champ(i): j = j + 1 Next i Call tri(temp, 0, j - 1) SansDoublonsTrié = temp End Function Sub tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2, 0) g = gauc: d = droi Do Do While a(g, 0) < ref: g = g + 1: Loop Do While ref < a(d, 0): d = d - 1: Loop If g <= d Then temp = a(g, 0): a(g, 0) = a(d, 0): a(d, 0) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
La construction du critère se fait avec:
Services choisis DG Ou GESTION Ou MARKETING Ou PRODUCTION
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("services_choisis")) Is Nothing And Target.Count = 1 Then temp = "=OR(" ligne = 1 Do While Range("services_choisis")(ligne, 1) <> "" temp = temp & "F9=""" & Range("services_choisis")(ligne, 1) & """," ligne = ligne + 1 Loop temp = Left(temp, Len(temp) - 1) & ")" If ligne > 1 Then Range("j2").Formula = temp Range("A8:G10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("J1:J2") Else Range("j2").Formula = "Tous" On Error Resume Next ActiveSheet.ShowAllData End If End If End Sub
Cordialement JB
AV
| En fait je souhaitais ne pas poluer mes feulles par des champs de critères. | Et je ne voulais pas gonfler le fichier en insérant une feuille de critères.
Une zone de critère peut toujours se résumer à une seule cellule qui contenant une formule... La mettre dans une feuille (éventuellement cachée), ne va surement pas alourdir ton fichier !
AV
| En fait je souhaitais ne pas poluer mes feulles par des champs de critères.
| Et je ne voulais pas gonfler le fichier en insérant une feuille de critères.
Une zone de critère peut toujours se résumer à une seule cellule qui contenant
une formule...
La mettre dans une feuille (éventuellement cachée), ne va surement pas alourdir
ton fichier !
| En fait je souhaitais ne pas poluer mes feulles par des champs de critères. | Et je ne voulais pas gonfler le fichier en insérant une feuille de critères.
Une zone de critère peut toujours se résumer à une seule cellule qui contenant une formule... La mettre dans une feuille (éventuellement cachée), ne va surement pas alourdir ton fichier !
AV
JB
Le critère ne contient q'une formule OU(cond1;Cond2;...) créée par programme
JB
Le critère ne contient q'une formule OU(cond1;Cond2;...) créée par
programme