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 :

Inserer une formule (Longue) dans une cellule via VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 130
    Points : 85
    Points
    85
    Par défaut Inserer une formule (Longue) dans une cellule via VBA
    Bonjour,

    Dans la cellule L2, je souhaite inserer la formule suivante via VBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =ENT((H2-DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))/7)*5+JOURSEM(H2)
    -JOURSEM(DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))+SI(JOURSEM(DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))>JOURSEM(H2);5)
    -SI(JOURSEM(H2)=7;1)+SI(JOURSEM(DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))<>1;1)-1
    Cette formule me sert à calculer le nombre de jours ouvré entre aujourd'hui et une date se situant en H2.

    Lorsque j'essai de récupérer le code via l'enregistreur de macro, cela ne fonctionne pas : " N'as pas pu enregistrer" (la formule est surment trop longue).

    Comment puis je raccourcir cette formule pour que l'enregistreur me genere le code ou alors quel est le code VBA à entrer pour que cela genere cette formule dans L2?

    Merci pour votre aide!

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ce qui simplifierait les chose serait d'utiliser FormulaLocal mais c'est mal vu car utilisé sur un pc où une version d'excel autre que française, ça ne fonctionnerait pas
    Voici toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cells(1, 2).FormulaLocal = "=ENT((H2-DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))/7)*5+JOURSEM(H2)" & _
    "-JOURSEM(DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))+SI(JOURSEM(DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))>JOURSEM(H2);5)" & _
    "-SI(JOURSEM(H2)=7;1)+SI(JOURSEM(DATE(ANNEE(MAINTENANT());MOIS(MAINTENANT());JOUR(MAINTENANT())))<>1;1)-1"
    Pour utiliser Formula tout court, tu remplaces MAINTENANT, jour, mois, annee, joursem par leurs versions anglaises

    Edit
    Avec formula, ça donne ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cells(2, 2).Formula = "=INT((H2-DATE(YEAR(NOW()),MONTH(NOW()),DAY(NOW())))/7)*5+WEEKDAY(H2)" & _
    "-WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW()),DAY(NOW())))+IF(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW()),DAY(NOW())))>WEEKDAY(H2),5)" & _
    "-IF(WEEKDAY(H2)=7,1)+IF(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW()),DAY(NOW())))<>1,1)-1"
    Bonne journée

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 130
    Points : 85
    Points
    85
    Par défaut
    J'ai utilisé formulalocal. Toutes les personnes qui utiliseront la macro ont obligatoirement la meme version Excel que moi.

    Merci

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

Discussions similaires

  1. [XL-2013] Nom d'un onglet dans une formule à partir d'une cellule
    Par pounette dans le forum Excel
    Réponses: 3
    Dernier message: 04/12/2013, 15h06
  2. mettre une formule excel dans une cellule
    Par spoyet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/02/2012, 15h11
  3. mettre une formule excel dans une cellule
    Par spoyet dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/02/2012, 09h52
  4. Réponses: 2
    Dernier message: 30/03/2010, 10h39
  5. Réponses: 6
    Dernier message: 13/11/2009, 16h06

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