Lista das funções do Excel (em PowerBI)

Mostrar mensagens com a etiqueta macros. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta macros. Mostrar todas as mensagens

sexta-feira, 28 de dezembro de 2012

Macro para múltiplas substituições no Excel 2013

Há muito que estava prometido esta Macro em Excel, para executar múltiplas substituições. Irei utilizar a versão Excel 2013 mas funciona exatamente da mesma maneira em qualquer outra versão do programa.
Localizar e Substituir é uma operação comum e simples no Excel. A questão está no numero de substituições a fazer!
Quando a lista de substituições é extensa a função Localizar e Substituir não é suficiente.
Nesse sentido desenvolvi uma Macro que facilita imenso esse trabalho.
É muito simples de usar e os resultados são espantosos!

Vamos então instalar o código no Excel para podermos utilizar sempre que necessário.
Abra o Excel e pressione simultaneamente as teclas Alt+F11 de modo a abrir a janela do Editor de Visual Basic. Do lado esquerdo na janela dos projetos  localize o livro PERSONAL.XLSB*, abra um dos módulos ou insira um novo e cole o código abaixo.

Sub multisubstituir()
On Error Resume Next
    Dim myList, myRange
    Set myList = Application.InputBox(prompt:="Selecione a lista das substituições (2colunas)", _
    Title:="Tabela das Substituições", Type:=8)
    Set myRange = Application.InputBox(prompt:="Selecione as celulas a substituir", _
    Title:="Área a Substituir", Type:=8)
    For Each cel In myList.Columns(1).Cells
        myRange.Replace What:=cel.Value, _
        replacement:=cel.Offset(0, 1).Value, LookAt:=xlWhole
    Next cel
End Sub

Conforme a imagem seguinte.


sexta-feira, 7 de maio de 2010

Como incrementar automaticamente o valor de uma celula em Microsoft Excel

Hoje trago uma questão que foi-me colocada na semana passada.
A questão é:
Há alguma função em Excel 97/2003 ou Excel 2007 que permita incrementar o valor de uma celula sempre que abra um determinado livro? Suponhamos que na celula C2 eu tenho o nº da nota de encomenda e quero que crie a sequência numerica dos Numeros Naturais (1,2,3, … ,n), sempre que abrir esse livro.
Cada vez que é aberto é guardado com um novo numero.
A resposta é não! Não existe nenhuma função em Excel que faça isso.
Agora isso é simples de resolver! Basta utilizar a macro abaixo, no livro onde se pretende que isso seja realizado.
Antes de avançar para a solução abaixo, não se esqueça de fazer a experiência numa Cópia do Livro onde deseja aplicar esta acção!
E já agora leia até ao final antes de começar a fazer o que quer que seja.
Ok. Vamos a isto.
1. Abra a cópia.
2. Clique em ALT+F11, para abrir o Editor de Visual Basic (VBE).
3. Expanda o VBAProject(seu livro)
4. Insira um novo módulo (Insert à Module)
5. Copie e Cole o seguinte código nesse Módulo:
Sub auto_open()
With Sheets("Folha1").Range("C2")
.Value = .Value + 1
End With
End Sub
6. Altere Folha1 para o nome da sua folha e C2 para as coordenadas da sua célula.
7. Feche o Editor de Visual Basic (não precisa guardar)
8. Guarde o livro.
Experimente!
Abra, Guarde e Reabra quantas vezes quiser. Veja o valor de celula C2.
Qualquer dúvida, não hesite em contactar.
Fico à espera do seu desafio.
Hasta la vista!



Por: Paulo Costa
       pcosta71@gmail.com

quinta-feira, 29 de abril de 2010

Excel - Mostar/Ocultar Várias Folhas com VBA

Trabalho com o Excel à mais de uma década. Mesmo assim continuo a descobrir novas situações.
Como esta que aconteceu no ultimo curso.
Em Excel 2007.

Podemos ocultar várias folhas de uma só vez!
Mas só podemos mostrar (desocultar :-s), uma de cada vez… :-)
“NOTE You can unhide only one worksheet at a time.”
Solução:
Utilize a seguinte macro para fazer exactamente o processo contrário:

Sub MostarTodasAsFolhasOcultas()
Dim folha As Worksheet
Application.ScreenUpdating = False
For Each folha In ActiveWorkbook.Worksheets
folha.Visible = xlSheetVisible
Next folha
Sheets(1).Select
Application.ScreenUpdating = True
End Sub
;-)
Qualquer questão não hesitem em comentar.
EXCEL..ente Fim de Semana!!


Por: Paulo Costa
       pcosta71@gmail.com