Option Explicit
Sub CalculMoyVar()
Dim NbLig, NbCol, i, j As Integer
Dim Tot, Moyenne, Variance, Somme As Double
Dim ShtD As Worksheet
' Définir la feuille de destination
Set ShtD = Sheets("rend-var")
' Avec la feuille de données
With Sheets("BasesDonnees")
'nblig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
'nbcol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
' Trouver la dernière ligne et la dernière cellule
' sans utiliser 'Dernière cellule' qui peut être erronée
NbLig = .Range("A" & Rows.Count).End(xlUp).Row
NbCol = .Cells(1, Columns.Count).End(xlToLeft).Column
' Inscrire dans la feuille de destination
ShtD.Cells(1, 2) = NbLig - 1
ShtD.Cells(2, 2) = NbCol - 1
' Pour chaque colonne
For j = 2 To NbCol - 1
' Pour chaque ligne
For i = 2 To NbLig - 1
Tot = Tot + .Cells(i, j)
Moyenne = Tot / (NbLig - 1)
Somme = Somme + ((.Cells(i, j) - Moyenne) ^ 2)
Next i
Moyenne = Tot / (NbLig - 1)
Variance = Somme / (NbLig - 1)
' Inscrire les valeurs dans la feuille de destination
ShtD.Cells(3, j).Value = Moyenne
ShtD.Cells(4, j).Value = Variance
' Remettre à zéro les valeurs
Tot = 0: Somme = 0: Moyenne = 0: Variance = 0
Next j
End With
End Sub