Category Archives: 15786

Evento SQL Saturday #284

No dia 26/04/2014 fui palestrante no evento SQL Saturday #284, realizado na Estácio FARGS, evento do qual participei desde seu planejamento e negociação, que ocorreram desde novembro de 2013.

Nos quinze anos de existência do PASS, esta foi a primeira vez que o evento foi realizado no Rio Grande do Sul e foi realmente muito gratificante tem participado do grupo que tornou possível a realização dele, tento como palestrante, como fazendo a ponte entre a Estácio e o PASS e auxiliando no ajuste de diversos detalhes para sua realização.

O evento foi um sucesso completo, onde tivemos a presença de mais de 170 pessoas, que lotaram o auditório da faculdade, desde as 08:00, até as 18:00. Sim, foram 10 horas de evento e o público permaneceu lá!

Na abertura do evento tivemos um keynote com Ramnik Gulati, Global Product Manager for SQK Server da Microsoft/USA, o que muito abrilhantou o evento!

O evento contou com 18 palestrantes e pela avaliação dos presentes, foi um sucesso total, tendo obtido avaliação média 4,65, em uma escala que vai de 0 a 5.

A minha palestra, que obteve nota 4,74, em uma escala que ia de 0 a 10, foi sobre Business Intelligence usando o Microsoft Excel, com Power Query.

Outra coisa que ficou bacana foi eu ter usado o Office Remote para comandar a apresentação a partir do meu Windows Phone.

Enviar visualização de planilha por e-mail

Recebi um questionamento sobre como enviar a visualização de uma planilha, por e-mail. Claro, pode ser na forma de imagem, mas eu considero como melhor forma, o envio como PDF.

Desta forma vamos à solução!

A primeira etapa é definir a área de impressão de sua planilha e os ajustes de página, como a Orientação (Retrato ou Paisagem) e se deseja que imprimi em múltiplas páginas ou ajuste o conteúdo a uma única página, depois é executar a macro abaixo que ela faz o resto, mas claro que você precisa ajustar o que coloquei em negrito antes de roda-la:

Sub eMailActiveWorksheet()
    ‘ esta macro envia apenas a planilha como PDF
    Dim OL              As Object
    Dim EmailItem       As Object
    Dim Wb              As Workbook
    Dim Arquivo        As String
    
    Application.ScreenUpdating = False
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(olMailItem)
    Arquivo = "C:\Temp\" & Replace(ActiveSheet.Name & " – " & ActiveWorkbook.Name, ".xlsm", ".pdf")
    ActiveSheet.Copy
    Set Wb = ActiveWorkbook
    Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        Arquivo, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    With EmailItem
        .Subject = "Assunto_do_e-mail"
        .Body = "Mensagem_do_e-mail"
        .To = "destinatário_do_email"
        .Importance = olImportanceNormal
        .Attachments.Add Arquivo
        .Send
    End With
    Wb.Close False
    
    Application.ScreenUpdating = True
    
    Set Wb = Nothing
    Set OL = Nothing
    Set EmailItem = Nothing
    
End Sub

 

Substitua “C:\Temp\” pela pasta de sua preferência.

Criando um timer no Excel

Hoje respondi a uma pergunta no forum sobre como se criaria um timer para a execução de uma macro no Excel, pois aqui vai a solução:


Para que o timer seja iniciado ao abrir a planilha inclua este código em EstaPasta_de_trabalho:


Private Sub Workbook_Open()
    Call iniTimer
End Sub


Agora insira um módulo e nele adicione o seguinte código (Inserir -> Módulo):


Public Sub iniTimer()
    Application.OnTime EarliestTime:=Time + TimeValue(“00:00:05″), Procedure:=”minhaMacro”
End Sub



Public Sub minhaMacro()
    On Error Resume Next
    MsgBox (“Passou o tempo!”)
    Application.OnTime EarliestTime:=Now + TimeValue(“00:00:05″), Procedure:=”minhaMacro”
End Sub


Public Sub paraTimer()
    Application.OnTime EarliestTime:=Now + TimeValue(“00:00:01″), Procedure:=”minhaMacro”, Schedule:=False
End Sub


Naturalmente que o código de meu exemplo não faz muito sentido, pois apenas informa que o tempo passou, mas basta que você substitua a linha MsgBox (“Passou o tempo!”), pelo conteúdo que deseja executar com o timer, que seu código estará pronto.


Onde está o truque? No evento Application.OnTime


Onde o tempo é definido? No parâmetro EarliestTime


Espero que gostem e façam bom proveito!