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 :

Utiliser une cellule comme une fonction


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Utiliser une cellule comme une fonction
    Bonsoir,

    J'essaie d'utiliser Excel comme une fonction - ça doit être faisable, mais comment ??

    Par exemple :
    en B1 : une valeur d'entrée
    en B2 : une formule tarabiscotée qui prend B1 comme paramètre, entre autres
    en C12 : le résultat de B2 si B1 prenait une autre valeur, quitte à effectivement modifier B1

    Bien sûr, je ne peux pas étendre les cellules B1 et B2, c'est là tout le problème !
    Vous m'enlèveriez une grosse épine du pied, car je suis plongé dans VBA depuis 17h...

  2. #2
    Membre averti
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Points : 442
    Points
    442
    Par défaut

    ...
    en B1 : une valeur d'entrée
    en B2 : une formule tarabiscotée qui prend B1 comme paramètre, entre autres
    en C12 : le résultat de B2 si B1 prenait une autre valeur, quitte à effectivement modifier B1
    ...
    bonsoir,

    un exemple en utilisant la procédure evénement dans la feuille "worksheet_selectionchange" en ciblant sur B1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Application.EnableEvents = False
    With Feuil1
        If ActiveCell = .Range("B1") Then .Range("C12") = .Range("B2")
    End With
    Application.EnableEvents = True
     
    End Sub
    attention si vous faites des essais ligne à ligne mettre en commentaire les lignes Application.EnableEvents !!!
    ceci fonctionne si vous sélectionner B1 et entrer une nouvelle valeur en B1 ... Il faut peut être utliser aussi _change si vous modifier B1 autrement...

    vous pouvez essayer ce fichier :
    essai.xlsm

    a vous....

    geogeo70

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour votre réponse. Votre macro n'est pas équivalente à C12=B2, tout simplement ??

    Pour reformuler, la particularité ici est que B1 prend plusieurs valeurs successives. Par exemple :
    - en colonne D, des valeurs que doit prendre B1
    - en colonne C, les valeurs successives que prendrait B2 en fonction des valeurs de la colonne D

    Le problème avec Excel, c'est la mise à jour automatique des calculs, qui fait qu'on ne peux pas garder une valeur (sauf à faire un copier-coller spécial pour chaque cellule)... Avez-vous une solution simple à cela ?

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Hop, j'ai fait un fichier pour illustrer mon problème.
    Le but est de trouver les "??" pour toutes les valeurs de T1 et T2, sachant que je ne peux recopier tous les paramètres entrant dans le calcul (il y en a des dizaines).

    Une idée ? Help !
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Points : 442
    Points
    442
    Par défaut
    J'ai du mal à comprendre votre problème :

    - si les valeurs en colonne D sont connues il suffit d'écrire la formule en C2 , et de la recopier vers le bas et les résultats successifs s'écrivent!

    - Excel se programme par évènements sur des objets (plage, cellule, feuille) ou évolution des propriétés des objets ou utilisation de leurs méthodes... Quand vous dites "valeurs successives" cela veut dire plusieurs états, donc gestion d'états successifs...

    Merci donc de préciser votre problème...

    geogeo70

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Le fichier que j'ai joint tout à l'heure devrait illustrer mon problème.
    Pour vous répondre :
    - Comme dit, il ne suffit pas de recopier B2 car elle n'est que la dernière d'une douzaine de cellules à la chaîne (la mécanique des fluides génère des paramètres à gogo...) et il faudrait donc tout recopier manuellement... et il y a une vingtaine de telles "fonctions".
    - Effectivement, donc il s'agit ici de garder les résultats successifs de B2 sous forme de valeurs (nombres), puisque le contenu de la cellule, lui, changera.

    Ce serait simple pourtant, une syntaxe du type "=VALEUR.POUR(T;T1;R)", qui donnerait dans le fichier exemple "=VALEUR.POUR(C6; A13; C7)"...

  7. #7
    Membre averti
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Points : 442
    Points
    442
    Par défaut

    Une idée ? Help !
    Re,
    j'étais en écriture de mon message quand vous avez envoyé votre fichier!

    Bon, j'étais dans le juste, c'est un problème de copie de formule!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =($A12*$B$3-$C$3/$D$3)^0,5+$E$3
    =($A12*$B$3-$C$3/$D$3)^0,5+$E$3

    En recopiant les formules, implicitement les références sont relatives donc vous devez définir celles qui sont absolues : utilisez la touche F4 pour choisir les $ correspondant. Pour notre cas, tous les paramètres sont en absolu et la valeur de T courante et en absolu colonne mais on peut ne pas la fixer puisque on recopie vers le bas.

    votre fichier corrigé :

    Fonctions_sous_Excelcor.xlsx

    à vous...

    geogeo70

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Re,

    Eh non, ce n'est pas un problème de recopie de formule en réf. absolue ou relative. C'est plus sexy que ça

    Comme dit et répété, il ne suffit pas de recopier B2 car elle n'est que la dernière d'une douzaine de cellules à la chaîne qui s'appellent les unes, les autres, et il faudrait donc tout recopier manuellement... et il y a une vingtaine de telles "fonctions" imbriquées ... dont seule la dernière utilise explicitement B1. Les joies de la mécanique des fluides...

    Je sais que c'est une utilisation très peu courante sous Excel, pourtant les fonctions c'est une base en sciences et techniques !
    Merci d'essayer en tout cas.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Enfin, j'ai trouvé un début de solution !

    Les "tables de données" font à peu près ce que je cherchais.
    Ce tuto (en anglais) décrit toutes leurs possibilités : http://chandoo.org/wp/2010/05/06/dat...hensive-guide/

    Il resterait à faire un RECHERCHEV ou une interpolation pour trouver le résultat correspondant à mes valeurs d'entrées successives.

    Ça reste quand-même fastidieux, comparé à une simple fonction que j'appelais de mes vœux...

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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