[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. 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
  2. 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
  3. 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. 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. 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. 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