DONUT PROJECT 2015 - Extraindo e-Mails - Extracting An Email Address From Text

DONUT PROJECT 2015 - Extraindo e-Mails - Extracting An Email Address From Text





Muito útil para o envio automatizado de e-mails a partir de uma planilha sem higienização apropriada.

Function ExtractEmailAddress (s As String) As String      Dim AtSignLocation As Long      Dim i As Long      Dim TempStr As String      Const CharList As String = "[A-Za-z0-9._-]"            'Get location of the @      AtSignLocation = InStr(s, "@")      If AtSignLocation = 0 Then          ExtractEmailAddress = "" 'not found      Else          TempStr = ""          'Get 1st half of email address          For i = AtSignLocation - 1 To 1 Step -1              If Mid(s, i, 1) Like CharList Then                  TempStr = Mid(s, i, 1) & TempStr              Else                  Exit For              End If          Next i          If TempStr = "" Then Exit Function          'get 2nd half          TempStr = TempStr & "@"          For i = AtSignLocation + 1 To Len(s)              If Mid(s, i, 1) Like CharList Then                  TempStr = TempStr & Mid(s, i, 1)              Else                  Exit For              End If          Next i      End If      'Remove trailing period if it exists      If Right(TempStr, 1) = "." Then TempStr = _         Left(TempStr, Len(TempStr) - 1)      ExtractEmailAddress = TempStr  End Function

Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.










DONUT PROJECT 2015 - Função - Extraindo Quaisquer Elementos de uma String a Partir do Limitador

DONUT PROJECT 2015 - Função - Extraindo Quaisquer Elementos de uma String a Partir do Limitador























Outra função utilíssima para extrair infomarções num processo de higienização ou processamento.

Function ExtractElement (Txt, n, Separator) As String    '    Author: André Luiz Bernardes - andredinizbernardes@gmail.com    '      Date: 06.04.15 - 12:10    ' Descrição: Retorna qualquer número de ocorrências, onde estiver separado pelo limitador indicado.    '   Exemplo: ExtractElement ("ACUPUNTURA, ACUPUNTURA, ANESTESIOLOGIA",2,",") - Retorna: ACUPUNTURA

    Dim Txt1 As String, TempElement As String    Dim ElementCount As Integer, i As Integer        Let Txt1 = Txt    ' Remove o excesso de espaços.    If Separator = Chr(32) Then Txt1 = Application.Trim(Txt1)        ' Adiciona um separador no final da string se for necessário.    If Right(Txt1, 1) <> Separator Then Txt1 = Txt1 & Separator        ' Inicia    Let ElementCount = 0    Let TempElement = ""        ' Extrai cada elemento    For i = 1 To Len(Txt1)        If Mid(Txt1, i, 1) = Separator Then            Let ElementCount = ElementCount + 1            If ElementCount = n Then                                Let ExtractElement = TempElement                Exit Function            Else                Let TempElement = ""            End If        Else            Let TempElement = TempElement & Mid(Txt1, i, 1)        End If    Next i        Let ExtractElement = ""End Function


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.










DONUT PROJECT 2015 - Função - Retorna o número de ocorrências de um caracter numa string

DONUT PROJECT 2015 - Função - Retorna o número de ocorrências de um caracter numa string
























Retorna o número de vezes que um caracter aparece numa String.

Por exemplo:

Exemplo: ReturnOccurs ("ACUPUNTURA, ACUPUNTURA, ANESTESIOLOGIA",",")

Retorna: 2
Function ReturnOccurs(str As String, nOccur As String) As String
    '    Author: André Luiz Bernardes - andredinizbernardes@gmail.com
    '      Date: 06.04.15 - 11:37
    ' Descrição: Retorna o número de ocorrências de um caracter numa string.
    '   Exemplo: ReturnOccurs("ACUPUNTURA, ACUPUNTURA, ANESTESIOLOGIA",",") - Retorna: 2
   
    Let ReturnOccurs = Len(str) - Len(Replace(str, nOccur, "")) + (Len(Trim(A1)) > 0)
End Function




Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.










DONUT PROJECT 2015 - Função - Retorna Qualquer Conteúdo Delimitado por 2 Caracteres

DONUT PROJECT 2015 - Função - Retorna Qualquer Conteúdo Delimitado por 2 Caracteres


A função abaixo é totalmente específica pois permite retornar qualquer conteúdo que estiver delimitado pelos caracteres que informarmos.


