• +351 91 33 888 29
    • clico@clico.pt

    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.

    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

    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


    Ana Isabel Rodrigues

    Conhece a Função Rank, Ordem?

    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.


    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.

    Ana Isabel Rodrigues
    Advertisements
    Show Buttons
    Hide Buttons