Jump to content
Sign in to follow this  
Luxo

privat Sub

Recommended Posts

Luxo

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
        If Target.Value <> "" Then
            Range("A11").Value = WorksheetFunction.Average(Range("A1:A10"))
        End If
    End If
End Sub

Algem me sabe dizer como faço para trabalhar com um privat Sub!Como é chamo este exemplo com uma macro?

Share this post


Link to post
Share on other sites
jpaulino

Fazes ALT+F11 para abrir o editor e depois duplo-click na worksheet que queres usar o código e usas esse código.

Share this post


Link to post
Share on other sites
Luxo

Mas entao quando carrego no Run Sub nao esta nenhuma macro a funcionar. basta por a formula na celula é?

Share this post


Link to post
Share on other sites
Luxo

já vi que esta a dar!obrigada lol não sabia que não era preciso macro para poder funcionar com esse código  lol

Share this post


Link to post
Share on other sites
jpaulino

Dessa forma funciona sempre que modificas um valor no range definido ;)

Share this post


Link to post
Share on other sites
Luxo

olha e este código funciona também numa macro?tipo eu tenho uma macro num ficheiro que me abre cria noutro ficheiro, tipo uma base de dados. e eu estou a colocar os valores numa células e queria que ele me calcula se a media de determinadas células e depois apagava esses valores das células mas mantinha os valores da media?fiz me entender?

Share this post


Link to post
Share on other sites
jpaulino

Numa macro podes calcular apenas a média utilizando:

Range("A11").Value = WorksheetFunction.Average(Range("A1:A10"))

Share this post


Link to post
Share on other sites
Luxo

Ya funciona numa macro normal, mas numa macro que abra outro ficheiro nao estou a conseguir, ou seja que va buscar valores que estao nas celulas desse ficheiro. por acaso nao sabes se da

Share this post


Link to post
Share on other sites
Luxo

Bons dias jpaulino

Olha naquela funçãoque me arranjas te

Range("A11").Value = WorksheetFunction.Average(Range("A1:A10"))

Porque é que se eu colocar assim:

oSheet1.Cells(3, 3).Value = WorksheetFunction.Average(oSheet.Cells(56, 7), oSheet.Cells(56, 9)

ele calcula a média mas conta me as células vazias?consegues me explicar?ou fazer algo do genero que so me fize se a média das celulas preenchidas?se puderes responde me?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.