Escolha do MES:
EXCELer
Google



VOTE EM MIM:
Top Blogs

Arquivos:

-Pagina Actual-


2009-11-12

243: Excel - Introduction to SQL tutorial for Excel users

Sam Howley (http://www.querycell.com/), enviou-me um e-mail, referindo um artigo que escreveu para ajudar os utilizadores do Add-In que ele criou: Excel Add-In QueryCell, o qual podem ler em Introduction to SQL tutorial for Excel users. QueryCell permite a utilização de SQL no Excel.

Aproveitem a leitura, porque é interessante.

2009-11-09

242: Excel – Alterar o número de UNDO nas várias versões de Excel

image

2009-11-04

241: Excel – Aprender a usar mapas e coordenadas no Excel

Há dias um assíduo leitor do EXCELer, enviou-me um link relacionado com o título do presente post.

Pelo seu interesse, aqui o deixo, para vosso conhecimento:

Aprenda a usar mapas e coordenadas no Excel

2009-10-01

240: Microsoft Excel MVP 2009/2010 – 5º ano consecutivo!!!! URRA!!!

image

2009-09-20

239: Excel – Dicionário de Funções do Excel

Numa das minhas deambulações pelos excelentes bloggers do Excel, fui parar ao blog do MVP Glenn Lloyd - “General Office topics”: http://argeeoffice.spaces.live.com/.

Aí vi a alusão a um link para Peter Noneley's site, que contém uma ferramenta de trabalho para o Excel, denominada “Dicionário de Funções do Excel”. Como o download é grátis, aqui deixo a referência a este link, uma vez que, tenho a certeza, vão gostar do que vão ver.

2009-08-18

238: VBA – Colocar o Resultado Total no Rodapé

Se pretendermos colocar o resultado total, por exemplo de uma soma, no rodapé de uma impressão, podemos utilizar o seguinte código:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

    Dim wkSht As Worksheet

    For Each wkSht In Me.Worksheets

        With wkSht.PageSetup
            .CenterFooter = "TOTAL: " & Format(Range("M55").Value, " #,##0.00")
        End With

    Next wkSht

End Sub

Nota: Este código deverá estar no workbook module (Este Livro ou This Workbook)

 

Tópicos relacionados:

2009-08-15

237: VBA – A Propriedade PageSetup

A propriedade PageSetup é utilizada para obter o objecto PageSetup, o qual contém todos os atributos do setup de uma folha – margem esquerda, fim de página, tamanho da folha, cabeçalho, rodapé, etc.

Exemplo:

 
'---------------------------------------------------------------------------------------
' Procedure : Workbook_BeforePrint
' DateTime  : 15-08-2009 00:15
' Author    : JorgeRod
' Purpose   :
'---------------------------------------------------------------------------------------
'
Private Sub Workbook_BeforePrint(Cancel As Boolean)
 
    Worksheets("Folha1").PageSetup.LeftHeader = Format(Date, "d mmmm,yyyy")
 
End Sub
 
 
Tópicos relacionados: 

 

2009-05-19

236: VBA – Nome do Tabulador baseado numa célula e vice-versa.

Se pretendermos que o tabulador de uma Worksheet obtenha o nome que colocarmos em determinada célula, podemos utilizar o seguinte código ( créditos para Juan Pablo Gonzalez ):

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" Then Sh.Name = Target
End Sub

E se pretendermos fazer exactamente o contrário, ou seja, obter numa determinada célula o nome do tabulador?

Então, aproveitando o código anterior, podemos alterá-lo para que o resultado seja o pretendido:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Range("$A$1") = Sh.Name
End Sub

2009-03-23

235: VBA – Copy.Before, WorkSheets.Count, Application.DisplayAlerts & For… Next

Há dias, num grupo de discussão de Excel, foi colocada a seguinte questão (adaptada):

Pressupostos:
- Tenho uma folha de cálculo "Clientes" com uma lista de clientes;
- Tenho uma folha de cálculo "Modelo" que é um modelo;

 
Problema:
- preciso criar folhas de cálculo iguais à folha "Modelo", mas com os nomes constantes da lista de clientes da folha "Clientes".

Alguém me pode ajudar?

 

Tomemos o seguinte exemplo ilustrativo:

O que temos:

a) Uma folha, denominada “Modelo”

