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 :

[VBA-E] Formule


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Par défaut [VBA-E] Formule
    Bonjour,

    est-il possible de créer une formule dans une cellule Excel?
    Si oui comment?

    En fait je ne veux pas que ma cellule contienne le résultat d'une fonction mais belle et bien la fonction elle-même.

    Merci pour votre aide

    Bien cordialement

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ? Et bien tu saisie le nom de ta fonction dans la cellule du style

    avec la fonction déclarée dans un module par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function MaFonction(r As Range) As Integer
     MaFonction = r.Row
    End Function

  3. #3
    Membre confirmé Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Par défaut
    super merci...

    mais comment tu fais pour définir la fonction?

    c'est à dire créer le truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SOMMEPROD(((I2N2)+(natinv="lot"))*(inv05)*(Site=$I$1)*(NomProjet=$F$1))

  4. #4
    Membre confirmé Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Par défaut
    je suis pas très clair... désolé...
    je voudrais créer dynamiquement maFonction.

  5. #5
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    Dans un module tu écrit


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function MaFonctionPerso(r as range, i as integer)
         'ce qu'elle doit faire
         MaFonctionPerso=r.cells(1,1) + i
    end function

    et dans ton classeur excel tu ecrira

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MaFonctionPerso("A12", 9)
    ce qui affichera si A12 vaut 22 :

    31

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je pense que gojira veut juste savoir comment il peut "écrire" la "formule" dans la cellule par VBA.

    Si c'est le cas, un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Cells(8, 1).FormulaR1C1 = "=SUM(R1C:R[-2]C)"
    Je ne connais pas trop SOMMEPROD et ne comprends donc pas ta "formule".
    J'ai l'impression que tu y fais appel à des variables.
    Dans ce cas, il faut isoler les variables de la chaine entre guillemets.

    Dis-nous pour éviter qu'on se casse la tête pour rien.

    Il y a quelques trucs à savoir lors de la création de formules Excel par VBA.
    Entre autres:
    Les noms des fonctions doivent s'écrire en anglais
    Les points-virgules sont remplacés par des virgules
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre confirmé Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Par défaut
    Merci beaucoup Alain Tech, c'est exactement ça.

    En ce qui concerne la formule, ne te prends pas la tête je ne la comprends pas encore. En fait je travaille à blinder une application développée sous excel en VBA par quelqu'un d'autres.

    Et des colonnes de formules ont été saisies à la main ce qui fait que les formules ont été perdues. Donc pour éviter les problèmes je verrouille les feuilles excel et je saisie donc les formules dynamiquement au chargement en VBA.

    Merci pour ton aide.

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

Discussions similaires

  1. [VBA-E]formule drole de pb
    Par trach.sam dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/09/2006, 09h21
  2. [VBA-E] - formule matricielle
    Par jimbololo dans le forum Macros et VBA Excel
    Réponses: 37
    Dernier message: 09/06/2006, 14h27
  3. [VBA-E] Formule d'une autre page + Offset
    Par Korleone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/04/2006, 11h10
  4. [VBA-E]Formule de selection
    Par sunme dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2006, 09h37
  5. [VBA/Excel] Formule via macro
    Par UNi[FR] dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2005, 15h11

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