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 :

Corriger #VALEUR de Somme.SI avec une macro ?


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
    Contrôle de gestion
    Inscrit en
    Avril 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 21
    Par défaut Corriger #VALEUR de Somme.SI avec une macro ?
    Bonjour à toutes et à tous,

    je reviens une nouvelle fois vers vous pour un problème que je n'arrive pas à résoudre depuis maintenant deux bonnes semaines. J'ai tenté de trouver une solution en fouillant un peu partout mais je ne vois pas comment faire.

    Mon soucis : J'ai un total de 14 fichiers.

    - Un fichier "Tableau de Bord", avec un onglet "Commercial" (les autres ne sont pas concernés), qui comprend un tableau regroupant le Chiffre d'affaires par Pays et ce, pour chaque mois de l'exercice.

    - Un fichier "Prévisionnel", qui regroupe, toujours par mois, le Chiffre d'affaires prévisionnel (cette fois c'est pas par pays mais par référence produit)

    - Douze fichiers "Base de données *", un par mois, qui regroupent les données opérationnelles.

    Le problème vient du tableau de bord, avec le tableau commercial.
    Pour obtenir les données mois par mois de CA en fonction du pays, j'ai du utiliser des formules SOMME.SI.
    Par exemple sur le mois de Juillet, pour obtenir le Chiffre d'affaires réalisé en France, j'aurai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI('C:\Fichiers DB\[Base de données Juillet.xlsm]Ventes Mensuelle'!$C:$C;A6;'C:\Fichiers DB\[Base de données Juillet.xlsm]Ventes Mensuelle'!$K:$K)
    La colonne C de la feuille Ventes Mensuelle de la Base de données renseigne, pour chaque référence produit, le pays. J'indique donc au Somme.SI d'utiliser cette plage pour le critère. La cellule A6 du tableau de bord indique "France", ainsi, il va regarder dans la colonne C de la feuille de la BDD s'il voit "France".
    Enfin, s'il voit que le critère est bon, il va aller prendre la valeur de CA du produit concerné dans la colonne K, et donc faire ça jusqu'à ce qu'il ait additionné tous les CA des produits réalisés en France, afin de me renvoyer le total dans mon tableau de bord.
    Jusqu'ici tout va bien.

    ça, ça fonctionne à condition que la BDD de Juillet reste ouverte ! Dès qu'elle est fermée, le montant à l'intérieur ne se met plus à jour, et, si je veux actualiser le tout, il va me mettre #VALEUR partout ! (ce qui est normal de ce que j'ai compris)

    Je ne peux pas garder tous les fichiers d'ouverts à chaque fois (ils sont assez lourds s'agissant de Base de données), et les rouvrir un par un à chaque fois fait perdre un temps fou alors que le but de l'opération est d'en gagner pour les responsables de service. Il me sort également une #VALEUR si j'essaie d'ajouter une ligne/colonne supplémentaire dans le tableau... bref, un calvaire.

    Ma question est donc, savez-vous s'il existe un moyen d'actualiser les données issues de SOMME.SI qui iraient chercher ces mêmes données dans des classeurs fermés afin de corriger cette erreur #VALEUR ?

    Petite précision : les formules de type SOMMEPROD sont à proscrire, c'est une des contraintes qui m'est imposé, je dois impérativement passer par un SOMME.SI

    PS : J'ai tenté une macro qui ouvrait une par une chaque DB et les refermait aussitôt, mais sans succès, ça ne fonctionne que si j'ouvre chaque classeur individuellement.


    Merci d'avance pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Contrôle de gestion
    Inscrit en
    Avril 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Contrôle de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 21
    Par défaut
    Re-bonjour,

    alors j'ai trouvé la solution moi-même (pour ceux qui pourraient éventuellement rencontrer le même cas de figure).

    J'ai bricolé une macro qui ouvre un par un chaque fichier de base de données.
    Avant de fermer chacun d'entre eux, j'indique d'aller dans une feuille dans une cellule précise (n'importe laquelle en fait), et de faire 1 - 1, puis d'enregistrer le classeur à la fermeture tout de suite après et ça fonctionne
    Je peux garder mes SOMME.SI et corriger l'erreur #VALEUR sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set WBJUILLET = Workbooks.Open(ThisWorkbook.Path & "\BDD Juillet.xlsm")
    WBJUILLET.Worksheets("Ventes").Select
    ActiveSheet.Cells(18, 18).Value = 1 - 1
    WBJUILLET.Close True
    Voilà voilà, c'était surtout le fait de rajouter un "calcul" pendant l'opération qui a fait la différence.

    Bonne journée à tous

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

Discussions similaires

  1. [XL-2003] Récupérer une valeur via COM (avec une macro sur la cellule)
    Par a028762 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/06/2010, 17h23
  2. [XL-2002] Trouver une valeur specifique dans les colonnes avec une Macro
    Par sergio_gr66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/07/2009, 11h20
  3. Somme conditionnelle (pas réussi avec une macro)
    Par JOLIFLO57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/12/2008, 13h14
  4. [Excel]Faire une somme avec une macro
    Par Chlo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/01/2006, 19h53
  5. [VBA Excel] ecrire le caractere " avec une macro
    Par oktopuces dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 22h56

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