- mer. 29 avr. 2015 18:09
#162505
Bonjour,
Dans le cadre d'un projet, je dois calculer la moyenne des températures extérieures par jour pour toutes l'année.
Je suis débutante en VBA et j'avais pensé au code suivant :
Cependant, j'ai plusieurs problèmes :
- J'ai un fichier où il y a déjà pas mal de macro et lorsque je lance cette macro, Excel m'indique une Erreur de type 1004 : La méthode 'Range' de l'objet 'Worksheet" a échoué alors que si je la teste dans un fichier où il n'y a aucune macro celle ci fonctionne
- Je n'arrive pas à avoir la moyenne pour chaque jour. Je pense qu'il y a un problème dans ma ligne de code :
En vous remerciant d'avance,
Dans le cadre d'un projet, je dois calculer la moyenne des températures extérieures par jour pour toutes l'année.
Je suis débutante en VBA et j'avais pensé au code suivant :
Code : Tout sélectionner
Sub temp_moy_24h()
Dim Derlig As Integer, Nbre_jours As Integer
Dim Lig As Integer, Jour As Integer, tab_temp_moy_ext
Dim T_jour As Range
Dim T_temp As Range
Dim oSh As Worksheet
Set oSh = Worksheets("Données inter PMV et DR")
For Lig = 2 To Derlig Step 24
Jour = Jour + 1
Set T_jour = oSh.Range(Cells(Lig, "A"), Cells(Lig, "B"))
Set T_temp = oSh.Range(Cells(Lig, "D"), Cells(Lig + 23, "D"))
tab_temp_moy_ext(Jour, 1) = T_jour(1, 1)
tab_temp_moy_ext(Jour, 2) = T_jour(1, 2)
tab_temp_moy_ext(Jour, 3) = Application.WorksheetFunction.Average(T_temp)
Next
'-----Restitutions des mesures
oSh.Range("AN2").Resize(UBound(tab_temp_moy_ext), 3) = tab_temp_moy_ext
End Sub
Cependant, j'ai plusieurs problèmes :
- J'ai un fichier où il y a déjà pas mal de macro et lorsque je lance cette macro, Excel m'indique une Erreur de type 1004 : La méthode 'Range' de l'objet 'Worksheet" a échoué alors que si je la teste dans un fichier où il n'y a aucune macro celle ci fonctionne
- Je n'arrive pas à avoir la moyenne pour chaque jour. Je pense qu'il y a un problème dans ma ligne de code :
Code : Tout sélectionner
Je sais que je pourrais utiliser un tableau dynamique, mais par la suite, je vais devoir exporter mes fichiers dans un autre logiciel donc je dois minimiser au minimum mes actions sur une feuille excel mais plutôt utiliser les modules.tab_temp_moy_ext(Jour, 3) = Application.WorksheetFunction.Average(T_temp)
En vous remerciant d'avance,