Bonjour, Je souhaite faire des statistiques descriptives sur des rendements financiers. Pour cela je dispose d'une feuille Excel avec plusieurs colonnes.
L'objectif est alors de faire les statistiques pour chacune des 15 colonnes.
Mon problème est de réussir à parcourir toutes les colonnes.
Voici mon code
Sub stat()
Dim Plage_Rentabilité As Range
Dim feuille As Worksheet
Dim Nombre_Lignes, Numero_Lignes As Integer
Dim i As Integer
Dim j As Integer
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Je n'ai pas tout compris... mais essaie ceci :
Tu adaptes le nom des plages. '----------------------------------------------- Sub stat()
Dim Plage_Rentabilité As Range, C As Range, Col As Range Dim Ligne As Long, DerLig As Long
Application.ScreenUpdating = False With Worksheets("Feuil1") 'Nom feuille source de tes données DerLig = .Range("B:P").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Set Plage_Rentabilité = .Range("B2:P" & DerLig) End With With Worksheets("Feuil2") 'Feuille de destination des données .Range("A1") = "colonne1" .Range("B1") = "observation" .Range("C1") = "Moyenne" .Range("D1") = "Skweness" .Range("E1") = "Kurtosis" .Range("F1") = "Ecart-type" .Range("A1:F1").Font.Bold = "True" Ligne = 1 For Each Col In Range("B2:P2").Columns Ligne = Ligne + 1 .Cells(Ligne, 2) = WorksheetFunction.Count(Col) .Cells(Ligne, 3) = WorksheetFunction.Average(Col) .Cells(Ligne, 4) = WorksheetFunction.Skew(Col) .Cells(Ligne, 5) = WorksheetFunction.Kurt(Col) .Cells(Ligne, 6) = WorksheetFunction.StDev(Col) Next End With Application.ScreenUpdating = True End Sub '-----------------------------------------------
MichD -------------------------------------------- "lucho93" a écrit dans le message de groupe de discussion :
Bonjour, Je souhaite faire des statistiques descriptives sur des rendements financiers. Pour cela je dispose d'une feuille Excel avec plusieurs colonnes.
L'objectif est alors de faire les statistiques pour chacune des 15 colonnes.
Mon problème est de réussir à parcourir toutes les colonnes. Voici mon code
Sub stat()
Dim Plage_Rentabilité As Range Dim feuille As Worksheet Dim Nombre_Lignes, Numero_Lignes As Integer Dim i As Integer Dim j As Integer
Worksheets("Feuil2").Activate For i = 1 To Nombre_Lignes For j = 1 To 6 Cells(i + 1, j).Value = _ Tableau_resultat(i, j) Next j
Next i
End Sub
J'obtiens alors qu'une ligne de résultat au lieu de 15 pour chacune des colonnes. De plus seul "colonne" s'affiche pour ce qui est de mon tableau.
Merci pour votre aide.
Bonjour,
Je n'ai pas tout compris... mais essaie ceci :
Tu adaptes le nom des plages.
'-----------------------------------------------
Sub stat()
Dim Plage_Rentabilité As Range, C As Range, Col As Range
Dim Ligne As Long, DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille source de tes données
DerLig = .Range("B:P").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Set Plage_Rentabilité = .Range("B2:P" & DerLig)
End With
With Worksheets("Feuil2") 'Feuille de destination des données
.Range("A1") = "colonne1"
.Range("B1") = "observation"
.Range("C1") = "Moyenne"
.Range("D1") = "Skweness"
.Range("E1") = "Kurtosis"
.Range("F1") = "Ecart-type"
.Range("A1:F1").Font.Bold = "True"
Ligne = 1
For Each Col In Range("B2:P2").Columns
Ligne = Ligne + 1
.Cells(Ligne, 2) = WorksheetFunction.Count(Col)
.Cells(Ligne, 3) = WorksheetFunction.Average(Col)
.Cells(Ligne, 4) = WorksheetFunction.Skew(Col)
.Cells(Ligne, 5) = WorksheetFunction.Kurt(Col)
.Cells(Ligne, 6) = WorksheetFunction.StDev(Col)
Next
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------
MichD
--------------------------------------------
"lucho93" a écrit dans le message de groupe de discussion : iLqdnfUFQ-MghBbQ4p2dnAA@giganews.com...
Bonjour, Je souhaite faire des statistiques descriptives sur des rendements
financiers. Pour cela je dispose d'une feuille Excel avec plusieurs colonnes.
L'objectif est alors de faire les statistiques pour chacune des 15 colonnes.
Mon problème est de réussir à parcourir toutes les colonnes.
Voici mon code
Sub stat()
Dim Plage_Rentabilité As Range
Dim feuille As Worksheet
Dim Nombre_Lignes, Numero_Lignes As Integer
Dim i As Integer
Dim j As Integer
Tu adaptes le nom des plages. '----------------------------------------------- Sub stat()
Dim Plage_Rentabilité As Range, C As Range, Col As Range Dim Ligne As Long, DerLig As Long
Application.ScreenUpdating = False With Worksheets("Feuil1") 'Nom feuille source de tes données DerLig = .Range("B:P").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Set Plage_Rentabilité = .Range("B2:P" & DerLig) End With With Worksheets("Feuil2") 'Feuille de destination des données .Range("A1") = "colonne1" .Range("B1") = "observation" .Range("C1") = "Moyenne" .Range("D1") = "Skweness" .Range("E1") = "Kurtosis" .Range("F1") = "Ecart-type" .Range("A1:F1").Font.Bold = "True" Ligne = 1 For Each Col In Range("B2:P2").Columns Ligne = Ligne + 1 .Cells(Ligne, 2) = WorksheetFunction.Count(Col) .Cells(Ligne, 3) = WorksheetFunction.Average(Col) .Cells(Ligne, 4) = WorksheetFunction.Skew(Col) .Cells(Ligne, 5) = WorksheetFunction.Kurt(Col) .Cells(Ligne, 6) = WorksheetFunction.StDev(Col) Next End With Application.ScreenUpdating = True End Sub '-----------------------------------------------
MichD -------------------------------------------- "lucho93" a écrit dans le message de groupe de discussion :
Bonjour, Je souhaite faire des statistiques descriptives sur des rendements financiers. Pour cela je dispose d'une feuille Excel avec plusieurs colonnes.
L'objectif est alors de faire les statistiques pour chacune des 15 colonnes.
Mon problème est de réussir à parcourir toutes les colonnes. Voici mon code
Sub stat()
Dim Plage_Rentabilité As Range Dim feuille As Worksheet Dim Nombre_Lignes, Numero_Lignes As Integer Dim i As Integer Dim j As Integer