Erreur d'exécution 1004 - Impossible de lire la propriété

Bonjour,

Je débute sur Excel VBA et je bloque sur une erreur d'exécution 1004 ! Arriveriez-vous à trouver la source du problème ?

J'ai joint une capture d'écran du problème !

Voici un copier collé de mon code :

Option Base 1

Public Plage_Rentas As Range

Sub Statistiques_Elémentaires()

Dim Tableau_Résultats() As Variant

Dim Ligne_Tableau As Integer

Dim Feuille As Worksheet

Nb_Actions = ThisWorkbook.Worksheets.Count - 1

ReDim Tableau_Résultats(Nb_Actions, 7)

Ligne_Tableau = 0

For Each Feuille In ThisWorkbook.Worksheets

If Feuille.Name <> " Statistiques " Then

Feuille.Activate

Call Calcule_Rentas

Ligne_Tableau = Ligne_Tableau + 1

Tableau_Résultats = Statistiques(Feuille, Tableau_Résultats, Ligne_Tableau)

End If

Next Feuille

Worksheets("Statistiques").Activate

Range("A2").Select

Range(Selection, Selection.Offset(Nb_Actions - 1, 6)).Value = Tableau_Résultats

End Sub

Function Calcule_Rentas()

Range("C3").Select

Set Plage_Rentas = Range(Selection, Selection.End(xlDown)).Offset(-1, 1)

Plage_Rentas.FormulaR1C1 = "=ln((R[1]C2 + RC3) / RC2)"

Calcule_Rentas = Plage_Rentas

End Function

Function Statistiques(Feuille, Tableau_Résultats, Ligne_Tableau)

Tableau_Résultats(Ligne_Tableau, 1) = Feuille.Name

Tableau_Résultats(Ligne_Tableau, 2) = Plage_Rentas.Cells.Count

Tableau_Résultats(Ligne_Tableau, 3) = WorksheetFunction.Average(Plage_Rentas)

Tableau_Résultats(Ligne_Tableau, 4) = WorksheetFunction.Median(Plage_Rentas)

Tableau_Résultats(Ligne_Tableau, 5) = WorksheetFunction.StDev(Plage_Rentas)

Tableau_Résultats(Ligne_Tableau, 6) = WorksheetFunction.Skew(Plage_Rentas)

Tableau_Résultats(Ligne_Tableau, 7) = WorksheetFunction.Kurt(Plage_Rentas)

Statistiques = Tableau_Résultats

End Function

Merci beaucoup !

Tom MARTIN

2017 07 27 19h25 58

Bonjour,

Sans fichier c'est compliqué

VBA te dit que tu as un problème avec la fonction "moyenne" de ta plage

Essaye d'appliquer manuellement la formule pour voir ce que te dit Excel via la formule

A+

Bonjour !

Merci pour cette réponse rapide ! Malheureusement, je n'arrive pas à te transmettre le fichier excel, il est trop gros !

Je t'envoie, ci-joint, des captures d'écran du dossier excel. C'est assez simple : Chacune des 4 premières feuilles correspond à une action et contient la date, le cours d'ouverture, les dividendes versés et le taux de rentabilité sur les 3 dernières années. (cf capture d'écran 1)

Le taux de rentabilité est censé être calculé par mon code VBA. Il le fait pour la première action mais pas pour les autres.... Le problème doit venir de là pour la moyenne (et donc d'un problème venant de "Calcule_Rentas " du code... ? ) !

La dernière feuille est celle où l'ensemble des statistiques calculées par le code est censé s'afficher.

Manuellement, qu'entends-tu par là ?

Merci encore,

Tom

2017 07 28 10h05 33 2017 07 28 10h05 51

Bonjour,

1)

Call Calcule_Rentas

Calcule_Rentas est une fonction, elle doit retourner une valeur que tu affectes à une variable.

a=Calcule_Rentas

2)

Function Statistiques(Feuille, Tableau_Résultats, Ligne_Tableau)
Tableau_Résultats(Ligne_Tableau, 1) = Feuille.Name
Tableau_Résultats(Ligne_Tableau, 2) = Plage_Rentas.Cells.Count
Tableau_Résultats(Ligne_Tableau, 3) = WorksheetFunction.Average(Plage_Rentas)
Tableau_Résultats(Ligne_Tableau, 4) = WorksheetFunction.Median(Plage_Rentas)
Tableau_Résultats(Ligne_Tableau, 5) = WorksheetFunction.StDev(Plage_Rentas)
Tableau_Résultats(Ligne_Tableau, 6) = WorksheetFunction.Skew(Plage_Rentas)
Tableau_Résultats(Ligne_Tableau, 7) = WorksheetFunction.Kurt(Plage_Rentas)

Statistiques = Tableau_Résultats

End Function

mets un point d'arrêt sur cette ligne :

Tableau_Résultats(Ligne_Tableau, 3) = WorksheetFunction.Average(Plage_Rentas)

à quoi est égal Plage_Rentas ? Ca doit être un range valide. Et pourquoi ne pas la passer en paramètre puisque s'en est un ?

eric

Rechercher des sujets similaires à "erreur execution 1004 impossible lire propriete"