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

Probleme - données filtrées VBA

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 !

yatiz

XLDnaute Nouveau
Bonjour les amis,

J'ai un réel problème aujourd'hui, et j'ai besoin de votre aide.
Je cherche à créer un programme qui calculerait automatiquement un taux de réussite basé sur un score (100) basé sur plusieurs critères.

Mais le problème, c'est que mes données sont filtrées avec une dizaine de colonnes dans Excel et du coup, mon programme sur VBA prend en compte toute les données, et pas seulement les données filtrées comme je le souhaiterez.
Il sélectionne la totalité, c'est a dire environ 300 données au lieu d'une centaine ou vingtaine qui sont filtrées.

Quelqu'un aurait une solution s'il vous plait ?
En vous remerciant.

Voici ma macro :

Sub liste1()

Dim L As Variant
Dim compteur As Variant
Dim Total As Variant
Dim Bon As Variant


compteur = 0
L = 1


While Cells(L, 12).Value <> ""

If Subtotal(Cells(L, 12) = 100) Then
compteur = compteur + 1
Else
compteur = compteur

End If

L = L + 1


Wend

Cells(2, 16).Value = compteur
Bon = Cells(2, 16).Value


compteur = 0
L = 2


While Cells(L, 12).Value <> ""

compteur = compteur + 1
L = L + 1


Wend

Cells(4, 16).Value = compteur
Total = Cells(4, 16).Value


Cells(1, 16).Value = Bon / Total


End Sub
 
Bonjour yatiz et bienvenue sur XLD 🙂

Pour n'avoir que les lignes filtrées, il faut écrire comme ceci

.Cells.SpecialCells(xlCellTypeVisible)

Et pour avoir le total des lignes filtrées, à adapter

Dim derlig As Long
derlig = Range("i" & Rows.Count).End(xlUp).Row
Range("F7") = WorksheetFunction.Subtotal(9, Range("i2:i" & derlig)
 
Dernière édition:
Bonjour Lone-wolf

Merci pour ta réponse, du coup je dois changer tout mes « cells » par des « Cells.SpecialCells » ? C’est le même principe avec les lignes et colonnes ?
 
Re

Tu parle d'une 10aine de colonnes, mais je vois >Cells(2, 16); en plus, il n'y a pas besoin de boucles. Un exemple à adapter

Dim derlig As Long, plage As Range
derlig = Range("a" & Rows.Count).End(xlUp).Row

Set plage = .Range("a1:r" & derlig)

plage.Autofilter Field:= Le n° de la colonne, Criteria1:= ton 1er critère, Operator:=xlAnd, _
Criteria2:= ton 2ème critère
 
Dernière édition:
Re,

Je me suis complètement perdu🙁🙁🙁
Avec mon cas dans ma boucle, comment je peux juste introduire SpecialCells ? je veux continuer sur ma lancé avec ma boucle si possible.
Pour ce qui est de la 16eme colonne que tu vois, c'est pour y inscrire le résultat.
 
j'ai bien essayé avec :


Dim derlig As Long, plage As Range

derlig = Range("a" & Rows.Count).End(xlUp).Row

Set plage = .Range("a1:r" & derlig)


plage.AutoFilter 12, "< 100", xlAnd

End Sub


Mais je bloque vraiment. Mon fichier excel comporte 14 colonne filtrée, seul la 12eme m'intéresse (c'est celle ou les scores sont récoltés). Et je désire donc que le résultat soit affiché dans la première cellule de la 16eme colonne.
 
Re

Il faut bien lire le message avant de faire quoi que ce soit. J'ai bien dit qu'il faut ADAPTER. Donc Au lieu de la colonne R, tu met le nom de la dernière colonne.

Pour la 2ème question: non. Juste Cells.SpecialCells(xlCellTypeVisible)

Plus est: si tu mettrais le fichier, ça serait beaucoup plus simple.
 
Re

Je n'ai pas le droit de mettre le fichier sinon je vous l'aurez partagé depuis le début🙁
Désolé de vous embêter d'avantage, mais malgré le fait que j'introduise :

Cells.SpecialCells (xlCellTypeVisible)

Le résultat ne change pas, excel prend en compte tout les lignes. (Je l'introduit juste après la boucle et avant)
 
- 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

Discussions similaires

Réponses
1
Affichages
226
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
309
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
872
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…