Fonction FILTRE sous Excel 2016 ?

Bonjour chers fanatiques d'Excel.
J'utlise actuellement Excel 2016. Mais j'ai besoin impérativement de la fonction FILTRE de la version 365. Existe t-il un complément qui me permettra d'utiliser Filtre exactement comme si j'avais excel 365.
merci et agréable journée à tous.

Bonjour

Non cette fonction n'existe pas dans votre version

Une alternative en allant dans le menu Données --> Filtre --> Filtre avancé

Si ok et terminé pensez à cloturer le fil

Cordialement

Bonjour à tous,

Je ne pense pas qu'il y ait de complément spécialement conçu pour réaliser cela facilement.

Cependant, il y a un sujet que j'ai créé et auquel les membres ont répondu pour pallier cette fameuse fonction FILTRE.

SUJET ICI

Il existe plusieurs méthodes... À voir selon les besoins.

Non. Je cherche plutôt un complément à installer qui va permettre de faire usage de la fonction filtre de la version 365. Merci à vous deux pour votre réponse.
cordialement !

Bonjour à tous,

J'avais écrit pour une demande similaire la fonction VBA ci-dessous. Ca fonctionne comme la fonction FILTRE, simplement vous devez l'entrer comme formule matricielle puisque l'extension automatique de formules n'existait pas sur 2016.

Quoique je vais tester quelque chose pour le corriger.

Fichier ci-joint pour exemple.

30prefilter.xlsm (18.57 Ko)
Public Function FILTREVBA(arr As Range, filter As Variant) As Variant
  On Error GoTo quitFunc

  Dim inputDim(0 To 1) As Long
  inputDim(0) = arr.Rows.Count
  inputDim(1) = arr.Columns.Count

  Dim dimensions(0 To 1) As Long, vertical As Boolean
  Select Case UBound(filter) - LBound(filter) + 1
  Case inputDim(0)
    vertical = True
    filter = Application.Transpose(filter)
    dimensions(0) = arr.Rows.Count
    dimensions(1) = arr.Columns.Count
  Case inputDim(1)
    vertical = False
    dimensions(0) = arr.Columns.Count
    dimensions(1) = arr.Rows.Count
  Case Else
    FILTREVBA = "Entrées invalides"
    Exit Function
  End Select

  Dim filteredValues As Object
  Set filteredValues = CreateObject("System.Collections.ArrayList")

  Dim evaluation As Variant, i As Long
  For i = 1 To dimensions(0)
    If filter(i) Then
      If vertical Then
        filteredValues.Add arr.Rows(i)
      Else
        filteredValues.Add Application.Transpose(arr.Columns(i))
      End If
    End If
  Next i

  If vertical Then
    FILTREVBA = filteredValues.toArray
  Else
    FILTREVBA = Application.Transpose(filteredValues.toArray)
  End If

quitFunc:
End Function

Bonsoir,

Un ancien post à voir.

Cordialement

.Désolé pour mon retour tardif. En fait je suis à la recherche d'un genre de complément pour supprimer les cellules qui sans être vides n'affichent rien d'une grande plage (105 colonne et 600 à ce jour). J'ai déjà testé sans succes une solution vba car j'aurais voulu que le vba s'exécute seulement sur cette plage. Ce qui n'est pas possible. Je viens de tester aussi le complément filtrevba de saboh. On peut l'ameliorer
15prefilter2.xlsm (18.92 Ko)
dVoici un extrait du fichier prefilter avec l'essai en I5 / feuil1

Bonjour,

Je crois que j'ai réussi à intégrer l'extension automatique de la formule aux cellules adjacentes. Je vous ai corrigé le cas particulier d'une ligne seule pour renvoyer une ligne et non une colonne.

ATTENTION IL N'Y A PAS DE TEST POUR VERIFIER SI LES CELLULES SONT DEJA OCCUPEES, VERIFIEZ QUE DE LA PLACE EST DISPONIBLE EN BAS ET A DROITE.

A valider via CTRL+MAJ+ENTREE

Public Function FILTREVBA(arr As Range, filter As Variant) As Variant
  On Error GoTo quitFunc

  Dim inputDim(0 To 1) As Long
  inputDim(0) = arr.Rows.Count
  inputDim(1) = arr.Columns.Count

  Dim dimensions(0 To 1) As Long, vertical As Boolean
  Select Case UBound(filter) - LBound(filter) + 1
  Case inputDim(0)
    vertical = True
    filter = Application.Transpose(filter)
    dimensions(0) = arr.Rows.Count
    dimensions(1) = arr.Columns.Count
  Case inputDim(1)
    vertical = False
    dimensions(0) = arr.Columns.Count
    dimensions(1) = arr.Rows.Count
  Case Else
    FILTREVBA = "Entrées invalides"
    Exit Function
  End Select

  Dim filteredValues As Object
  Set filteredValues = CreateObject("System.Collections.ArrayList")

  Dim evaluation As Variant, i As Long
  For i = 1 To dimensions(0)
    If filter(i) Then
      If vertical Then
        filteredValues.Add arr.Rows(i)
      Else
        filteredValues.Add Application.Transpose(arr.Columns(i))
      End If
    End If
  Next i

  If Not vertical And dimensions(1) > 1 Then
    FILTREVBA = Application.Transpose(filteredValues.toArray)
  Else
    FILTREVBA = filteredValues.toArray
  End If

  Dim outputDim(0 To 1) As Long
  outputDim(0) = 1: outputDim(1) = 1
  On Error Resume Next
  outputDim(0) = UBound(FILTREVBA, 1): outputDim(1) = IIf(dimensions(1) > 1, UBound(FILTREVBA, 2), 1)
  On Error GoTo 0
  'Application.EnableEvents = False
  ActiveCell.Resize(outputDim(0), outputDim(1)).FormulaArray = ActiveCell.Formula
  Application.EnableEvents = True

quitFunc:
End Function
Je viens de copier puis coller le nouveau code vba . j'ai un 0 comme résultat. J'ai attaché le fichier d'exemple.
cordialement.
11prefilter3.xlsm (19.98 Ko)

Hum aucune idée désolé.

Avez-vous essayé les autres propositions ?

J'ai l'impression que ma fonction a du mal avec le filtre des cellules vides. Mais je n'arrive pas à comprendre pourquoi, et quand je met un breakpoint dans le code il n'est pas utilisé…

Merci à tous.
cordialement !
Rechercher des sujets similaires à "fonction filtre 2016"