• Initiateur de la discussion Initiateur de la discussion Melanie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Melanie

Guest
Bonjour,

J'ai un tableau avec des âges et des taux de mortalité. J'ai besoin de les lire en VBA, autrement dit que c'est valeurs soient stockées selon l'âge pour les utiliser dans dees formules ultérieures. Seulement je me suis inspiré de codes faits pour Access et cela ne marche pas. Help
 
Bonjour Melanie,

Pourrais-tu relire ton message car au vu de ce que tu expliques et de ton fichier je ne comprend rien à ce que tu cherches à faire.

- Tu veux lire quoi dans ton fichier et où ?
- Quels sont les résultats à obtenir, à partir de quelle colonne et à placer où ?

Bref ce serait mieux que que tu complètes un peu ton fichier si tu veux que l'on te réponde.

A te lire

🙂
 
Public Function Init()
'les tables sont lues sur les champs et tranférées en variables-tableaux
Dim x As Integer, s As Integer
Dim Table As Object
Set Table = CurrentDb.OpenRecordset('EKMF_95', dbOpenDynaset)

For x = 0 To 105
qx(x) = Worksheets('Feuil1').Cells(x - 15, 2)
lx(x) = Worksheets('Feuil1').Cells(x - 15, 3)
Next x

End Function

Public Function px(x)

px = 1 - qx(x)

End Function

Ensuite je voudrais créer des fonctions qui utilisent les qx et des lx pour des âges de 0 à 105 comme celle de dessus. px=1-qx p.ex. Je suis au début du programme, je suis bloqué car je n'arrive pas à faire mémoriser ces qx et lx pour des âges respectifs. J'espère avoir été suffisamment clair? autrement n'hésitez pas à me redemander.
 
Bonjour Melanie et Dan, bonjour à toutes et à tous,

Je suis comme Dan et je ne comprends pas très bien ce que tu souhaites faire :unsure:

Toutefois, j'ai testé le code qui suit (il fonctionne mais répond-il à tes attentes ??) :

Code:
Dim qx(106)
Dim lx(106)

Public Sub Init()
    'les tables sont lues sur les champs et tranférées en variables-tableaux
Dim x As Integer, s As Integer
    'Dim Table As Object
    'Set Table = CurrentDb.OpenRecordset('EKMF_95', dbOpenDynaset)

  For x = 0 To 105
    If x > 15 Then
      qx(x) = Worksheets('Feuil1').Cells(x - 15, 2)
      lx(x) = Worksheets('Feuil1').Cells(x - 15, 3)
    End If
  Next x
        
End Sub

Public Function px(x) As Variant
'
  px = 1 - qx(x)
End Function

Tiens-nous au courant.

Amicalement
Charly

édition : tu enlèves du code tout ce qui ressemble à des '&nb sp;'.

Message édité par: Charly2, à: 17/11/2005 15:36

Message édité par: Charly2, à: 17/11/2005 15:37
 
Je te remercie Charly même si ce n'est pas ce que je recherchais. En effet, je m'explique, la colonne A désigne les x(âges), la colonne B qx(x) qui sont les taux de mortalité, fonction de x(âges) . A présent ce que je voudrais c'est créer une fonction sur la colonne D qui me calcule qqch comme par ex. 1-qx(x) en désignant les x(âge) correspondants de la colonne A dans la fonction. Or le fichier que j'ai reçu me donne des 1 partout. Merci encore

Melanie
 
Bonjour Charly

Public Function dx(x As Integer) As Double
'
dx = qx(x)

End Function

J'ai ajouté ceci et j'ai remarqué que cela me donnait 0 quel que soir le qx(x) or ça de3vrait m'afficher le qx(x) de la colonne B. Par exemple qx(2) = 0,00020. Merci
 
Re,

Le problème des fonctions personnalisées vient du fait qu'elles ne se recalculent pas de manière automatique.

Pour le fichier joint, il fallait d'abord initialiser les qx en appuyant sur le bouton Init, mais bon, je pense que c'est inutile à la lumière de tes explications.

En effet, pourquoi utiliser du code quand on peut faire autrement :whistle:

En D2, tu entres [b]=1-B2[/b] (B2 correspond bien à q(17) puisqu'il se trouve sur la même ligne, non ?). Dans ton cas, les fonctions ne sont pas utiles...

Petite précision sur ton dernier post : c'est qx(17) qui donne le résultat escompté, donc dx(17) ou dx(A2), mais toujours après avoir initialisé ton tableau.

Voilà

Amicalement
Charly
 
J'imagine bien Melanie, mais dans les situations où une formule de feuille de calcul suffit, il est peut-être plus simple de l'utiliser.

D'autre part, en ayant quelques formules, une modification dans ta feuille entraînera un recalcul automatique de toutes les formules (y compris tes fonctions personnalisées), ce qui n'est pas le cas lorsqu'on n'utilise que des fonctions personnalisées. 😉

@+
Charly
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour