[Catégorie modifiée VB6 --> VBA] Cellules visibles après filtre
roulax
Messages postés1Date d'inscriptionvendredi 2 juillet 2010StatutMembreDernière intervention 2 juillet 2010
-
2 juil. 2010 à 15:58
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
5 juil. 2010 à 09:45
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
A voir également:
[Catégorie modifiée VB6 --> VBA] Cellules visibles après filtre
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 juil. 2010 à 09:45
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)