Note: The other languages of the website are Google-translated. Back to English
English English

Comment trouver et obtenir la valeur de la première cellule visible après le filtrage dans Excel?

Dans certains cas, vous devrez peut-être obtenir la valeur de la première cellule visible dans une liste filtrée. Comment y parvenir? Cet article vous montrera des méthodes pour le résoudre.

Rechercher et obtenir la valeur de la première cellule visible après le filtrage avec une formule matricielle
Rechercher et obtenir la valeur de la première cellule visible après le filtrage avec VBA


Rechercher et obtenir la valeur de la première cellule visible après le filtrage avec une formule matricielle


Vous pouvez appliquer la formule matricielle suivante pour obtenir la valeur de la première cellule visible dans une liste filtrée. Veuillez faire comme suit.

1. Sélectionnez une cellule vide pour placer la première valeur visible, entrez la formule ci-dessous, puis appuyez sur le bouton Ctrl + Mission + Entrer touches simultanément.

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

Notes: Dans la formule, C2: C19 est la liste filtrée dont vous souhaitez renvoyer la première valeur de cellule visible, C2 est la première cellule de la liste. Vous pouvez les changer selon vos besoins.

Ensuite, vous pouvez voir la valeur de la première cellule visible dans la liste filtrée remplie dans la cellule sélectionnée comme illustré ci-dessus.


Rechercher et obtenir la valeur de la première cellule visible après le filtrage avec VBA

En plus d'utiliser la formule de tableau ci-dessus pour obtenir la valeur de la première cellule visible dans une liste filtrée, vous pouvez exécuter le script VBA ci-dessous pour renvoyer rapidement la première cellule visible d'une liste filtrée. Veuillez faire comme suit.

1. Sélectionnez une cellule vide telle que E8 pour placer la première valeur de cellule visible d'une liste filtrée.

2. presse autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

3. dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur insérer > Module. Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre Module.

Code VBA: recherchez et obtenez la valeur de la première cellule visible après le filtrage dans Excel

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

Notes: Dans le code, Sheet1 est le nom de la feuille qui contient la liste filtrée. «C» est le nom de la colonne à partir de laquelle vous souhaitez obtenir la première valeur visible. Vous pouvez les changer selon vos besoins.

3. appuie sur le F5 pour exécuter le code, la première cellule visible de la liste filtrée qui se trouve dans la colonne C sera remplie immédiatement dans la cellule E8.


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (17)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Comment trouver et obtenir la valeur de dix (10) premières cellules visibles après le filtrage du sous-total dans Excel ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,


Como faço para saber o número da célula toda vez que realizo o filtro automático no vba via loop?
Par exemple, ao filtrer o valor 1, retornou as linhas 2, 3 e 4. No próximo loop filtro o valor 2 e retorna as linhas 19, 20, 22.
Como faço para que eu realizar esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da primeira linha da planilha ?
Obrigado.
Ce commentaire a été minimisé par le modérateur sur le site
Excellent module en VBA, a parfaitement fonctionné, j'apprécie cela ! Merci beaucoup pour ce post !!!!
Ce commentaire a été minimisé par le modérateur sur le site
Quelqu'un peut-il expliquer comment cette formule fonctionne réellement?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Ce commentaire a été minimisé par le modérateur sur le site
J'obtiens sans cesse une erreur d'exécution '91' Object variable ou With block variable not set. Ma feuille de calcul est Sheet1 intitulée AllBrands. Voici ma formule :

