aidez moi à faire une macro sous visual basic :-(((((((((((( - VB/VBA/VBS - Programmation
Marsh Posté le 29-04-2002 à 15:40:28
Fait péter un screenshot de tes tableaux, un de ta courbe et enfin un exemple de formule arithmétique pour calculer l'aire entre 2 courbe stp.
Marsh Posté le 29-04-2002 à 17:41:34
et la formule arithmétique : 1/2.somme(xi+1 - xi-1)yi
j'en suis la (avec de l'aide) et ça bloque
Sub variations_de_stock()
'
' variations_de_stock Macro
' calcul des variations de stock par période de temps
'
'
Const Feuille_Lect = "DB"
Const Feuille_Ecrire_1 = "aires"
Const nombre_de_dates_de_mesure = 7
Const nombre_de_mesure_en_profondeur = 15
Dim tableau(1 To nombre_de_mesure_en_profondeur, 1 To nombre_de_dates_de_mesure) As Double
Dim profondeur As Integer
Dim humidite As Integer
Dim aires As Variant
Sheets(Feuille_Lect).Select
For profondeur = 1 To nombre_de_mesure_en_profondeur
For humidite = 1 To nombre_de_dates_de_mesure
tableau(profondeur, humidite) = Cells(profondeur + 3, humidite + 3).Value
Next
Next
For profondeur = 0 To UBound(tableau)
For humidite = 0 To UBound(tableau)
ici ça bloqueaires = aires + (tableau((profondeur), (humidite + 1)) - tableau((profondeur), (humidite - 1))) * tableau((profondeur + 1), (humidite)) / 2
Next
Next
Sheets(Feuille_Ecrire_1).Select
For profondeur = 1 To nombre_de_mesure_en_profondeur
For humidite = 1 To nombre_de_dates_de_mesure
Cells(profondeur, humidite).Value = aires(profondeur, humidite)
Next
Next
End Sub
[jfdsdjhfuetppo]--Message édité par opengeol le 29-04-2002 à 17:44:31--[/jfdsdjhfuetppo]
Marsh Posté le 29-04-2002 à 19:33:54
opengeol a écrit a écrit : For profondeur = 0 To UBound(tableau,1) For humidite = 0 To UBound(tableau,2) ici ça bloqueaires = aires + (tableau((profondeur), (humidite + 1)) - tableau((profondeur), (humidite - 1))) * tableau((profondeur + 1), (humidite)) / 2 Next Next |
avec les modifs en rouge, ça devrait marcher.
Regarde l'aide de VB à propose de Ubound pour plus d'infos.
Marsh Posté le 29-04-2002 à 19:55:44
modif en rouge faites
mais ça bloque tjs au même endroit
c chiant ce truc!
Marsh Posté le 01-05-2002 à 13:20:41
si personne ne sait d'ici demain je ferai pu de up, promi
Marsh Posté le 06-05-2002 à 00:44:27
Si t'as pas trouvé, envoie-moi ta feuille, je vais y jeter un oeil.
Marsh Posté le 07-05-2002 à 20:44:00
For profondeur = 0 To UBound(tableau)
For humidite = 0 To UBound(tableau)
ici ça bloqueaires = aires + (tableau((profondeur), (humidite + 1)) - tableau((profondeur), (humidite - 1))) * tableau((profondeur + 1)((, (humidite)) / 2
Next
Next
je pense avoir trouvé :
For profondeur = 0 To UBound(tableau)
en mettant profondeur +1,kan t enfin de tableau(ubound(tableau)), ca doit foirer kar profondeur et en dehors de la limite du tableau !t'as meme pas un emssage d'erreur?
Marsh Posté le 29-04-2002 à 14:40:50
donc j'ai un tableau avec dans la première colonne des profondeurs, et dans les colonnes d'après j'ai les mesures d'humidités faite à plusieurs dates (donc plusieurs colonnes)
j'ai fait des courbes (profondeur/humidité) et je dois calculer l'aire entre les deux courbes (en fait ya plein de courbes et je fais des calculs d'aires en en choississant 2)
AIDEZ-moi please je sais vraiment po comment m'y prendre, on m'a coller sur visual basic alors que je m'y connais même pas!!! I need your help
ps: voila le peu que j'ai fais, mais ya encore aucun calcul la dedans !
Sub variations_de_stock()
'
' variations_de_stock Macro
' calcul des variations de stock par période de temps
'
'
Const nombre_de_dates_de_mesure = 7
Const nombre_de_mesure_en_profondeur = 15
Dim tableau(1 To nombre_de_mesure_en_profondeur, 1 To nombre_de_dates_de_mesure) As Double
Dim profondeur As Integer
Dim humidite As Integer
For profondeur = 1 To nombre_de_mesure_en_profondeur
For humidite = 1 To 3
tableau(profondeur, humidite) = Cells(profondeur + 3, humidite + 4).Value
Next humidite
Next profondeur
End Sub
si je suis pas clair demander des précisions.....
---------------
i'am just a geo-logue