Bonjour,
Je débute avec VBA depuis environ 3 semaines et je n'ai aucune expérience de codage avant ça. Ce forum m'a déjà bien aidé à résoudre certaines difficultés, mais je bute aujourd'hui sur une erreur que je n'arrive pas à résoudre dans ma macro.
Je travaille sur une prédiction à court terme de la croissance et de la consommation d'animaux au sein d'un élevage, à partir de mesures quotidiennes issues d'un automate. Le modèle que j'utilise à besoin d'être initialisé à partir d'une première croissance (qui donne un ordre d'idée du potentiel de chaque animal et de sa tendance de croissance initiale). Je récupère donc les pesées quotidiennes de chaque animal pendant 7 jours, sans effectuer de calcul. Au 7ème jour, j'applique ensuite une soustraction entre deux prévisions successives du poids sur ces 7 derniers jours (formule Forecast, ou prévision sous Excel), afin d'avoir le différentiel moyen entre 2 jours (voir code). Je préfère ça plutôt que de faire la différence entre la moyenne J1 - J6 et la moyenne J2-J7, moins précise.
Pourtant, à certaines exécutions de ma macro, je bute sur une erreur 1004. Si je répète l'opération plusieurs fois, sur les mêmes données, l'erreur n’apparaît pas forcément. J'ai vérifié mon code et je ne comprends pas d'où pourrait provenir l'erreur, donc si quelqu'un à une idée...
Je préfère ne pas joindre le fichier concerné, compte tenu de sa taille et de la taille des macros, et aussi par ce que j'aimerais ne pas diffuser les informations qu'il contient.
Sub Test1()
Dim N1 As Integer
Dim yr, xr As Range
For N1 = 2 To NbAnimal + 1
Sheets("PoidsBrut").Range(Cells(3, N1), Cells(9, N1)).Interior.ColorIndex = 6
Set yr = Sheets("PoidsBrut").Range(Cells(3, N1), Cells(9, N1))
Set xr = Sheets("PoidsBrut").Range(Cells(3, 1), Cells(9, 1))
Sheets("PoidsBrut").Cells(10, N1) = Application.WorksheetFunction.Forecast(Sheets("PoidsBrut").Cells(4, 1), yr, xr) - Application.WorksheetFunction.Forecast(Sheets("PoidsBrut").Cells(3, 1), yr, xr)
Next
End Sub
La feuille "PoidsBrut" contient en colonne le numéro attribué à chaque animal (en ligne 2), et en ligne les dates par ordre croissant (lignes 3 à 9). Ce tableau est donc complété par la pesée de chaque animal pour chaque jour. Le format des données est bon, et il n'y a pas de valeurs manquantes.