Public Function ExtraiDelimitedFor (str As String,nOpen as string, nClose as string) As String
    Dim openPos As Integer
    Dim closePos As Integer
    Dim midBit As String

    Let openPos = InStr(str, nOpen)
    Let closePos = InStr(str, nClose)
    If (openPos + closePos) <= 2 Then
        Let ExtraiTudoEntreParenteses = str
    Else
        Let midBit = Left(str, openPos - 1) & Right(str, Len(str) - closePos)
        Let ExtraiTudoEntreParenteses = midBit
    End If
    Let midBit = Left(str, openPos - 1) & Right(str, openPos)
    Let ExtraiTudoEntreParenteses = midBit
End Function




Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.



DONUT PROJECT 2015 - Função - Retorna Apenas o Conteúdo Entre Parênteses

DONUT PROJECT 2015 - Função - Retorna Apenas o Conteúdo Entre Parênteses


A função abaixo é muito útil por permitir retornar apenas o conteúdo que estiver entre parênteses.


Public Function ExtraiOValorEntreParenteses (str As String) As String
'Author: André Luiz Bernardes - andredinizbernardes@gmail.com
' Date: 06.04.15 - 10:00
' Descrição: Retorna somente o conteúdo de uma frase que estiver entre parênteses.
    Dim openPos As Integer
    Dim closePos As Integer
    Dim midBit As String


    Let openPos = InStr(str, "(")
    Let closePos = InStr(str, ")")
    Let midBit = Mid(str, openPos + 1, closePos - openPos - 1)
    Let ExtraiOValorEntreParenteses = midBit
End Function

Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.

DONUT PROJECT 2015 - Função - Extrai Conteúdo entre Parênteses

DONUT PROJECT 2015 - Função - Extrai Conteúdo entre Parênteses



Esta função pode auxiliar muito alguém que está num processo de higienização de dados.

Imagine poder retornar apenas aquilo que não está entre parênteses.

Por exemplo, da expressão Dr. Roberto Matsuo (Clínico Geral), retornar apenas: Dr. Roberto Matsuo

A função abaixo faz exatamente isso.


Function ExtraiTudoEntreParenteses(str As String) As String
'Author: André Luiz Bernardes - andredinizbernardes@gmail.com' Date: 06.04.15 - 10:00' Descrição: Retorna todo o conteúdo que estiver entre parênteses. 
    Dim openPos As Integer
    Dim closePos As Integer
    Dim midBit As String

    Let openPos = InStr(str, "(")
    Let closePos = InStr(str, ")")
   
    If (openPos + closePos) <= 2 Then
        Let ExtraiTudoEntreParenteses = str
    Else
        Let midBit = Left(str, openPos - 1) & Right(str, Len(str) - closePos)
        Let ExtraiTudoEntreParenteses = midBit
    End If
End Function



Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.


DONUT PROJECT 2015 - Excel - Report Layout

DONUT PROJECT 2015 - Excel - Report Layout
















O código abaixo dá acesso a melhorarmos a aparência das nossas Tabelas Dinâmicas, acertando os layouts.

Sub PivotReportLayout()
'PURPOSE: Show setup for various Pivot Table Report Layout options

Dim pvt As PivotTable

Set pvt = ActiveSheet.PivotTables("PivotTable1")

'Show in Compact Form
  pvt.RowAxisLayout xlCompactRow

'Show in Outline Form
  pvt.RowAxisLayout xlOutlineRow
  
'Show in Tabular Form
  pvt.RowAxisLayout xlTabularRow
    
End Sub


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.


DONUT PROJECT 2015 - Excel - Grand Totals - Inserindo Totais para todas as Colunas e Linhas na Tabela Dinâmica

DONUT PROJECT 2015 - Excel - Grand Totals - Inserindo Totais para todas as Colunas e Linhas na Tabela Dinâmica



Sub PivotGrandTotals()
'PURPOSE: Show setup for various Pivot Table Grand Total options
'SOURCE: www.TheSpreadsheetGuru.com

Dim pvt As PivotTable

Set pvt = ActiveSheet.PivotTables("PivotTable1")

'Off for Rows and Columns
  pvt.ColumnGrand = False
  pvt.RowGrand = False

'On for Rows and Columns
  pvt.ColumnGrand = True
  pvt.RowGrand = True

'On for Rows only
  pvt.ColumnGrand = False
  pvt.RowGrand = True
  
