Interpolation température
Résolu
qwerty_213
Messages postés
32
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je souhaiterai écrire une macro VBA qui effectue une interpolation de température avec un [I]pas fixe d'1 heure[/I], à partir de données récupérées avec des [I]pas[/I] variables.
par exemple, je souhaite interpoler [COLOR="#FF0000"][33,2°C][/COLOR] et [COLOR="#FF0000"][35,2°C][/COLOR] cela donne une température moyennée entre les deux avec un pas d'une heure
Je souhaiterai écrire une macro VBA qui effectue une interpolation de température avec un [I]pas fixe d'1 heure[/I], à partir de données récupérées avec des [I]pas[/I] variables.
date heure T°C diff heure 13/07/2013 00:00:00 33,2 3 12/07/2013 21:00:00 35,2 3 12/07/2013 18:00:00 38,6 3 12/07/2013 15:00:00 40 3 12/07/2013 12:00:00 38,4 3 12/07/2013 09:00:00 33,2 3 12/07/2013 06:00:00 30,8 1 12/07/2013 05:00:00 30,8 2 12/07/2013 03:00:00 30,8 3 12/07/2013 00:00:00 32,6 1 11/07/2013 23:00:00 32,6 2 11/07/2013 21:00:00 34 3
par exemple, je souhaite interpoler [COLOR="#FF0000"][33,2°C][/COLOR] et [COLOR="#FF0000"][35,2°C][/COLOR] cela donne une température moyennée entre les deux avec un pas d'une heure
date heure T°C diff heure 13/07/2013 00:00:00 33,2 1 12/07/2013 23:00:00 33,8 1 12/07/2013 22:00:00 34,4 1 12/07/2013 21:00:00 35,2 1
A voir également:
- Interpolation température
- Temperature pc - Guide
- Temperature mac - Guide
- Quelle température pour desinfecter le linge - Guide
- Delta dore driver 520 réglage température - Forum Matériel & Système
- Chargement ralenti car faible temperature ✓ - Forum Samsung
5 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonsoir Et quelle est la question, qu'attends-tu du forum?
Quelle programme utilises-tu?
Quelle programme utilises-tu?
Bonjour qwerty_213,
Je te propose ce fichier Excel 2007.
< Ctrl >< e > => travail effectué ; vérifie si tous les
résultats sont bien conformes à ceux que tu attends.
< Alt >< F11 > pour aller sur Visual Basic, puis revenir
sur ta feuille Excel ; la macro est dans Module1.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)
Je te propose ce fichier Excel 2007.
< Ctrl >< e > => travail effectué ; vérifie si tous les
résultats sont bien conformes à ceux que tu attends.
< Alt >< F11 > pour aller sur Visual Basic, puis revenir
sur ta feuille Excel ; la macro est dans Module1.
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)
Bonjour,
Avec tes données, un exemple de ce que l'on peux faire :
https://www.cjoint.com/c/FLuvYgEBg8l
Tu cliques sur "Interpoler" et si tu mets plus de données à gauche, le résultat s’agrandit.
Avec tes données, un exemple de ce que l'on peux faire :
https://www.cjoint.com/c/FLuvYgEBg8l
Tu cliques sur "Interpoler" et si tu mets plus de données à gauche, le résultat s’agrandit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour le forum,
Voici le code VBA de mon fichier Excel 2007 de mon message #3 :
Vous pouvez lire aussi la réponse du demandeur.
Cordialement. :)
Voici le code VBA de mon fichier Excel 2007 de mon message #3 :
Option Explicit
Sub Essai()
Application.ScreenUpdating = False
Dim dateH As Double, dateX As Double, dlig As Long
Dim ligA As Long, ligB As Long, k As Byte, i As Byte
Dim T1 As Single, T2 As Single, DT As Single, T3 As Single
dlig = Range("F" & Rows.Count).End(xlUp).Row
If dlig > 1 Then Range([F2], Cells(dlig, 9)).ClearContents
ligA = 2: ligB = 2
Do While Cells(ligA, 1) <> ""
k = Cells(ligA, 4): If IsEmpty(Cells(ligA + 1, 1)) Then k = 0
Range(Cells(ligA, 1), Cells(ligA, 3)).Copy: Cells(ligB, 6).PasteSpecial -4163
If k > 1 Then
dateH = Cells(ligA, 1) + Cells(ligA, 2)
T1 = Cells(ligA, 3): T2 = Cells(ligA + 1, 3): DT = (T2 - T1) / k: T3 = T1
For i = 1 To k
ligB = ligB + 1: dateH = dateH - (1 / 24): dateX = Int(dateH)
Cells(ligB, 6) = dateX: Cells(ligB, 7) = dateH - dateX
T3 = T3 + DT: Cells(ligB, 8) = Format(T3, "0.0")
Next i
Else
ligB = ligB + 1
End If
ligA = ligA + 1
Loop
Range([I2], Cells(ligB - 1, 9)) = 1: [A1].Select
Application.CutCopyMode = False
End Sub
Vous pouvez lire aussi la réponse du demandeur.
Cordialement. :)