[VBA Excel]

bonjour

voila j'avais deja poster un message sur ce sujet et j'ai un peu avancé mais un probleme resiste

plage = Range("e65536").End(xlUp).Address
Set plagecalcul = Range("e4:" & plage)
Range(plage).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Formula = "=average( plagecalcul)"

je dois calculer la moyenne d'une colonne en me basant sur la derniere ligne occupé

a partir de se morceau de code j'arrive a selectionner la plage qui dois intervenir dans la formule mais la ligne : ActiveCell.Formula = "=average( plagecalcul)" me renvoie ds la cellule : =moyenne(plagecalcul)

j'aimerai avoir a la place de plagecalcul les references des cellules

comment faire ???

merci de votre aide

6 réponses

  1. j'ai modifié une chose
    en dessous de Set plagecalcul = Range("e4:" & plage)
    j'ai mis

    r=plagecalcul.address

    mais ma formule me retourne =moyenne(7:7) c a dire la ligne ou dois etre insérer la formule
    0
    1. je ne vois pas pourquoi tu veux gèrer la dernière formule
      occupée
      la fonction average ne prend en compte que les formules
      non nulles et numériques
      il suffit de mettre dans ta cellule
      ActiveCell.Formula = "=average( e4:e65536)"

      0
      1. par je ne connais pas la dernier ligne
        par exemple je saisie 10 lignes

        quand je clic sur le bouton
        la 1er cellule vide en dessous des 10 valeurs et selectionner
        ds cette cellule est calculer la moyenne des 10 valeurs

        si je saisie 20 lignes la cellule vide en dessous est selectionner et la formule dois calculer la moyenne des 20

        voila pourquoi je ne peut pas spécifier une plage au départ
        0
        1. mais si tu peux
          tu connais la cellule de départ
          par exemple e3
          tu ne peux exceder e65536
          si tu demandes moyenne(e3:e65536)
          excel ne calculera que les cellules comportant une valeur numérique
          les cellules vides (empty) ne sont pas prises pour zero
          0
          1. oui mais la formule je ne la met en en (e65536)

            si ma formule dois se trouver en e20 excel ne prendra pas la plage (e4:e65536) sinon ca retourne une reference circulaire
            0
            1. Hello antic80,

              Je suppose que tes nombres sont en colonne 1 de Feuil1.
              Ligne = Sheets("Feuil1").Cells(65536, 1).End(xlUp).Row
              Cells(Ligne, 1).Offset(1, 0).Value = Application.WorksheetFunction.Average(Range(Cells(1, 1), Cells(Ligne, 1)))


              Armojax.
              0
          2. Bonjour,
            Mes macros tourne seulement sur certain Pc et sur d'autre j'obtiens une compile error. Quelqu'un peut-il m'aider?

            Voici l'erreur que j'obtiens:

            Can't find Object or Library.

            Ceci ce produit uniquement sur certain Pc.

            Merci pour aide.

            Paolo
            0
            1. Bonjour Paolo,

              Par défaut sous Visual Basic pour Excel, tu as les librairies :
              - Visual Basic for Applications
              - Microsoft Excel nn.n Object Library (nn.n = 10.0, par exemple)

              Selon ce que tu fais avec tes macros (liaisons avec d'autres applications Microsoft, etc.) tu peux avoir besoin de librairies supplémentaires, exemples :
              - OLE Automation
              - Microsoft Office nn.n Object Library
              ...

              Sous VBA, va dans : Outils/Références... et coche les librairies supplémentaires dont tu as besoin.
              Armojax.
              0