Autofilter, stoper la macro si il n'y a pas de données

roulax

XLDnaute Nouveau
bonjour,

En stage, je suis actuellement en train de développer une macro.
J'ai un petit problème avec la fonction Autofilter
Je filtre des données dans un fichier A pour les coller dans un fichier B.
Mon problème est le suivant :
Quand il n'y a pas de données dans ma selection filtré la suite de ma macro ne fonctionne pas, je voudrais donc créer un boucle permettant de la stopper ou de copier les données si il y en a.

J'ai écris le code suivant :
Set rngSelect = ActiveSheet.Range("A2:Z" & Range("A" & Rows.Count).End(xlUp).Row)
NumRowsFiltre = rngSelect.SpecialCells(xlVisible).Count - 1
If rngSelect.SpecialCells(xlVisible).Count - 1 = "=" Then
MsgBox "Pas de données à traiter"
Else
rngSelect.Copy
End If

Ce code ne fonctionne pas convenablement car il me copie toujours la première ligne qui est la ligne titre.

Quelqu'un a-t-il une idée pour vérifier la présence de données à partir de la ligne 2.

merci
 

tototiti2008

XLDnaute Barbatruc
Re : Autofilter, stoper la macro si il n'y a pas de données

Bonjour roulax, Bonjour Paritec,

je ne comprend pas bien ça

Code:
If rngSelect.SpecialCells(xlVisible).Count - 1 = "=" Then

ça ne devrait pas être un truc du genre :

Code:
If rngSelect.SpecialCells(xlVisible).Count - 1 = 0 Then

?
 

roulax

XLDnaute Nouveau
Re : Autofilter, stoper la macro si il n'y a pas de données

bonjour tototiti2008,

Pour le code :

If rngSelect.SpecialCells(xlVisible).Count - 1 = "=" Then

j'ai écris le "=" pour signifier un vide,

j'ai déjà essayé avec cette écriture aussi :

If rngSelect.SpecialCells(xlVisible).Count - 1 = 0 Then

mais cela ne fonctionnait pas non plus :(
 

roulax

XLDnaute Nouveau
Re : Autofilter, stoper la macro si il n'y a pas de données

Re tototiti2008,

Merci pour ta réponse, ta ligne de code fonctionne.

j'ai une dernière question sur la suite de mon code.

Comment faire pour stoper la macro après le then si il n'y a pas de valeur, je ne connais pas le code et je n'ai rien trouvé sur la toile !

If rngSelect.SpecialCells(xlVisible).Rows.Count - 1 = 0 Then
MsgBox "Pas de données à traiter" -> stoper la macro à la place d'afficher ce messageElse
rngSelect.Copy

Merci d'avance ! :)
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG