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 :

tester si un classeur est vide [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Avril 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2010
    Messages : 42
    Par défaut tester si un classeur est vide
    Bonjour

    J'ai fait une petite macro pour sauver le classeur actif en PDF avec ExportAsFixedFormat

    Elle plante si le classeur est vide.

    Comment tester cela facilement ?

    D'avance merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonsoir

    regarde cet exemple
    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
    Sub classeurEstVide()
    Dim wsf As Worksheet, vide As Boolean
     
    vide = True
     
    For Each wsh In Worksheets
      If Application.WorksheetFunction.Count(wsh.Cells()) > 0 Then
        MsgBox "la feuille " & wsh.Name & " contient des données"
        vide = False
        Exit For
      End If
    Next
     
    If vide = True Then MsgBox "le classeur est vide"
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Avril 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2010
    Messages : 42
    Par défaut
    Bonjour zyhack,

    Merci de t'intéresser à mon problème.

    J'ai testé ton code.
    Il fonctionne si au moins une cellule contient une formule.
    Par contre si le classeur contient uniquement du texte il est considéré comme vide.

    Ce n'est donc pas une solution parfaite même si normalement un classeur Excel devrait contenir des formules.

    Si une solution encore meilleure n'est pas possible efficacement, j'utiliserais ce code avec apparition d'un message d'avertissement permettant à l'utilisateur de continuer si son classeur n'est pas vide.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    dans le code remplace Count par CountA et ça devrait allé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If Application.WorksheetFunction.CountA(wsh.Cells()) > 0 Then

  5. #5
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Avril 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2010
    Messages : 42
    Par défaut
    Rebonjour,

    Merci Zyhack

    Je viens d'arriver à la même conclusion que toi et je venais poster "La" solution mais tu m'as devancé.

    Je confirme donc que utiliser CountA permet de tester "tout type de contenu" alors que Count ne fonctionne qu'avec des formules.

    Je passe à résolu.

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

Discussions similaires

  1. [AC-2003] Tester si une cellule est vide dans un classeur excel et faire une boucle
    Par moilou2 dans le forum VBA Access
    Réponses: 11
    Dernier message: 19/08/2009, 09h34
  2. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 15h05
  3. Comment tester si un repertoire est vide sous Linux
    Par chouchouappc dans le forum Linux
    Réponses: 3
    Dernier message: 24/02/2005, 12h03
  4. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

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