Comment creer une fonction dans excel?

Saratum Messages postés 21 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 1 avril 2009 - 24 mars 2009 à 10:03
Saratum Messages postés 21 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 1 avril 2009 - 28 mars 2009 à 09:29
Je n'y connais absolument rien en programmation...

Serait il possible de faire quelque chose du genre.... :
Une fonction appeler Police à laquel je pourrais assigner 2 valeur dans la cellule ou la fonction dans laquelle je l'utilise

=Police(saisie de variable1;saisie de variable2)

le système assignerait par la suite à la variable 1 les attribut selon la variable 2....

exemple en attribut liés à variable2     1=gras
                                                        2=italique
                                                        3=gras+italique

et que par la suite je puisse utiliser cette fonction quand j'en ai besoin dans mon dossier   de tel sorte que:

(a1&if(a2"-------";;"-------";Police(a2;3))&a3&a4&if(a5="-------";;"-------";Police(a5;1))&a6)  

car
la valeur dans a2 et a5 sont le résultat d'un if...  si vrai le if m'inscrit une
valeur que je veux en gras, et si faux, le if m'inscrit des trait...
------- que je ne veux pas en gras... 

Je ne sais pas si cette idée est faisable, et je ne sais pas trop comment l'écrire en ligne de code pour la macro....:S

4 réponses

Saratum Messages postés 21 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 1 avril 2009
24 mars 2009 à 23:09
Salut tout le monde, toujours pas de news jusqu'à présent....

Plusieurs personne m'ont donner des trucs pour changer la police de façon ponctuelle...  j'aimerais creer une fonction pour fais ça, mais je ne sais pas comment programmer...  tk, pas encore, besoin d'un coup de pouce svp

Merci
0
AReS097 Messages postés 24 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 14 janvier 2021
25 mars 2009 à 10:05
Salut,
Tu peut pas être un peu plus concret au niveau de ton exemple car le problème c'est que je comprend pas ce que tu veut faire ?
0
Saratum Messages postés 21 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 1 avril 2009
25 mars 2009 à 10:56
ok...  hum... 

Ma cellule finale contiens:
=CONCATENER(A1;A2;A3;A4;A5;A6;A7;A8;A9;A10;A11;A12;A13)

Et le résultat de cette formule se lit comme un paragraphe et de l'utilise ainsi car je dois modifier la mise en page souvent...  et donc, je joint plusieur cellule et renvoit le résultat sur la ligne suivante dans la même cellule...

A1 CONTIENT: L'acheteur entreprendra de bonne foi toutes les démarches nécéssaire pour obtenir un emprunt de
A2 :  contien un If....  je veux que le vrai du if s'affiche en gras, et que le faux du if s'affiche normal...
A3: $ garantie par une hypothèque de
A4: IF...  VRAI   FAUX
A5: rang; cet emprunt portant intéret au taux courant de
A6: IF...  VRAI   FAUX
A7: % l'an, sera payable par des versement maximaux de
A8: IF...  VRAI   FAUX
A9: $  calculé selon un plan d'amortissement de
A10: IF...  VRAI   FAUX
A11: ans, le solde devenant exigible dans
A12: IF...  VRAI   FAUX
A13: ans.

Bref, le paragraphe se lit comme quand les if sont vrai...  (les if réfère tous à la même cellule logique...)
*******************
L'acheteur entreprendra de bonne foi toutes les démarches nécéssaire pour obtenir un emprunt de 170 000$ garantie par une hypothèque de premier rang; cet emprunt portant intéret au taux courant de 5% l'an, sera payable par des versement maximaux de 800$  calculé selon un plan d'amortissement de 25 ans, le solde devenant exigible dans 5 ans.
*******************
et se lit comme suit quand les Ifs sont faux.... 
*******************

L'acheteur entreprendra de bonne foi toutes les démarches nécéssaire pour obtenir un emprunt de ------- garantie par une hypothèque de -------rang; cet emprunt portant intéret au taux courant de ------% l'an, sera payable par des versement maximaux de -------$  calculé selon un plan d'amortissement de ------ ans, le solde devenant exigible dans ------- ans.

*******************
Au début j'avais fais un seul If avec un paragraphe vrai et un faux, mais je n'ai pas possibilité de sélectionner le gras pour certain caractère... 

Hors, quand on écris dans une cellule, c possible habituellement quand on n'écris pas une formule, alors je me suis dis, si j'avais une fonction qui me permettait de choisir la police pour la partie de formule que j'utilise, alors je pourrais adapter cette facon de faire plus facillement.... 

Donc, je voudrais avoir une fonction qui pourrait remplacer le concatener...  exemple

Fonction((CELLULE1;ATTRIBUT);(CELLULE2;ATTIBUT);(CELLULE3;ATTIBUT))

CELLULE pouvant aussi être un If ou autre fonctions ou calculs... 
ATTRIBUT allant selon se qu'on a besoin...  : Gras/souligné/italic et Grosseur de police... 

Bref, je ne veux pas que ce soit une application que je doive déclancher manuellement...   je veux m'en servir LIVE comme je le fais avec les If, Concatener, Somme, etc...  et tout changement applicable aux cellules qui ont effets sur les résultats...

J'espère que ça t'aide à voir plus clair... :)
Merci beaucoup pour le coup de main..
0
Saratum Messages postés 21 Date d'inscription lundi 23 mars 2009 Statut Membre Dernière intervention 1 avril 2009
28 mars 2009 à 09:29
Toujours pas de news... 
Je ne suis pas certain de ce que je fais... 
J'ai trouver les ligne de codes pour enregistrer la macro comme fonction et prendre les valeurs... mais je sais pas trop quoi faire après ça...

'***********
' attributs =0  gras
'           =1  Italique
'           =2  Gras + Italique
' size      = size
'***********

Public Function SetAttrib(Subject As String, _    Optional attributs As Byte 0, Optional size As Long 0) As String
    Select Case attributs
        Case 0
            With ActiveCell.Characters.Font
            ActiveCell.FormulaR1C1 = "subject"
            .FontStyle = "Gras"
            .size = size
            End With
        Case 1
            With ActiveCell.Characters.Font
            ActiveCell.FormulaR1C1 = "subject"
            .FontStyle = "italique"
            .size = size
            End With
        Case 2
            With ActiveCell.Characters.Font
            ActiveCell.FormulaR1C1 = "subject"
            .FontStyle = "Gras italique"
            .size = size
            End With
    End Select
End Function

Ce que je veux faire en définitive, c'est d'utiliser la fonction pour appeler et afficher le contenu de la cellule appeler à l'intérieur d'une cellule concatener...  
ex:     =CONCATENER(D13;setattrib(D5;2;14);D11;D4)
0
Rejoignez-nous