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

Arquivo do autor

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

Ana Isabel Rodrigues

Concatenar de forma simples :)

Concatenar de forma simples
Ana Isabel Rodrigues

Enviar email quando Data de Envio for igual a Data Actual

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.

SendEmailonDate-300x161 Enviar email quando Data de Envio for igual a Data Actual
Código:
Public ws As Worksheet
Public iCount As Integer    ‘ String used to count exist records
Public lastrow As Long      ‘ String used to detect last used row to add next record
Private Sub cmdAdd_Click()
Dim TClientID As Integer
    
     iCount = Application.WorksheetFunction.CountIf(Range(“A1:A10000”), “C*”)
   
    With ws.UsedRange
        lastrow = .Rows(.Rows.Count).Row
    End With
    
    TClientID = ws.Range(“A” & lastrow).Value
    
    ‘Select new row to add record
    ws.Range(“A” & lastrow + 1).Select
    
    Me.Repaint
    Populate_Fields
    ‘Add next number to record
    Me.txtClientID = TClientID + 1
    
End Sub
Private Sub cmdClose_Click()
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.Quit
End Sub
Private Sub cmdSave_Click()
ActiveCell.Offset(0, 0).Value = Me.txtClientID.Text
ActiveCell.Offset(0, 1).Value = Me.txtName.Text
ActiveCell.Offset(0, 2).Value = Me.txtOrderedDate.Text
ActiveCell.Offset(0, 3).Value = Me.txtSendDate.Text
ActiveCell.Offset(0, 4).Value = Me.txtProduct.Text
ActiveCell.Offset(0, 6).Value = Me.txtEmail.Text
ActiveCell.Offset(0, 7).Value = Me.txtcontact.Text
MsgBox “Document Saved!”, vbOKOnly
End Sub
Private Sub cmdSendEmail_Click()
    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
Private Sub UserForm_Initialize()
Set ws = Worksheets(“sheet1”)
Range(“A2”).Select
Populate_Fields
End Sub
Private Sub Populate_Fields()
Set ws = Worksheets(“sheet1”)
ws.Select
ActiveCell.Offset(0, 0).Select
Me.txtClientID.Text = ActiveCell.Offset(0, 0).Value
Me.txtOrderedDate = ActiveCell.Offset(0, 2).Value
Me.txtSendDate = ActiveCell.Offset(0, 3).Value
Me.txtName = ActiveCell.Offset(0, 1).Value
Me.txtProduct = ActiveCell.Offset(0, 4).Value
Me.txtEmail = ActiveCell.Offset(0, 6).Value
Me.txtcontact = ActiveCell.Offset(0, 7).Value
End Sub
Ana Isabel Rodrigues

Criar Hiperlinks com 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://clico.pt/
End Sub

_CRIAR_LINK Criar Hiperlinks com VBA Excel
Ana Isabel Rodrigues

Atalhos e fórmulas que vão tornar sua vida no Excel mais fácil

Atalhos e fórmulas que vão tornar sua vida no Excel mais fácil

Matemática

Adição =SOMA(célulaX;célulaY)

Subtração =(célulaX-célulaY)

Multiplicação = (célulaX*célulaY)

Divisão =(célulaX/célulaY)

Estatística

Média =MEDIA(célula X:célulaY)

Máxima =MAX(célula X:célulaY)

Mínima =MIN(célula X:célulaY)

Teclas de atalho

CTRL + (para visualizar dados que não estão próximos, pode-se usar a opção de ocultar células e colunas. Usando esse comando fará com que as linhas correspondentes à selecção sejam ocultadas. Para que aquilo que ocultou reapareça, selecione uma célula da linha anterior e uma da próxima e depois tecle CTRL + SHIFT +

CTRL +
Atalho igual ao anterior, mas oculta colunas e não linhas.

CTRL + SHIFT + $
Atalho para aplicar a conteúdos monetários o formato de moeda. Ele coloca o símbolo desejado (por exemplo, €) no número, além de duas casas decimais.

CTRL + SHIFT + Asterisco (*)
Para selecionar dados que estão em volta da célula atualmente ativa. Caso existam células vazias no meio dessas informações, elas também serão selecionadas.

CTRL + Sinal de adição (+)
Para inserir células, linhas ou colunas no meio dos dados.

CTRL + Sinal de subtração (-)”
Para excluir células, linhas ou colunas inteiras.

CTRL + D”
Quando precisar que todas as células de determinada linha tenham o mesmo valor, use este comando. Por exemplo: o número 2574 está na célula A1 e quer que ele se repita até a linha 20. Seleccione da célula A1 até a A20 e pressione o comando. Todas as células serão preenchidas com o mesmo número.

CTRL + R
Igual ao comando acima, mas para preenchimento de colunas.

CTRL + ALT + V
O comando “colar valores” faz com que somente os valores das células copiadas apareçam, sem qualquer formatação.

CTRL + PAGE DOWN
Muda para a próxima folha de excel no livro.

CTRL + PAGE UP
Similar ao anterior, mas muda para a folha anterior.

CTRL + SHIFT + &
Aplica o contorno às células selecionadas.

CTRL + SHIFT +_
Remove o contorno das células selecionadas.

CTRL + SHIFT + %
Aplica o formato percentagem sem casas decimais.

CTRL + SHIFT + #
Inclui no arquivo data com dia, mês e ano.

Ana Isabel Rodrigues

Codigo VBA – Verifica se Outlook esta aberto e devolve respectiva mensagem

Codigo VBA – Verifica se Outlook esta aberto e devolve respectiva mensagem experimente .

VBA Code – See if Outlook is running and give a message, try it

Outlook_Run-300x107 Codigo VBA - Verifica se Outlook esta aberto e devolve respectiva mensagem


Ana Isabel Rodrigues

Conhece a Função Rank, Ordem?

Conhece a Função Rank, Ordem?

RANK-246x300 Conhece a Função Rank, Ordem?


Ana Isabel Rodrigues

Função Romano()

Conhece a Função Romano()?
Veja o exemplo que segue…
A Função Romano converte um numeral árabe em numerais romanos, como texto.

funcao_romano-300x163 Função Romano()
funcao_romano_1-300x186 Função Romano()


Ana Isabel Rodrigues

Visual Basic Basico

O Visual Basic é uma linguagem de programação orientada a objetos criada pela Microsoft e distribuída com o Visual Studio .NET.</>

Ana Isabel Rodrigues

Exportar Ficheiro Excel para PDF (VBA)

Código/Macro VBA:

Exportar o ficheiro para PDF de forma automática.

Neste caso a exportação para PDF não contempla os links nem indices, o Excel na exportação para PDF não funciona como o Microsoft Word. Para poder exportar com links tem de se ter o Acrobat Pro instalado e o ADD IN adicionado.

O ficheiro é guardado na pasta de documentos do utilizador que estiver com login no momento.

EXPORTTOPDF-300x191 Exportar Ficheiro Excel para PDF (VBA)
Ana Isabel Rodrigues
Show Buttons
Hide Buttons