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

Excel Discussion :

Formules non calculées en mode de calcul automatique


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2016
    Messages : 42
    Points : 28
    Points
    28
    Par défaut Formules non calculées en mode de calcul automatique
    Bonjour,

    J'ai un fichier avec une grande plage de cellules contenant chacune une formule.
    La formule contient une fonction perso que j'ai faite en VBA.

    Parfois, dans certaines cellules, la formule n'est pas calculée, il y a #VALEUR! d'affiché.
    Mais quand je clique dans la formule et que je fais ENTRÉE, le calcul est bien fait et j'obtiens bien le résultat.
    Le problème c'est que j'ai des centaines de cellules.

    La solution la plus rapide que j'ai trouvé c'est de copier puis recoller la formule dans toutes les cellules mais c'est pénible.

    Avez-vous une solution?

    Merci.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,
    Citation Envoyé par kido63 Voir le message
    La formule contient une fonction perso que j'ai faite en VBA.

    Je n'arrive pas à voir le code de cette fonction, mais peut-être faut-t'il y ajouter Application.Volatile
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par kido63 Voir le message
    La formule contient une fonction perso que j'ai faite en VBA.

    Parfois, dans certaines cellules, la formule n'est pas calculée, il y a #VALEUR! d'affiché.
    Mais quand je clique dans la formule et que je fais ENTRÉE, le calcul est bien fait et j'obtiens bien le résultat.
    N'y aurait-il pas une reconnaissance de couleur (ou autre format) dans le processus de cette fonction ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2016
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Menhir Voir le message
    N'y aurait-il pas une reconnaissance de couleur (ou autre format) dans le processus de cette fonction ?
    Bonjour, Non pas de reconnaissance de couleur.

    Merci

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Etant donné que nous ne sommes pas ici pour jouer aux devinettes et puisque tu ne daignes pas présenter ton code, je vais faire comme Patrice et attendre que ma boule de cristal soit réparée pour te répondre...
    Nom : Cristal.gif
Affichages : 117
Taille : 44,2 Ko
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2016
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    voici le code, pas de soucis pour le fournir:

    c'est une simple soustraction avec un code d'erreur particulier danc certains cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function Devers(z1 As Variant, z2 As Variant) As Variant 'double
     
    Devers = CVErr(xlErrNA)
    On Error GoTo Fin
     
    If IsNumeric(z1) And IsNumeric(z2) And (z1 <> "") And (z2 <> "") Then
            Devers = z1 - z2
    End If
     
    Fin:
     
    End Function

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Et donc ma proposition (en aveugle) devrait résoudre le problème !
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  8. #8
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Ton code cumule beaucoup de défaut à éviter.

    Tout d'abord, tu déclares tout en Variant, ce qui est une mauvaise idée.
    Déclare tes paramètres en Double et ça t'évitera les tests IsNumeric().

    Idem pour la déclaration de la fonction elle-même.

    Ensuite, on n'utilise pas On Error sur un code qui n'est pas stabilisé.
    Et même sur un code stabilisé, on l'utilise avec parcimonie, sur une seule ligne et de façon contrôlé.
    On Error ne sert pas à masquer les imperfections d'un code.

    De toute façon, Excel se chargera de renvoyer une valeur d'erreur de lui-même si les paramètres ne sont pas conformes.

    Et enfin, ton test est une sorte d'oxymore informatique : tu vérifies si une valeur est numérique et, sur la même ligne, tu la compares à une chaine de caractère.
    Ca n'est pas logique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Devers(z1 As Double, z2 As Double) As Double
            Devers = z1 - z2
    End Function
    Et si tu veux que ça renvoit NA en cas d'erreur, utilise-le ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(Devers(A1;A2);NA())
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/11/2018, 05h48
  2. Réponses: 2
    Dernier message: 06/11/2016, 21h49
  3. [XL-2007] Formule pour calcul automatique si vente
    Par scoubart dans le forum Excel
    Réponses: 6
    Dernier message: 15/09/2014, 10h37
  4. ouverture de fichier et formules non calculées
    Par nanie_38 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/01/2010, 10h17
  5. Formule matricielle, calcul non pris en compte
    Par exover dans le forum Excel
    Réponses: 8
    Dernier message: 25/03/2009, 08h49

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