Erreur type 1004
Résolu
Prunett
Messages postés
31
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour,
Je souhaite calculer la température moyenne pour 24h et ça sur toute l'année. J'ai réalisé le programme suivante sur Excel
Le problème c'est que sur la ligne de code
j'ai une erreur de type 1004, "Erreur définie par l'application ou l'objet"
Je n'arrive pas à résoudre ce problème.
En vous remerciant d'avance,
Je souhaite calculer la température moyenne pour 24h et ça sur toute l'année. J'ai réalisé le programme suivante sur Excel
Sub temp_ext_moy_24h()
Dim Derlig As Integer, Nbre_jours As Integer
Dim Lig As Integer, Jour As Integer, T_jour, T_temp, tab_temp_moy_ext
'Température extérieure moyenne sur 24h
'initialisations
Application.ScreenUpdating = False
'nettoyage tableau résultats
Worksheets("Données inter PMV et DR").Range("AN2:AN8760").ClearContents
Derlig = Worksheets("Données inter PMV et DR").Columns("A").Find("*", , , , , xlPrevious).Row
Nbre_jours = (Derlig - 1) / 24 ' prendre en compte année bissectiles
ReDim tab_temp_moy_ext(Nbre_jours, 3) 'champ2=jour, 1=mois 3:maxi,4: mini
'------Mémorisation de la température moyenne extérieure
For Lig = 2 To Derlig Step 24
Jour = Jour + 1
T_jour = Worksheets("Données inter PMV et DR").Range(Cells(Lig, "A"), Cells(Lig, "B"))
T_temp = Worksheets("Données inter PMV et DR").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.Average(T_temp)
Next
'-----Restitutions des mesures
Worksheets("Données inter PMV et DR").Range("AN2").Resize(UBound(tab_temp_moy_ext), 3) = tab_temp_moy_ext
End Sub
Le problème c'est que sur la ligne de code
T_jour = Worksheets("Données inter PMV et DR").Range(Cells(Lig, "A"), Cells(Lig, "B")),
j'ai une erreur de type 1004, "Erreur définie par l'application ou l'objet"
Je n'arrive pas à résoudre ce problème.
En vous remerciant d'avance,
A voir également:
- Erreur type 1004
- Type de ram - Guide
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
2 réponses
Bonjour,
Selon toi, que doit contenir la variab le T_jour ?
Si c'est le contenu d'une cellule ou bien correspondre à un RANGE ?
Si c'est un range il faut écrire :
Selon toi, que doit contenir la variab le T_jour ?
Si c'est le contenu d'une cellule ou bien correspondre à un RANGE ?
Si c'est un range il faut écrire :
Dim T_jour as Range SET T_jour = Worksheets("Données inter PMV et DR").Range(Cells(Lig, "A"), Cells(Lig, "B"))
Je viens de tester ... aucun souci chez moi :
Si ça bloque encore chez toi ... postes nous un fichier Excel d'exemple contenant ta macro (sur un site comme cijoint.com par exemple) et donnes nous le lien pour le récupérer.
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") 'Température extérieure moyenne sur 24h 'initialisations Application.ScreenUpdating = False 'nettoyage tableau résultats oSh.Range("AN2:AN8760").ClearContents Derlig = oSh.Columns("A").Find("*", , , , , xlPrevious).Row Nbre_jours = (Derlig - 1) / 24 ReDim tab_temp_moy_ext(Nbre_jours, 3) '------Mémorisation des températures maxi/mini par jour/mois 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.Average(T_temp) Next '-----Restitutions des mesures oSh.Range("AN2").Resize(UBound(tab_temp_moy_ext), 3) = tab_temp_moy_ext End Sub
Si ça bloque encore chez toi ... postes nous un fichier Excel d'exemple contenant ta macro (sur un site comme cijoint.com par exemple) et donnes nous le lien pour le récupérer.
Pour éviter de devoir réécrire le nom de ta Feuille à chaque fois... tu ferais mieux de la déclarer tu début de ton code de cette façon :
et ensuite pour l'utiliser dans ton code :
Je ne sais pas bien si ça doit être une cellule ou bien correspondre à un RANGE. Pour moi ce serait un range, car je veux déclarer les variables de mon tableau.
Cependant si je suis ta méthode, lorsque je déclare , il m'indique que j'ai une erreur de compilation : déclaration existante dans la portée en cours.
Je débute en VBA, et certaines choses (un certain nombre) m'échappent encore.
il faut juste la remplacer par la mienne (même si ne pas spécifier le RANGE devrait fonctionner.. mais c'est moins propre...)
Après modification, j'ai toujours cette erreur de type 1004
Ne serait-ce pas sur l'autre : T_temp ??
(pour laquelle il faut appliquer la même chose ! )
Si le souci persiste.. reviens nous montrer ton code corrigé ...
NB : Merci d'ajouter le LANGAGE dans les balises de code (à savoir : basic )
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code