[Catégorie modifiée VB6 --> VBA] Cellules visibles après filtre

Signaler
Messages postés
1
Date d'inscription
vendredi 2 juillet 2010
Statut
Membre
Dernière intervention
2 juillet 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

En stage, je suis en train de développer une macro.
J'ai un petit problème pour selectionner les cellules visibles après un filtre.
Dans ma macro, je veux copier des données d'une feuille A et les coller dans une feuille B.
Je veux copier les cellules visibles de la ligne 2 à la dernière ligne où il y a des données.
Mais je veux aussi vérifier qu'il y a bien des données filtrées, et dans le cas où la selection de mon filtre est vide, je veux stoper la macro.

Mon code est le suivant mais il ne fonctionne pas, il m'affiche le message 'pas de données" même si il y en a :
Windows(FEUILL2).Activate
Set rngSelect = ActiveSheet.Range("A2:Z" & Range("A2" & Rows.Count).End(xlUp).Row)
NumRowsFiltre = rngSelect.SpecialCells(xlVisible).Count - 1
If rngSelect.SpecialCells(xlVisible).Rows.Count - 1 > 0 Then
rngSelect.Copy
End If
If rngSelect.SpecialCells(xlVisible).Rows.Count - 1 = 0 Then
MsgBox "Pas de données à traiter"
Exit Sub
End If

Une idée ?


roulax

1 réponse

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut

- Voir dans l'aide ce que renvoie .Count car tu n'arrêtes pas de faire des -1 sans raison apparente.
- Apprends à déboguer :
F9 sur une ligne de code : le programme s'arrêtera là au prochain passage
Une fois le programme figé, passe la souris au dessus de tes variables pour en connaitre la valeur
F8 pour avancer d'une seule ligne
F5 pour continuer normalement
- Voir l'utilisation de If-Else-Then pour éviter les répétitions.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)