IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Test si plage vide après AutoFilter


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Par défaut Test si plage vide après AutoFilter
    Bonjour tout le monde,
    Dans le but d'optimiser mon code, j'aimerais après avoir flitré une plage, regarder si elle est vide ou pas avant de continuer les opérations sur cette plage. J'ai essayer plusieur méthode IsEmpty, CountA, etc rien ne marche il ne détecte pas quand la plage est vide... Après de nombreuses recherches infructueuses je demande votre aide

    Voici le bout de code que j'ai pour le moment et qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'Boucle pour chaque clients (chaque ligne clients ds excel)
    For cptClient = 1 To maPlage.Rows.Count Step 1
     
    AutoFilterMode = False
    ThisWorkbook.Sheets("Lignes").Select
     
    [C2:D2].CurrentRegion.AutoFilter Field:=2, Criteria1:="=" & codeClient
     
    If Application.CountA(Range("C2:D2").CurrentRegion.SpecialCells(xlCellTypeVisible)) = 0 Then
        MsgBox "Pas de commande pour ce client"
        Else
        'Traitement....
    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    la fonction Sous.Total te donne quelques informations sur les données filtrées...

    Regarde dans l'aide...

    En VBA, on pourrait traduire comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = Application.Subtotal(2, Columns(2))
    où X représente le nombre de données visibles après filtrage...

  3. #3
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Le code fonctionne bien, et c'est normal qu'il ne detecte pas.
    J'aimerais que tu exécutes le code jusque là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    'Boucle pour chaque clients (chaque ligne clients ds excel)
    For cptClient = 1 To maPlage.Rows.Count Step 1
     
    AutoFilterMode = False
    ThisWorkbook.Sheets("Lignes").Select
     
    [C2:D2].CurrentRegion.AutoFilter Field:=2, Criteria1:="=" & codeClient
     
    Range("C2:D2").CurrentRegion.SpecialCells(xlCellTypeVisible).Select
     
    exit sub
     
    'If Application.CountA(Range("C2:D2").CurrentRegion.SpecialCells(xlCellTypeVisible)) = 0 Then
        'MsgBox "Pas de commande pour ce client"
        'Else
        'Traitement....
    Quelles sont les cellules sélectionnées par le programme ?

    D'où vient l'erreur, alors

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Par défaut
    Et bien la sélection est correcte, c'est celle de toutes les factures du clients en cours dans la boucle, donc je comprend pas pourquoi quand je sélectionne un client qui n'a pas de facture, la sélection ne devrait rien ressortir...

    Bref si vous pouviez éclairé ma lanterne

    Pour Subtotal j'ai testé et bien j'obtiens toujours zéro... Je crois qu'il y a un truc qui m'échappe...

    Merci d'avance !

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    attention, dans mon exemple, je prenais la colonne 2...

    A priori, tu filtres sur les colonnes 3 et 4...

    A Adapter....

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 105
    Par défaut
    Alors en fait j'ai trouvé, il faut que le test de CountA soit égal à 1 !
    J'ai observé que quand le client n'avais aucune facture et bien la sélection était sur le nom des colonnes... Du coup il n'y avait jamais rien de sélectionné ^^.

    Merci a tous pour votre aide,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test si plage vide
    Par Aurianelm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/07/2013, 16h01
  2. Test des liens vide sur une base de données
    Par FLANQUART Marie dans le forum ASP
    Réponses: 1
    Dernier message: 10/11/2005, 14h35
  3. [Access2000] test si champ vide qui marche pas ...
    Par michaelbob dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 10h46
  4. XSL - choose et test pour balise vide
    Par enigma dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/07/2005, 08h02
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo