Insersion Moyenne par VBA

Ch3ayba

XLDnaute Junior
Bonjour,

Dans l'exemple ci-joint j'aimerai inserer la colonne Overlla FA m-1 par VBA, mais en vain j'ai tout essayé :s.

est ce que quelqu'un pourrais m'aider svp. a savoir que le nombre de ligne est variable donc j'aimerai savoir qu'est ce que je peux prendre comme indicateur ?

Merci d'avance.
 

Pièces jointes

  • Exemple.xls
    23.5 KB · Affichages: 64
  • Exemple.xls
    23.5 KB · Affichages: 68
  • Exemple.xls
    23.5 KB · Affichages: 68

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insersion Moyenne par VBA

Bonjour Ch3ayba, bonjour le forum,

J'ai pas vraiment compris ce que tu voulais. La macro ci-dessous place la formule de MOYENNE en E2 en fonction du nombre de lignes. Est-ce que cela te convient ?
Code:
Sub Macro1()
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Range("A65536").End(xlUp).Row 'définit la dernière ligne
    'place la formule en E2
    .Range("E2").Formula = "=AVERAGE(M" & dl & ",AC" & dl & ",AS" & dl & ",BI" & dl & ",BY" & dl & ")"
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 

Ch3ayba

XLDnaute Junior
Re : Insersion Moyenne par VBA

Bonjour Robert,

Merci pour votre réponse. ça me va. mais supposon maintenant que mon nombre de colonnes change et que j 'ai envie de faire la moyenne pour l'ensemble des colonnes quie porte le nom de M-1 FA. est ce que c'est faisable pour le biais d'une somme si. ??? merci d'avance pour votre retour :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Insersion Moyenne par VBA

Bonsoir Ch3ayba, bonsoit le forum,

Je te propose la macro ci-dessous :
Code:
Sub Macro1()
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
Dim tb() As Byte 'déclare le tableau de variables tb
Dim x As Byte 'déclare la variable x (Incrément)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim s As Double 'déclare la variable s (Somme)
 
'*********************************
'récupération du numéro de colonne
'*********************************
'boucle sur toutes les cellules editées cel de la ligne 7
For Each cel In Range("A7:" & Range("IV7").End(xlToLeft).Address(0, 0))
    If cel.Value = "M-1 F.A" Then 'condition : si la valeur de la cellule est "M-1 F.A"
        ReDim Preserve tb(x) 'redimensionne le tableau de valeur tb
        tb(x) = cel.Column 'attribut une variable indexée au tableau tb
        x = x + 1 'incrémente la variable x
    End If 'fin de la condition
Next cel 'prochaine cellule de la ligne 7
 
'********************
'calcul de la moyenne
'********************
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Range("A65536").End(xlUp).Row 'définit la dernière ligne
    For x = 0 To UBound(tb) 'boucle sur toutes les variables du tableau
        s = s + .Cells(dl, tb(x)).Value 'définit la somme
    Next x 'prochaine variable du tableau
 
    .Range("E2").Value = s / (UBound(tb) + 1) 'place la moyenne
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 

Statistiques des forums

Discussions
312 497
Messages
2 088 984
Membres
103 998
dernier inscrit
Gotteland