Bonjour
j'aime savoir si on peut créer des nouveaux types de variables dans libre
office. Et si c'est possible comment peut-on le faire svp.
Merci d'avance
Bonjour,
Dans Calc, on peut créer de nouvelles fonctions.
Qu'entends-tu par "types de variables" ?
Jean-Michel PIERRE
Tél : 06.19.55.73.22
Bonjour
Merci pour votre réponse. Pour être précis j'aime créer un plugin pour libre
office pour qui il prendra en charge l'arithmétique d'intervalle. Donc au
lieu de faire des calculs avec des nombres, on fera des calculs avec des
intervalles. Et pour cela il faut créer un type intervalle. Exemple
d'opération entre 2 intervalles : [a,b] + [c,d] = [a+c,b+d].
Merci
Bonjour,
Difficile de vous aider car vos explications sont peu claires.
Avec une variable définie par l’utilisateur :
Type Intervalle
Min as Single
Max as Single
End type
Function SomInt(A as Intervalle, B as Intervalle) as Intervalle
SomInt.Min = A.Min + B.Min
SomInt.Max = A.Max + B.Max
End Function
Attention le type Intervalle ne sera connu que dans le module où il est défini.
Cordialement.
Didier Dorange-Pattoret
Bonjour
Merci pour votre réponse. Pour être précis j'aime créer un plugin pour libre
office pour qui il prendra en charge l'arithmétique d'intervalle. Donc au
lieu de faire des calculs avec des nombres, on fera des calculs avec des
intervalles. Et pour cela il faut créer un type intervalle. Exemple
d'opération entre 2 intervalles : [a,b] + [c,d] = [a+c,b+d].
Merci
La façon de faire est expliquée ici :
https://help.libreoffice.org/Calc/User-Defined_Functions/fr
Après, il faut adapter.
Bonsoir,
Merci pour votre réponse. Pour être précis j'aime créer un plugin pour libre
office pour qui il prendra en charge l'arithmétique d'intervalle. Donc au
lieu de faire des calculs avec des nombres, on fera des calculs avec des
intervalles. Et pour cela il faut créer un type intervalle. Exemple
d'opération entre 2 intervalles : [a,b] + [c,d] = [a+c,b+d].
je plussoie les réponses de Jean-Michel et de Didier. Passer par un type personnalisé semble la bonne voie.
Un "type personnalisé" dans LibO Basic correspond à ce qui s'appelle en Pascal un Record et une Structure en C.
Comme indiqué par Didier, un type personnalisé n'est connu que dans le module où il est déclaré :
par ex
Type MonType
Item As String
Valeur As Integer
Ok As Boolean
End Type
ne peut pas être référencé ailleurs (dans d'autres modules de la même bibliothèque ou dans d'autres bibliothèques). Dans ces cas (assez fréquents somme toute), il faut référencer ce type comme Object ou Variant.
Pour créer une variable de ce type dans un autre module, il faut donc ruser en passant par une fonction "factory". Il suffit donc de créer, dans le même module que celui où le type personnalisé est lui-même déclaré, une fonction comme ceci :
Function CreateMonType() As MonType
Dim oType As MonType
CreateMonType = oType
End Function
et appeler cette fonction de n'importe où dans le code :
Dim oMonType As Object
...
oMonType = CreateMonType()
Notez que vous pouvez initialiser des valeurs lors de la création. Yaka passer des paramètres ad hoc à la fonction de création.
Bien cordialement,
Bonjour,
Bonjour
Merci pour votre réponse. Pour être précis j'aime créer un plugin pour libre
office pour qui il prendra en charge l'arithmétique d'intervalle. Donc au
lieu de faire des calculs avec des nombres, on fera des calculs avec des
intervalles. Et pour cela il faut créer un type intervalle. Exemple
d'opération entre 2 intervalles : [a,b] + [c,d] = [a+c,b+d].
Comment est-ce que vous allez utiliser ça dans une feuille de calcul ?
Il me semble qu'il faudrait trouver un moyen de stocker 2 nombres dans une même cellule.
Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la liste
de discussion reçoive une copie de votre réponse.
ATTENTION : je ne réponds pas aux réponses qui sont envoyées seulement à moi. Nous sommes sur une liste d'entraide, pas un service après-vente.
Bonne journée
JBF
Bonjour
Est ce qu'il y'aura pas un moyen de stocker 2 nombres dans une même cellule?
Par exemple, peut-on faire pareil comme pour les nombre complexes mais en
changeant "i" avec une autre lettre juste pour séparer les nombres ?
exemple: Pour stocker l'intervalle [5,6] dans une cellule est ce qu'on
pourra mettre un truc de ce genre "5+6x"
Merci d'avance
Bonjour,
Nativement, je ne pense pas.
Mais on peut toujours considérer le contenu d'une cellule comme un texte et le découper suivant les besoins.
Par des formules.
Disons que l'on a 123;456 dans une cellule que je nomme ici int1
=CNUM(GAUCHE(int1;CHERCHE(";";int1)-1)) donne le premier membre (123)
=CNUM(DROITE(int1;NBCAR(nbr1)-CHERCHE(";";int1))) donne le second membre (456)
Ce qui est aussi facilement programmable, surtout si on utilise le python qui peut manipuler directement des choses du genre [123,456]
Quant à la manipulation des nombres complexes, il y a plusieurs fonctions pour cela (qui commencent pas COMPLEXE !!)
Christian F.