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
- Delta dore driver 520 réglage température - Forum Matériel & Système
- Quelle température pour desinfecter le linge - Guide
- Chargement ralenti car faible temperature ✓ - Forum Samsung
5 réponses
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. :)