Probleme - données filtrées VBA
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
Bonsoir Yatiz,
Ta demande n'est pas très claire, mais je te propose quand même ce code VBA :
Option Explicit
Sub liste1()
Dim Total&, dlig&, lig&, nb&
' dlig : dernière ligne, selon la colonne L
dlig = Cells(Rows.Count, 12).End(xlUp).Row
For lig = 2 To dlig
If Rows(lig).Visible Then ' si ligne non filtrée
With Cells(lig, 12)
If Not IsEmpty(.Value) Then
Total = Total + .Value: nb = nb + 1
If Total >= 100 Then Exit For
End If
End With
End If
Next lig
Range("P1, P2, P4").ClearContents
If nb > 0 Then
[P2] = nb: [P4] = Total: [P1] = nb / Total
End If
End SubSi c'est ça, tu as de la chance !
Pour t'aider davantage, il vaudrait mieux que tu joignes ton fichier (sans données confidentielles) : utilise le bouton « Ajouter des fichiers » situé sous la fenêtre d'édition de ton prochain post ; indique aussi quels sont les résultats attendus.
Merci de me donner ton avis ; à te lire pour la suite.
dhany