Browse by Tags
All Tags »
Office System »
Excel (
RSS)
Eu havia postado como encurtar o link de uma célula aqui ( http://carlosfprocha.com/blogs/paleo/archive/2014/06/10/encurtando-links-no-excel.aspx ), mas recebi alguns e-mails solicitando que fizesse a postagem do código para encurtar todos os links de uma determinada coluna. Pois bem, não repetir toda o post anterior, vou colocar apenas o código VBA para esta nova tarefa, uma vez que basta substituir o do post anterior por este, para obter o resultado desejado. Como em cada e-mail havia o pedido por uma coluna diferente, fiz o código solicitar a coluna desejada. Enjoy!
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.
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.
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!