cellules filtrées VBA

knaekes

XLDnaute Occasionnel
Bonjour

je souhaite alimenter un tableau de variables, en ne considérant que les cellules visibles (pas celles qui sont filtrées).

Ja'ai essayé en associant à la zone de données -> la condition
Code:
.SpecialCells(xlCellTypeVisible)
. Toutefois cela stoppe la procédure dès que la macro rencontre la première cellule cachée, sans lire les autres cellules visibles.

Code:
Sub tableau()


Dim tboall() As Variant
Dim tbosub() As Variant

Worksheets(1).Select
tboall = Range("B2:F20").SpecialCells(xlCellTypeVisible)

ReDim Preserve tbosub(1)
For I = 1 To UBound(tboall, 1)
   For J = 1 To UBound(tbosub)
      If tboall(I, 1) = tbosub(J) Then blnExiste = True
   Next J
   If blnExiste = False Then
      If tbosub(1) <> "" Then ReDim Preserve tbosub(UBound(tbosub) + 1)
      tbosub(UBound(tbosub)) = tboall(I, 1)
   End If
   blnExiste = False
Next I

For I = 1 To UBound(tbosub)
Cells(I + 20, 7) = tbosub(I)
Next I

End Sub

Comment faire ? Merci d'avance

ci-joint mon fichier exemple
 

Pièces jointes

  • variables tableau - cellules visibles - Copie.xlsm
    17.9 KB · Affichages: 40

Softmama

XLDnaute Accro
Re : cellules filtrées VBA

Bonjour,

Ce que tu as fait me paraît compliqué... Ou alors, j'ai rien compris (ce ne serait pas la première fois remarque...) Bref, essaie ce code et vois si ça correspond à ce que tu souhaites (j'ai gardé le passage par un tableau, mais il ne me paraît guère indiqué dans ce cas... Ha, et puis j'ai pas compris la différence entre tball et tbsub... ?)
VB:
Sub tableau()
Dim tbosub() As Variant, I As Integer

I = 0
Worksheets(1).Select
For Each c In Range("B2:B20")
  If c.EntireRow.Hidden = False Then
    I = I + 1
    ReDim Preserve tbosub(I)
    tbosub(I) = c
  End If
Next c
[G20].Resize(UBound(tbosub)) = Application.Transpose(tbosub)
End Sub
 

knaekes

XLDnaute Occasionnel
Re : cellules filtrées VBA

Bonjour,

Merci pour la réponse

toutefois je n'arrive pas à l'intégrer dans ma macro. mon but n'est pas d'afficher la liste filtrée dans des cellules excel mais uniquement de les stocker dans un tableau de variables.

ci-joint mon fichier avec le résultat souhaité. Je fais apparaître les données dans des cellules, mais ceci uniquement dans le but de vérifier ce qui est stocké dans le tableau de variable. L'étape suivante consistera à utiliser le tableau de variable pour construire un histogramme.

Pour résumer:
1. je n'arrive pas à intégrer la fonction de filtre. Seul les données non cachées doivent être prises en compte.
2. Je ne trouve pas la cause de l'erreur de remplissage de mon tableau. En jaune le résultat correct (si on suppose que toutes les cellules sont visibles).

merci d'avance pour votre aide
 

Pièces jointes

  • Camembert et histogramme vba.xlsm
    21.7 KB · Affichages: 49
Dernière édition:

Discussions similaires

Réponses
11
Affichages
296

Statistiques des forums

Discussions
312 232
Messages
2 086 459
Membres
103 219
dernier inscrit
Akyrah