Variable objet ou variable de bloc with non définie
Bonjour,
lors de lexecution de la macro suivante, un message d'erreur s'affiche en me disant ainsi "variable objet ou variable de bloc with non définie" ( pour la ligne Tableau_resultats(Ligne_tableau, 2) = Plage_Rentabilites.Cells.Count 'nombre des taux de rentabilités) sauriez vous m'aider à identifier le probléme ? (j'en profite pour vous demander si il y aurait, selon vous, la possibilité d'effectuer la fonction et les procédures en meme temps de telle sorte que tous s'affiche au meme instant ? j'ai essayé un "call statistiques" pour la fonction mais celui ci m'affiche : argument non facultatif) un grand merci à vous !! :)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| Option Base 1
Public Plage_Rentabilites As Range
Sub Statistiques_Rentabilites()
Dim Tableau_resultats() As Variant
Dim Ligne_tableau As Integer
Dim Feuille As Worksheet
Nb_Actions = ThisWorkbook.Worksheets.Count - 1
ReDim Tableau_resultats(Nb_Actions, 7)
Ligne_tableau = 0
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name <> "STATISTIQUES" Then
Feuille.Activate
Call Calcule_Rentabilites
Ligne_tableau = Ligne_tableau + 1
Tableau_resultats = Statistiques(Feuille, Tableau_resultats, Ligne_tableau)
End If
Next Feuille
Worksheets("STATISTIQUES").Activate
Range("A2").Select
Range(Selection, Selection.Offset(Nb_Actions - 1, 6)).Value = Tableau_resultats
End Sub
'Calcul des taux de rentabilités
Sub Calcule_Rentabilites()
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name <> "STATISTIQUES" Then
Feuille.Activate
Dim Plage_Rentabilites&
'jusqu'à la derniere ligne non vide
Plage_Rentabilites = Cells(Rows.Count, 1).End(xlUp).Row
Columns(7).Delete '<- ligne à supprimer aprés le test
With Range("G1")
.Value = "Taux de rentabilité": .Interior.Color = 55: .Font.Bold = -1: .Font.Color = 255
End With
'formule
Range("G2").Resize(Plage_Rentabilites - 1) = "=ln((R[1]C2+RC3)/RC2)"
End If
Next Feuille
Worksheets("STATISTIQUES").Activate
End Sub
Function Statistiques(Feuille, Tableau_resultats, Ligne_tableau)
'mise en forme
Sheets("STATISTIQUES").Range("A1:G1").Interior.Color = 55
Sheets("STATISTIQUES").Range("A1:A7").Interior.Color = 55
Sheets("STATISTIQUES").Range("A1:G1").Font.Color = 255
Sheets("STATISTIQUES").Range("A1:A7").Font.Color = 255
Sheets("STATISTIQUES").Range("A1").Value = "Nombre des taux"
Sheets("STATISTIQUES").Range("B1").Value = "titres"
Sheets("STATISTIQUES").Range("C1").Value = "moyenne"
Sheets("STATISTIQUES").Range("D1").Value = "Mediane"
Sheets("STATISTIQUES").Range("E1").Value = "Ecart-type"
Sheets("STATISTIQUES").Range("F1").Value = "Skewness"
Sheets("STATISTIQUES").Range("G1").Value = "kurtosis"
Tableau_resultats(Ligne_tableau, 1) = Feuille.Name
Tableau_resultats(Ligne_tableau, 2) = Plage_Rentabilites.Cells.Count 'nombre des taux de rentabilités
Tableau_resultats(Ligne_tableau, 3) = WorksheetFunction.Average(Plage_Rentabilites) 'la moyenne
Tableau_resultats(Ligne_tableau, 4) = WorksheetFunction.Median(Plage_Rentabilites) ' la mediane
Tableau_resultats(Ligne_tableau, 5) = WorksheetFunction.StDev(Plage_Rentabilites) ' Ecart-type
Tableau_resultats(Ligne_tableau, 6) = WorksheetFunction.Skew(Plage_Rentabilites) ' la Skewness
Tableau_resultats(Ligne_tableau, 7) = WorksheetFunction.Kurt(Plage_Rentabilites) ' la kurtosis
Statistiques = Tableau_resultats
End Function |