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]function dans les cellules


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 3
    Points : 3
    Points
    3
    Par défaut [VBA-E]function dans les cellules
    Bonjour,

    Je voulais savoir s'il était possible de créer une fonction en VBA qui modifie la valeur de certaines cellules dans une feuille excel

    Je m'explique, je voudrais créer un fonction genre calc(paramètres) qui permettrait de pouvoir écrire dans une cellule =calc(param). Qui renverrait une valeur dans cette cellule mais qui en plus modifierait d'autre cellules.

    J'ai réussi à créer une fonction mais chaque fois que j'essaie de modifier le contenu d'une cellule, il me met #VALEUR. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Function calc(param)
    Call fct2
    calc = param * 2
    End Function
     
    Public Sub fct2()
    Dim maplage As Range
    Set maplage = Range(Cells(1, 1), Cells(10, 1))
    maplage.Value = ("essai")
    End Sub
    Si je retire le call fct2 dans le function calc, elle fonctionne et si j'execute la fct2 à partir d'un bouton, elle fonctionne aussi. Donc c'est uniquement à partir du moment ou je l'appelle dans une fonction qu'elle ne fonctionne plus

  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 543
    Points
    15 543
    Par défaut
    Là, avec le code que tu nous as donné, je ne vois pas comment tu l'appelles...
    Tu peux préciser ?

    A+

    Je parle de la fonction, pas de la sub

  3. #3
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Tiens ousk pour l'appel c'est écrit la :
    Citation Envoyé par bibidi
    Je m'explique, je voudrais créer un fonction genre calc(paramètres) qui permettrait de pouvoir écrire dans une cellule =calc(param). Qui renverrait une valeur dans cette cellule mais qui en plus modifierait d'autre cellules.
    mais à priori il semble qu'il ne soit pas possible de modifier .. des valeurs de cellules par une fonction (ou procédure) appellé directement par une formule excel...

    bibidi, je crois que tu vas devoir t'orienter vers une fonction évenementielles ( .._Change...)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Mwais je pense que tu as raison, y a pas moyen de modifier des valeurs de cellules par une fonction appellé directement par une formule excel...

    Je me suis donc tourné vers une autre solution...


    merci qd même

  5. #5
    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 543
    Points
    15 543
    Par défaut
    Merci bbil, heureusement que tu es là !

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Question d'un moins que débutant en VBA :
    Excel a-t-il prévu la possibilité de création de toutes pièces d'une fonction personnalisée ajoutable aux siennes (hors macro....insérable)?

  7. #7
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    oui ..., suffit de créer une fonction dans un module... , bon il doit y avoir des régles.. qu'as vrai dire je ne connai.. pas vraiment (par exemple, l'on ne peu pas exécuter du code modifiant d'autre cellules...) mais elle ces fonctions "personnalisées" sont réalisées de la même façon qu'une fonction VBA standard...

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Pour être précis : je veux dire : appelable ensuite comme les fonctions de VBA et "retrouvable" dans une des listes/catégories de fonctions (en double-cliquant sur une cellule, par exemple, comme pour les autres) ?
    Les "autres" me font penser à des activex avec des fenêtres de propriétés.

  9. #9
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    oui on les retrouve dans la rubrique personalisées...

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bbil (intéressant) !

  11. #11
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    tiens un peu d'image...

    par contre je sais pas s'il est possible de rajouter un "texte d'aide..."..

    la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    '
    ' Concaténation de nom
    '
    Function fctNP(Nom As String, Prenom As String) As String
      fctNP = Nom & " " & Prenom
    End Function
    Finalement en cherchant un peu dans l'aide en ligne ... j'ai trouvé comment on applique un commentaire à une fonction ... personalisée...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub test()
     Application.MacroOptions "fctNP", "Fonction de Nom prénom.."
    End Sub
    et aide en ligne VBA..

    MacroOptions, méthode


    Correspond aux options de la boîte de dialogue Options de macro.
    Syntaxe
    expression.MacroOptions(Macro, Description, HasMenu, MenuText, HasShortcutKey, ShortcutKey, Category, StatusBar, HelpContextID, HelpFile)
    expression Obligatoire
    ...

    Images attachées Images attachées  

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Encore une fois mille mercis à toi Bbil .

    Mais à ce stade, ne te fatigues pas trop pour moi (je ne possède pas Excel VBA). Ma question était pour l'instant surtout destinée à en découvrir les possibilités. D'autres pourront peut-être en faire leurs choux gras dès maintenant. Moi, je mets tout celà dans une case de ma vieille mémoire (pour le jour où je déciderai de changer de version). Il me suffit pour l'instant de savoir que la possibilité existe... Dès lors que je le sais, en effet, je m'acharne généralement à chercher, trouver, essayer.... Ta réponse était donc essentielle et bienvenue telle qu'elle était. MERCI

  13. #13
    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 543
    Points
    15 543
    Par défaut
    Hello bbil,
    Tes exemples et extrait de l'aide en ligne évoquent les macros (sub) qu'en est-il des fonctions ? Utilisées dans une cellule, il semble que ce n'est qu'en validant manuellement la cellule en question que la fonction... fonctionne. As-tu une solution ? (ou suis-je hors sujet)
    merci

    Edit
    Hors sujet, en effet mais la réponse m'intéresse malgré tout

  14. #14
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par ouskel'n'or
    Hello bbil,
    Tes exemples et extrait de l'aide en ligne évoquent les macros (sub) qu'en est-il des fonctions ? Utilisées dans une cellule, il semble que ce n'est qu'en validant manuellement la cellule en question que la fonction... fonctionne. As-tu une solution ? (ou suis-je hors sujet)
    merci
    non la fonction "fonctionne" aussi à chaque changement de la valeur de ses paramétres..., l'extrait de l'aide en ligne, fonctionne aussi (du moins en partie, je n'ai testé que pour le titre) pour les fonctions personnalisées...

  15. #15
    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 543
    Points
    15 543
    Par défaut
    Ok, merci pour ta réponse. Je regarderai ça lundi, je ne comprends pas pourquoi ça ne fonctionne pas chez moi. Les changements de paramètres ne sont validés que si j'entre dans la cellule et valide par entrée. Un sendkey, peut-être. Je verrai

    A+

  16. #16
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par ouskel'n'or
    Ok, merci pour ta réponse. Je regarderai ça lundi, je ne comprends pas pourquoi ça ne fonctionne pas chez moi. Les changements de paramètres ne sont validés que si j'entre dans la cellule et valide par entrée. Un sendkey, peut-être. Je verrai

    A+
    ? et tu l'écrit comment ta formule dans excel... , essai mon exemple de concaténation.. tu as tout en image...!

  17. #17
    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 543
    Points
    15 543
    Par défaut
    Je regarderai ça demain. Encore merci.

    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/01/2010, 16h38
  2. [VBA-E] condition dans les cellules
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/08/2006, 09h45
  3. Changement de couleur dans les cellules d'un tableau
    Par allowen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/11/2005, 14h52
  4. [JTable] centrer les donnees dans les cellules
    Par cmoa59 dans le forum Composants
    Réponses: 5
    Dernier message: 20/05/2005, 11h35
  5. Alignement dans les cellules d'un tableau
    Par philippef dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/02/2005, 12h15

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