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 :

Perte des formules matricielles lors de workbooks.open F5 et pas avec F8


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Avril 2017
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur VBA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 122
    Par défaut Perte des formules matricielles lors de workbooks.open F5 et pas avec F8
    Bonjour

    A mon travail, le souhaite ouvrir des feuilles Excel avec formule matricielle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub test
    Dim fichier as string
    Fichier ="c:\test.xlsx"
    Stop
    Application.workbooks.open fichier
    Stop
    End sub

    En colonne a du fichier j ai mis quelques nombres au format text commençant par 0 et un nombre associé en colonne b

    00050 ... 12
    00140 ... 58
    00050 ... 9
    04840 ... 66
    ...

    En e1 50
    En f1 : {=somme(si(texte(a$1:a$20;"00000")=texte(e1;"00000");b1:b$20))}.

    Lorsque je fais F5 entre les deux stops, la feuille qui s ouvre a une formule normale en f1, la formule n est plus matricielle.
    Lorsque je fais F8 entre les deux stops, j ai bien la formule matricielle.


    Notes :
    C est un exemple que j ai recréé pour n'avoir bien que mon souci.
    Je pratique Excel et vba depuis plus de 15 ans
    J ai le souci au travail (pas d accès à la base des registres, d installation de logiciel possible, ...)
    Poste au travail Excel 2013. Première fois qu j essaie d ouvrir par macro une feuille contenant des formules matricielles. Constaté sur plusieurs ordinateurs.
    Chez moi. J ai recrée ce test sur Excel 2016 et j'en ai pas eu de souci.
    Il y a une 50aine de feuilles a mttte à jour. Cela m embête de mettre un stop avec consigne pour l utilisateur de faire F8+F5 50 fois.

    Mon intuition est que cela serait lie a un parametrage d Excel. En théorie, peut être une option de workbooks.open mais ce n est pas ce qui me semble le plus probable.


    Avez vous une idée de ce que je dois modifier ?


    Ps^^ : maintenant que je reconnais ne pas arriver à ouvrir la feuille, je vais commencer à réfléchir à comment étendre la formule matricielle pour ajouter des lignes. Je suis moyennement confiant.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Il n'a peut-être pas fini de recalculer à l'ouverture, essaie avec un DoEvents après.
    Il me semble qu'il y a une option (au moins en vba) pour empêcher le calcul à l'ouverture mais je n'ai pas retrouvé.
    eric

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Avril 2017
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur VBA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 122
    Par défaut
    Merci beaucoup, ça m'a donné une idée à tester et de fil en aiguille ...

    D'après mon test et ce qu'il m a semblé comprendre, la formule est bien en matricielle mais cela ne se voit pas tant que la macro n a pas fini de tourner.

    Debug.print range("f1").formulaarray est bien renseigné au moment du second stop. Le calcul me semble correct. Dans la barre de formule de ma case f1, les accolades n apparaissent qu une fois la macro terminée : au moment du second stop elles manquent à l affichage et après le End Sub elles sont là.


    Magiquexelle ou comment passer 10h à essayer de résoudre un fonctionnement correct, mais le principal est que ça fonctionne et que je peux lancer ma macro par F5.

    À titre préventif, je vais quand même la modifier ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fichier =...
    Application.calculation = xlcalculationmanual
    Workbooks.open fichier
    Doevents
    Application.calculation = xlcalculationautomatic
    Demain je passerais en résolu pour laisser le temps d'une éventuelle discussion.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2015, 11h45
  2. Réponses: 3
    Dernier message: 31/01/2011, 21h53
  3. perte des liens images lors d'un transfert de mail
    Par jem27 dans le forum Thunderbird
    Réponses: 0
    Dernier message: 17/12/2009, 14h04
  4. [PDF] perte des liens spécifiques lors de l'import de Word
    Par Monsieur_Max dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 04/11/2008, 11h35

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