image

b) Uma folha, denominada “Clientes”

image

O que pretendemos, será ter tantas folhas, quantos os nomes que se encontram na folha Clientes, com o nome de cada um deles no tabulador, mas com o conteúdo da folha “mestra” - “Modelo”.

Para uma melhor ilustração, suponhamos que dos 18 nomes, apenas pretendemos obter 6 folhas (de A1:A6), ou seja, de “Manuel a Jorge”. Então, o resultado seria:

 

image

Ou seja, todas as 6 folhas, criadas e já renomedas com os nomes pretendidos, teriam como conteúdo, o conteúdo da folha “Modelo”.

O Código, que executaremos em primeiro lugar e que dará para criar o número de folhas pretendido:

Private Sub Copia_Modelo()

    Dim sNum As Integer
    On Error Resume Next

    sNum = InputBox("Quantos Clientes?")

    For i = sNum To 1 Step -1
        
        Sheets("Modelo").Select
        Sheets("Modelo").Copy Before:=Sheets(1)

    Next

    Sheets("Clientes").Select
End Sub


Agora o código que executaremos em 2º lugar e que renomeará as folhas criadas anteriormente, com os nomes correspondentes ao número de clientes que estabelecemos com o Código anterior:

Private Sub Renomear_Folhas()


    On Error Resume Next


    For i = 1 To Worksheets.Count - 2
        Sheets(i).Name = Worksheets("Clientes").Cells(i, 1).Value
    Next i


End Sub

 

Por último, o Código que, por uma questão de comodidade, dá para apagar todas as folhas anteriormente criadas e renomeadas, ficando sempre e só, as folhas “Modelo” e “Clientes”:

Sub Delete_Sheets()


    Dim sNum As Integer
    On Error Resume Next

    Application.DisplayAlerts = False

    sNum = Worksheets.Count - 2

    For i = sNum To 1 Step -1
        Sheets(1).Select
        Sheets(1).Delete
    Next


    Application.DisplayAlerts = True

    Sheets("Modelo").Select

End Sub


Nota final: As folhas “Modelo” e “Clientes”, deverão ficar sempre na sequência em que se encontram no exemplo, ou seja, as duas últimas, à direita.

 

Tópicos relacionados:

2009-03-14

234: Ainda sobre o título anterior (216). Função É.ERRO()

A pergunta original, continha algo diferente, ou seja, dependia o resultado com base na junção de 2 critérios: freguesia e sexo:

“Gostaria de saber qual a fórmula  para calcular o valor do peso do sexo masculino da freguesia de Bustos que mais se repete”.

Neste caso e para o resultado desejado, então o Código, poderia ser assim, tomando como células de controlo as células G2 (sexo) e H2 (Freguesia), como no exemplo do post anterior:

'----------------------------------------------------------
' Procedure : Validar_Click
' DateTime  : 14-03-2009 18:51
' Author    : Jorge Rodrigues
' Purpose   : Atribuir valores no Range L1:L20 retirados
'           : do Range D8:D17, a que correspondam,
'           : no Range C8:C17, o nome da Freguesia em H2
'           : e Sexo (M/F) em G2
'----------------------------------------------------------
'
Private Sub Validar_Click()
    Dim spRange As Range
    Dim cell As Range
    Dim nome As Variant
    Dim nome1 As Variant
    Dim nome2 As Variant
    Dim number As Integer

    number = 0
    nome = Range("H2").Value
    nome1 = Range("G2").Value
    nome2 = nome & nome1
    Range("L1:L20").ClearContents

    Set spRange = Range("C8:C17")
    For Each cell In spRange
        number = number + 1
        If cell & cell.Offset(0, -1) = nome2 Then
            Range("L" & number).Value = cell.Offset(0, 1)
        End If
    Next cell

End Sub

 

Já agora e para não aparecer, porventura, aquela sigla indesejável (#N/D), em I2, caso não exista qualquer repetição de valor, de acordo com os dois critérios, então a fórmula naquela célula, poderia ser assim:

=SE(É.ERRO(MODA(L1:L20));"";MODA(L1:L20))

Tópicos relacionados:


Quem esteve aqui?