Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copie du résultat d'un filtre dans un tableau (Résolu)

  • Initiateur de la discussion Initiateur de la discussion Philippe63000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Philippe63000

Guest
Bonjour,

J'ai deux colonnes. La première colonne contient des dates et la deuxième colonne des valeurs de débits (associées aux dates).
Je voudrais isoler une année particulière parmi l'ensemble des dates (et bien sûr les débits associés).
Et copier le résultat de ce filtrage dans un tableau .

Je pense savoir copier le résultat du filtrage dans une feuille . Mais je ne sais pas copier le résultat dans un tableau.
Pourriez-vous m'indiquer la marche à suivre.
Merci d'avance.
 
Dernière modification par un modérateur:
Re : copie du résultat d'un filtre dans un tableau

Bonjour.
VB:
Sub ValoriserFiltre(TSorti() As Variant, ByVal F As Worksheet)
Dim PlgF As Range, LMax As Long, CMax As Long, Zone As Range, TEntré() As Variant, L As Long, C As Long
Set PlgF = F.AutoFilter.Range ' L'initialise à l'unique plage possible de la feuille couverte par un filtre auto.
Set PlgF = PlgF.Rows(2).Resize(PlgF.Rows.Count - 1) ' La réinitialise de façon à en sauter les entêtes.
Set PlgF = PlgF.SpecialCells(xlCellTypeVisible) ' La réinitialise de façon à n'en prendre que les cellules visibles.
       Rem. Ceci aboutit dans le cas général à une plage multi-zones, tout comme une union ou une sélection multiple.
LMax = 0: CMax = PlgF.Columns.Count ' Nombre de lignes de sortie à 0, et nombre de colonnes de la plage filtrée noté.
For Each Zone In PlgF.Areas ' Pour chaque zone:
   LMax = LMax + Zone.Rows.Count ' Ajoute au nombre de lignes total celui de la zone.
   Next Zone
ReDim TSorti(1 To LMax, 1 To CMax) As Variant ' Redimensionne convenablement le tableau à produire.
LMax = 0 ' Numéro de ligne de sortie courant remis à 0.
For Each Zone In PlgF.Areas ' Pour chaque zone:
   TEntré = Zone.Value ' en récupère l'intégralité des valeurs.
   For L = 1 To UBound(TEntré, 1): LMax = LMax + 1 ' Pour chacune des lignes, le N° de ligne de sortie est incrémenté
      For C = 1 To CMax: TSorti(LMax, C) = TEntré(L, C): Next C ' et on y copie la valeur de chaque colonne.
      Next L
   Next Zone
End Sub
Exemple d'utilisation:
VB:
Sub Essai()
Dim TV() As Variant
ValoriserFiltre TV, ActiveSheet
MsgBox UBound(TV) & " Ligne filtrées."
End Sub
Cordialement.
 
Re : copie du résultat d'un filtre dans un tableau

Bonjour ,

Merci pour votre réponse.


Merci pour votre aide,

Cordialement
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…