Sous FirstVisibleCell()
With Worksheets("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Terminer par

End Sub

Toute aide serait appréciée!
Ce commentaire a été minimisé par le modérateur sur le site
Salut Boub,
Le code fonctionne bien dans mon cas. Quelle version d'Excel utilisez-vous ?
Ce commentaire a été minimisé par le modérateur sur le site
Malheureusement - ni la formule - qui me donne une erreur #VALUE ni le VBA ne fonctionne pour moi en me donnant une erreur d'exécution '1004'
Dommage car j'ai Office 2019 et je m'attendais à ce que l'une de ces fonctionnalités fonctionne lors du filtrage de cellules spécifiques... :-(
Ce commentaire a été minimisé par le modérateur sur le site
‌merveilleux🌺 Merci un million🙏
Ce commentaire a été minimisé par le modérateur sur le site
Merci un million🙏🌺
Ce commentaire a été minimisé par le modérateur sur le site
Ça marche. Merci beaucoup...
Ce commentaire a été minimisé par le modérateur sur le site
Cette formule fonctionne, mais sachez que si vous avez des cellules vides, la formule peut mal fonctionner et sélectionner la première valeur dans l'ensemble du tableau, pas seulement dans les résultats filtrés. La solution de contournement que j'ai trouvée consistait à remplacer les cellules vides par NULL ou un espace.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai d'abord eu des blancs ... puis toutes les cellules ont été remplies mais ont toujours la réponse #VALUE. Espérons que cette formule fonctionne également sur le texte ...! Merci du conseil en tout cas ;-)
Ce commentaire a été minimisé par le modérateur sur le site
Donc, pour moi, la réponse ci-dessus ne fonctionne tout simplement pas très bien. J'ai un classeur avec plus de 23 XNUMX lignes et c'est quelque chose que j'ai travaillé à optimiser au fil des ans. Ma solution m'est venue ce matin dans une énième étincelle d'inspiration.
En supposant que vous utilisez une TABLE pour obtenir les données souhaitées, procédez comme suit : une ligne (je l'ai nommée "Rownmbr") est dédiée à : =CELL([@[YOURFIRSTROW]])
En dehors du tableau, vous créez une formule quelque part :=INDIRECT(CONCATENATE("A";SUBTOTAL(105;Table1[Rownmbr])))
Vous remplacez simplement le "A" par l'endroit où vous souhaitez obtenir les données. Pour moi, cela fonctionne très bien, et ce n'est pas une formule lourde à utiliser qui enlisera davantage le document.
Ce commentaire a été minimisé par le modérateur sur le site
Cette solution a parfaitement fonctionné pour moi, puisque j'utilisais une table. Les instructions étaient difficiles à suivre, alors j'espère que cette explication sera un peu plus claire.
Supposons que vous ayez un tableau Excel nommé "Table_Name". Tout d'abord, créez une nouvelle colonne dans votre table et nommez-la "RowNumber". 
Dans cette nouvelle colonne, entrez la formule "=ROW([@RowNumber])" Cela remplira ensuite la nouvelle colonne avec
Dans la cellule où vous voulez afficher la première valeur visible, entrez la formule "=INDIRECT("A"&SUBTOTAL(105,Table_Name[RowNumber]))" Le "A" est la lettre de la colonne qui contient la valeur que vous voulez rendre.
La fonction SOUS-TOTAL(105,...) renvoie la valeur minimale de toutes les lignes visibles dans une plage donnée, qui dans le cas ci-dessus renverra le numéro de ligne de la première ligne visible.
La fonction INDIRECT renvoie la valeur de la cellule pour une adresse de cellule donnée. C'est pourquoi vous avez besoin que la première partie de la formule contienne la lettre de colonne de la colonne que vous souhaitez afficher. La deuxième partie de la formule renverra le numéro de ligne.


Ce commentaire a été minimisé par le modérateur sur le site
Pouvez-vous m'aider à écrire cette formule dans une feuille google avec arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Ce commentaire a été minimisé par le modérateur sur le site
Dans le code VBA suivant, pouvez-vous s'il vous plaît expliquer ce que fait Cellules spéciales(xlCellTypeVisible)(1) moyenne? Quel est (1) utilisé pour après Cellules spéciales (xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Ce commentaire a été minimisé par le modérateur sur le site
Merci !
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés