Saltar para o conteúdo
Consultoria · Automação · Dados · Digital

Category Archive macros

Ordenar Folhas Excel de forma Automatizada (Macro)

Pretende-se com esta macro Ordenar as Folhas de um livro de Excel de forma ascendente.

Video que mostra como fazer:

 

Código:

Option Explicit
Sub OrdenarFolhas()
‘Esta rotina coloca as folhas de Excel por ordem ascendente

Dim NomeFolhas() As String
Dim ContarFolhas As Long
Dim i As Long
Dim AntigaFolhaActiva As Object

‘Se não houver folha activa
If ActiveWorkbook Is Nothing Then Exit Sub

‘Verifica se a estrutura do livro esta protegida, se sim, não consegue ordenar e
‘devolve uma mensagem ao utilizador
If ActiveWorkbook.ProtectStructure Then
MsgBox ActiveWorkbook.Name & ” está protegida, “, vbCritical, “Não é possivel ordenar as folas. “
Exit Sub

End If

‘Verifica se o utilizador quer mesmo fazer a ordenação
If MsgBox(“Pretende ordenar as folhas deste livro de Excel?”, vbQuestion + vbOKCancel) <> vbOK Then Exit Sub

‘Desactiva o CTRL+BREAK (opção cancelar)
Application.EnableCancelKey = xlDisabled

‘Vai buscar o numero de folhas existentes
ContarFolhas = ActiveWorkbook.Sheets.Count

‘Redimensiona a Array
ReDim NomeFolhas(1 To ContarFolhas)

‘Armazena uma referência da folha activa
Set AntigaFolhaActiva = ActiveSheet

‘Preenche a array com os nomes das folhas
For i = 1 To ContarFolhas
NomeFolhas(i) = ActiveWorkbook.Sheets(i).Name
Next i

‘Coloca a array na ordem ascendente
Call BubbleSort(NomeFolhas)

‘Desactiva a actualização de ecran
Application.ScreenUpdating = False

‘Move/Ordenas as folhas
For i = 1 To ContarFolhas
ActiveWorkbook.Sheets(NomeFolhas(i)).Move _
before:=ActiveWorkbook.Sheets(i)
Next i

‘Reactiva a folha original
AntigaFolhaActiva.Activate

End Sub

Sub BubbleSort(List() As String)
‘Função criada para ordenar as folhas e que é chamada em cima

Dim primeiro, Ultimo As Long
Dim i, j As Long
Dim Temp As String

primeiro = LBound(List)
Ultimo = UBound(List)

For i = primeiro To Ultimo – 1
For j = i + 1 To Ultimo
If List(i) > List(j) Then
Temp = List(j)
List(j) = List(i)
List(i) = Temp
End If
Next j
Next i
End Sub

Enviar Emails com ficheiro comprimido como anexo quando estiver na Data Actual (VBA)

Pretende-se com este código que quando a Data de Envio for igual a data em que nos encontramos é enviado um email ao destinatário.

O código pesquisa todos os registos e envia para cada email onde a condição da data for a data actual.

ZIP_EMAIL-300x188 Enviar Emails com ficheiro comprimido como anexo quando estiver na Data Actual (VBA)
ZIP_EMAIL_2-300x183 Enviar Emails com ficheiro comprimido como anexo quando estiver na Data Actual (VBA)
ZIP_EMAIL_1-300x156 Enviar Emails com ficheiro comprimido como anexo quando estiver na Data Actual (VBA)

VBA Code/Macro:

Sub SendEmail()

Dim ws As Worksheet
Dim oApp As Object, MailApp As Object, SendMail As Object
Dim strbody As String
Dim deldate As Variant
Dim email As Variant
Dim i As Integer

Set ws = Worksheets(“sheet1”)
ws.Select

‘Set numrows = number of rows of data.
NumRows = Range(“A2”, Range(“A2”).End(xlDown)).Rows.Count

‘ Select cell A2
Range(“A2”).Select

‘Get Delivery date
lin = 2
col = 4
deldate = ws.Cells(lin, col).Value

‘Get email
lin = 2
col = 7
email = ws.Cells(lin, col).Value
‘ -1 because sheet have header
For i = 1 To NumRows – 1

If deldate = Date Then

‘Create Email
Set MailApp = CreateObject(“Outlook.Application”)
Set SendMail = MailApp.CreateItem(0)
‘Conteudo corpo da mensagem
strbody = “Your require thing has been delivered … ” & vbNewLine & vbNewLine & _
“Thanks” & vbNewLine & _
“…”

On Error Resume Next
With SendMail
.To = email ‘<- Email to send
.CC = “”
.BCC = “”
.Subject = “Your require thing has been delivered …”
.Body = strbody ‘<- Body message
.Send ‘ .Display <- Before send email to client show
‘ .send <- Send Email direct
End With
Else: Exit Sub
End If
ActiveCell.Offset(lin + i, 0).Select
deldate = ws.Cells(lin + i, 4).Value
email = ws.Cells(lin + i, 7).Value
Next

End Sub

Criar ListBox Excel VBA

Criar uma List Box em Excel usando o Editor VBA, experimente 🙂
Creating a Listbox using Excel VBA Editor, try it 🙂

 

_LISTBOX Criar ListBox Excel VBA

Hiperlinks VBA Excel

Criar Hiperlinks com VBA Excel:
1. Abra uma folha de Excel
2. Carregue em Alt+F11 para abrir o editor de VBA
3. Insira um novo módulo
4. Copie o código que se segue e cole na janela de codigo
5. Carregue em F5 para executar
6. Verifique que o link foi adicionado a célula A4

Create Hiperlinks with Excel VBA;
1. Open an excel workbook
2. Press Alt+F11 to open VBA Editor
3. Insert a New Module
4. Copy the above code and Paste in the code window
5. Press F5 to execute it
6. You can see a new hyperlink is added at A4

Sub CreateHyperLink()
ActiveSheet.Hyperlinks.Add Range(“A4”), “https://clicotech.blogspot.pt/”
End Sub

_CRIAR_LINK Hiperlinks VBA Excel

Função ARRED – Arredondamento

Função ARRED – Arredondamento
Conhece?

_ARREDONDAMENTO Função ARRED - Arredondamento

Macro/Função para Formatar Datas

Macro/Função para Formatar Datas.

_FORMAT_DATES Macro/Função para Formatar Datas

Para ajudar em formulas (cábula)…

Diferentes Formatos Data e Hora
Util para usar em VBA

_CABULA Para ajudar em formulas (cábula)...

Teclas Atalho Excel

Sabia que:
F2 edita célula actual
F5 vai para uma célula especifica
F11 cria um grafico
ALT + PAGE DOWN move a folha para a direita no livro.
CTRL + PAGE DOWN move para a próxima folha na pasta de trabalho.
CTRL + SHIFT + PAGE DOWN selecciona a folha actual e a próxima numa pasta de trabalho.
ALT + PAGE UP move a folha para a esquerda num livro.
CTRL + PAGE UP move para o livro anterior na pasta de trabalho.
CTRL + SHIFT + PAGE UP selecciona a folha actual e a anterior na pasta de trabalho…

Excel_Shortcut_Keys Teclas Atalho Excel
Despesas Mensais

Controlo de Despesas Mensais

Uma das melhores formas de se começar a poupar algum dinheiro é entender onde e quando gastamos mais.
O ficheiro que segue, não é mais do que uma folha de Excel, com várias categorias de despesas e receitas e que o pode ajudar ou servir de modelo para algo mais avançado que necessite.
A ideia é essencialmente entender onde se gasta mais, para que se entenda o potencial de poupança que se têm à nossa disposição.
Ideia e ficheiro retirado de um blog de finanças pessoais, para que não se estrague as formulas inadvertidamente, as mesmas encontram-se bloqueadas.
Aproveitem 🙂

Operadores suportados pelo Excel

_OPERADORES_SUPORTADOS Operadores suportados pelo Excel
Show Buttons
Hide Buttons