VBA- Cacul d'une Médiane - VB/VBA/VBS - Programmation
Marsh Posté le 05-08-2015 à 20:57:44
Bonjour,
.Function = WorksheetFunction.Median("emploi_salaire_6m" )
?
+ merci d'utiliser la balise cpp pour mettre du code, une ligne ça passe, plusieurs ça devient indispensable.
Cordialement, Forum.
Marsh Posté le 06-08-2015 à 00:55:47
Bonjour,
Merci, j'utiliserai prochainement la balise ccp pour mettre mes codes.
Mais J'ai mis .Function=WorksheetFunction.Median("emploi_salaire_6m" ) dans ma fonction mais çà affiche toujours le message d'erreur "Impossible de lire la proprièté Median dans WorksheetFunction.
Marsh Posté le 06-08-2015 à 18:42:05
Oui, en même temps tu n'utilises pas les bons paramètres dans ta fonction, il faut spécifier la liste des valeurs en paramètre de la fonction median. Du coup je ne pense pas que tu puisses l'utiliser ici.
PS : tu peux éditer ton message pour rajouter les balises.
Marsh Posté le 06-08-2015 à 20:42:06
Bonjour,
Ci-dessous mon code (j'ai essayé de mettre les balises...)
je veux sortir le TCD avec les 4 colonnes (Moyenne, Min, Max et Median) sur le calcul de la variable salaire en fonction de mes deux autres variables (le règime de la formation et la spécialité) :
Code :
|
Marsh Posté le 05-08-2015 à 18:12:09
Bonjour Forum,
Je me suis confronté à un problèe de calcul du salaire médian. Au fait, je fais des TCDs et dans celui-ci, je veux sortir 4 colonnes (Moyenne, Min, Max et Median) sur le calcul de la variable salaire en fonction de mes deux autres variables (catégorie et sexe)
Mon code marche bien si je supprime la partie de calcul de la médiane. je ne sais pas pourquoi la fonction " .Function=xlMedian" ne marche pas....
Je vous met ci-joint un aperçu de ma sortie du TCD que je souhaite avoir sauf que si je supprime la partie du calcul de la médiane cela marche super bien. (ne tenez pas compte de la mise en forme, elle a été faite manuellement...)
Je vous remercie d'avance.
Mon CODE :
Option Explicit
Dim wsData As Worksheet, wsPT As Worksheet
Dim rngData As Range
Dim ptCache As PivotCache
Dim pt As PivotTable
Sub TCDautomatique3_Bouton2_Cliquer()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wsData = Worksheets("Données3" )
Set rngData = wsData.Cells(1).CurrentRegion
Set wsPT = Worksheets("TCD automatique3" )
'Suppression de tous les TCD existants dans la feuille
For Each pt In wsPT.PivotTables
pt.TableRange2.Clear
Next pt
With wsPT
Set ptCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, rngData, 4)
Set pt = ptCache.CreatePivotTable(wsPT.Range("B12" ), "TCD_1", , 4)
With Sheets("TCD automatique3" ).Activate
Range("B10" ) = "Les salaires annuels bruts en kilo euros par type de formation "
Range("B10" ).Font.Size = 18
Range("B10" ).Font.Italic = True
Range("B10" ).Font.Name = "Arial"
End With
With pt
.ManualUpdate = True
'Ajout d'une Ligne Régime de formation
With .PivotFields("regime_6m" )
.Orientation = xlRowField
.Position = 1
End With
'Ajout d'une Ligne spécialité
With .PivotFields("specialite_6m" )
.Orientation = xlRowField
.Position = 2
End With
' Calcul du saliare moyen
With pt.PivotFields("emploi_salaire_6m" )
.Orientation = xlDataField
.Function = xlAverage
.Position = 1
.NumberFormat = "0.00"
.Name = "Moyenne"
End With
'Calcul du salaire Min
With pt.PivotFields("emploi_salaire_6m" )
.Orientation = xlDataField
.Function = xlMin
.Position = 2
.NumberFormat = "0.00"
.Name = "Min"
End With
' Calcul du salaire Max
With pt.PivotFields("emploi_salaire_6m" )
.Orientation = xlDataField
.Function = xlMax
.Position = 3
.NumberFormat = "0.00"
.Name = "Max"
End With
' Calcul du salaire Median
With pt.PivotFields("emploi_salaire_6m" )
.Orientation = xlDataField
.WorksheetFunction.Median ("emploi_salaire_6m" )
.Position = 4
.NumberFormat = "0.00"
.Name = "Mediane"
End With
.ManualUpdate = False
End With
End With
Set pt = Nothing
Set ptCache = Nothing
Set rngData = Nothing
Set wsPT = Nothing: Set wsData = Nothing
End Sub