'On for Columns Only
  pvt.ColumnGrand = True
  pvt.RowGrand = False

End Sub



Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.


DONUT PROJECT 2015 - Excel - Change Pivot Table Data Source Range - Mudando a Fonte de Dados da Tabela Dinâmica

DONUT PROJECT 2015 - Excel - Change Pivot Table Data Source Range - Mudando a Fonte de Dados da Tabela Dinâmica


Este recurso para mudar a fonte de dados é muito importante quando estamos atualizando informações em Dashboards, pois permite alterarmos 'on the fly' o acesso a BUs (Business Units), Regiões, Estados ou mesmo Países diferentes.

Sub ChangePivotDataSourceRange()
'PURPOSE: Change the range a Pivot Table pulls from
'SOURCE: www.TheSpreadsheetGuru.com

Dim sht As Worksheet
Dim SrcData As String
Dim pvtCache As PivotCache

'Determine the data range you want to pivot
  Set sht = ThisWorkbook.Worksheets("Sheet1")
  SrcData = sht.Name & "!" & Range("A1:R100").Address(ReferenceStyle:=xlR1C1)
  
'Create New Pivot Cache from Source Data
  Set pvtCache = ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=SrcData)

'Change which Pivot Cache the Pivot Table is referring to
  ActiveSheet.PivotTables("PivotTable1").ChangePivotCache (pvtCache)

End Sub



Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.

DONUT PROJECT 2015 - Excel - Refresh Pivot Tables - Aplicando Refresh em Tabelas Dinâmicas

DONUT PROJECT 2015 - Excel - Refresh Pivot Tables - Aplicando Refresh em Tabelas Dinâmicas


Um recurso simplificado é atualizar a Tabela Dinâmica assim que abrir a planilha. Tome cuidado para que uma mensagem seja apresentada ao usuário, assim saberá o que está acontecendo.

Sub RefreshingPivotTables()
'PURPOSE: Shows various ways to refresh Pivot Table Data

'Refresh A Single Pivot Table
  ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
  
'Refresh All Pivot Tables
  ActiveWorkbook.RefreshAll
    
End Sub








Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.

DONUT PROJECT 2015 - How To Create Partially Anonymous Data - Como Manter Informações parcialmente Anônimas





DONUT PROJECT 2015 - How To Create Partially Anonymous Data - Como Manter Informações parcialmente Anônimas




Às vezes é importante tornar as informações contidas em relatórios e dashboards parcialmente anônimas, mantendo certa confidencialidade e discrição de olhos sem autorização para consulta.

O código abaixo permite-nos aplicar tal restrição:

Sub AnonymizeText()

'PURPOSE: Anonymize a number or text so only certain amount of original characters are showing (used alot with credit card #s)



Dim ShowChars As Integer

Dim AnonymChar As String

Dim SymbolString As String

Dim StringLength As Long

Dim AnonymEnd As Boolean

Dim cell As Range

Dim rng As Range



'Do you want to anonymize begining or end of text (TRUE for end, FALSE for beginning)

  AnonymEnd = False



'Number of characters you want to show

  ShowChars = 4



'Symbol you want to replace original characters

  AnonymChar = "*"



'Range where data is stored

  Set rng = Range("A2:A25")

  

'Loop through each cell and anonymize text

  For Each cell In rng.Cells

    

    StringLength = Len(cell.Value)

    SymbolString = Application.WorksheetFunction.Rept(AnonymChar, StringLength - ShowChars)

    

    If StringLength > ShowChars Then

      'Anonymize ending characters (ie 730*******)

        If AnonymEnd = True Then cell.Value = Left(cell.Value, ShowChars) & SymbolString

      

      'Anonymize beginning characters (ie *******540)

        If AnonymEnd = False Then cell.Value = SymbolString & Right(cell.Value, ShowChars)

     

    End If

  

  Next cell

End Sub


Olha como funciona:




Partially Anonymous String Formula Anonymize Microsoft Excel Data


Não me recordo de pessoalmente ter necessitado do código acima, mas imagino que poderia ser muito útil em áreas como Recursos Humanos, Auditoria, contas a pagar, folha de pagamento, e Tesouraria. Nestes departamentos os analistas geralmente utilizam dados que incluem números de conta, valores, e outras informações pessoais que provavelmente não devam ser mostrados fora do respectivo departamento.


Ei! Envie seus comentários e sugestões de artigos. Compartilhe este artigo com seus chefes, colegas de trabalho e amigos.