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 :

eviter de récupérer 0 si cellule vide avec ExecuteExcel4Macro [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut eviter de récupérer 0 si cellule vide avec ExecuteExcel4Macro
    Bonjour,

    J'utilise la fonction
    Pour lire des datas dans des classeurs fermés.

    Peut-on éviter de récupérer un 0 s'il n'y a pas de valeur.

    J'ai tenté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sierreur mais cela ne semble pas fonctionner
    Le but est de reconstituer une bdd à partir de classeurs existants dans un répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
        MaFormule(2) = "DTE&MET'!r8c5"             'Technicen
    ' j'ai tenté sans susccès
     MaFormule(2) = "SIERREUR(DTE&MET'!r8c5,""""')"             'Technicen
    ...
     
    For La_Colon = 2 To 20
    ThisWorkbook.Sheets("Liste_de_base").Cells(Ligne, La_Colon) = ExecuteExcel4Macro("'" & Mon_Rep & "[" & Fich & "]" & MaFormule(La_Colon))
    Next
    Merci
    Denis

  2. #2
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 509
    Par défaut
    Salut le fil...
    Tu as essayé cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaFormule(2) = SI("DTE&MET'!r8c5"=0;"";"DTE&MET'!r8c5")

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne comprends pas pourquoi tu utilises ExecuteExcel4Macro alors qu'il n'y a visiblement (je peux me tromper) pas de macro dans ta formule mais juste la valeur d'une cellule.

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci Valrase, même après correction de la syntaxe, ça ne fonctionne pas, je récupère toujours 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        MaFormule(2) = "SI(DTE&MET'!r8c5=0;"""";DTE&MET'!r8c5)"
    Finalement je supprime le o dans la foulée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For La_Colon = 2 To 28
    ThisWorkbook.Sheets("Liste_de_base").Cells(Ligne, La_Colon) = ExecuteExcel4Macro("'" & Mon_Rep & "[" & Fich & "]" & MaFormule(La_Colon))
    If ThisWorkbook.Sheets("Liste_de_base").Cells(Ligne, La_Colon) = 0 Then ThisWorkbook.Sheets("Liste_de_base").Cells(Ligne, La_Colon) = ""  ' <<== supprime les 0
    Next
    Bonjour Menhir,
    je disais
    J'utilise la fonction .. Pour lire des datas dans des classeurs fermés.
    je boucle sur un répertoire de classeurs de résultats formatés pour collecter des informations dans une base.

    Mon problème étant résolu, je cloture.

    Merci

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    J'utilise la fonction .. Pour lire des datas dans des classeurs fermés.
    ExecuteExcel4Macro sert à exécuter les macro Excel "à l'ancienne", celles qui étaient constitués (en gros) d'une série de formules et qui, aujourd'hui, ne sont plus du tout utilisées, sauf pour faire tourner de très anciennes applications.
    Mais pour évaluer une simple formule, il est préférable d'utiliser la méthode Evaluate.
    Lire ça : https://docs.microsoft.com/fr-fr/off...ation.evaluate

    Petite remarque finale : Excel ne sait pas lire dans les fichiers "fermés".
    En fait, ton fichier source est ouvert par le fichier destination par une connexion externe.

  6. #6
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Merci Menhir,

    Evaluate ne fonctionne que sur les classeurs ouverts.

    Je me doute bien que Excel ne lit pas les classeurs "réellement" fermés mais la macro ancienne me parait plus rapide que d'ouvir chaque chaque classeur avec workbooks.open.

    Sinon il faudra que je me décide à passer à la gestion OLE
    https://silkyroad.developpez.com/VBA...eursFermes/#LV

    En tout cas merci.
    à bientôt.

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

Discussions similaires

  1. [XL-2007] Remplissage de cellules vides avec un nom correspondant à un numéro
    Par paupau83 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/04/2013, 21h49
  2. Réponses: 8
    Dernier message: 22/12/2009, 16h20
  3. Colorisation d'une cellule vide avec MsgBox
    Par olivepao dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 30/05/2008, 15h11
  4. fusion de cellules vides avec cellule précédente pleine
    Par camzo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/10/2007, 16h28
  5. cellule vide avec collage avec liaison
    Par stephlinternaute dans le forum Excel
    Réponses: 2
    Dernier message: 14/08/2007, 14h53

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