Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador célula. Mostrar todas as postagens
Mostrando postagens com marcador célula. Mostrar todas as postagens

VBA Excel Basic - Como inserir dados numa célula - How To Enter Data into a Cell



É importante deixar alguns tópicos neste Blog, que sejam voltados para quem está iniciando na utilização do VBA - Visual Basic for Application.

Sub sbExample2()
    'It will enter the data into B5
    Range("B5") = "Hello World! using Range"
    'You can also use Cell Object as shwon below B6:
    Cells(6, 2) = "Hello World! using Cell" 'Here 6 is Row number and 2 is Column number
End Sub

TagsVBA, Basic, Excel, worskheet, Sheet, cell, célula, dados, Enter Data,


Excel Tips - Convertendo conteúdo notação A1 para L1C1 - Convert A1 notation to R1C1



A automação no MS Excel é uma forma de transformamos tempo em procedimentos.

Poupa muito o nosso tempo !

Invariavelmente ao automatizarmos um processo precisaremos fazer referências a diversos Ranges e isso pode ser simplificado internamente no nosso código se convertermos a nossa notação A1 para L1C1 (ou R1C1 em inglês).

O estilo de referência A1

Por padrão, o Excel usa o estilo de referência A1, que se refere a colunas com letras (A até IV, para um total de 256 colunas) e se refere a linhas como números (1 a 65.536). Essas letras e números são chamados de cabeçalhos de linha e coluna. Para se referir a uma célula, digite a letra da coluna seguida pelo número da linha. Por exemplo, D50 se refere à célula na interseção da coluna D com a linha 50. Para se referir a um intervalo de células, digite a referência para a célula que está no canto superior esquerdo do intervalo, digite dois-pontos (:) e, em seguida, digite a referência à célula que está no canto inferior direito do intervalo.


O estilo de referência L1C1

O Excel também pode usar o estilo de referência L1C1, na qual as linhas e as colunas na planilha são numeradas. O estilo de referência L1C1 é útil se você desejar contar (computar) as posições da linha e coluna no seu código VBA. No estilo L1C1, o Excel indica o local de uma célula com um "L" seguido de um número de linha e um "C" seguido de um número de coluna.


 Como? Simples assim:

  Range("$E$51").Address(ReferenceStyle:=xlR1C1)

ou

  ActiveCell.Address(ReferenceStyle:=xlR1C1)



Deixe os seus comentários! Envie este artigo, divulgue este link na sua rede social...


Tags: VBA, Excel, R1C1, L1C1, Range, address, cell, célula, endereço, convert, conversão, notation, notação,


VBA Excel - Formatando várias células




Existem diversos modos de formatarmos as células. Como sempre lhes disponibilizarei o mais simples para uso imediato.

Public Sub ApplyStyle()
' André Bernardes 15/01/2009 09:23 bernardess@gmail.com ' Aplica a formatação especialmente criada. 

Let Range("G11:R65000").Select Let Selection.NumberFormat = "##" Range("A1").Select
End Sub

Outro exemplo
Estes exemplos definem o formato de número para a célula A17, a linha um e a coluna C (respectivamente) de Sheet1. 


Let Worksheets("Sheet1").Range("A17").NumberFormat = "General"
Let Worksheets("Sheet1").Rows(1).NumberFormat = "hh:mm:ss"
Let Worksheets("Sheet1").Columns("C").NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"



Deixe os seus comentários! Envie este artigo, divulgue este link na sua rede social...


Tags: VBA, Excel, cell, format, célula, formatar, 


VBA Excel Tip - Insira Fotos nos Comentários de cada Célula - Add photos to cells inside comments

Inline image 1
Suponhamos que tenha uma planilha com uma lista de nomes de funcionários e queira ver as respectivas fotos destes funcionários.

Mais uma dica rápida, aprenda a inserir imagens dentro dos comentários das células.

A partir de uma pasta com as respectivas fotos, cada arquivo será o número do empregado. E a dica para visualizar as fotos de modo rápido e dinâmico, decidi colocar cada foto dentro de um comentário, em cada célula. Desse modo, quando passar o número do funcionário, uma janela de comentário aparecerá com a foto.

Mas é claro que desejo que todos usem a criatividade desenvolvendo novas soluções:

- Álbuns de fotos

- Capas dos seus CDs

- Capas da sua Lista de Blue-Rays

- Seus filmes preferidos

- Os livros que mais gosta

- Os produtos da sua empresa que estão sendo mostrados no gráfico imediatamente acima da lista

- As logomarcas das empresas comparadas dentro de um market share

Sub InsertPictures() 
    Dim cll As Range 
    Dim rng As Range 
    Dim strPath As String 

    Let strPath = "D:\Bernardes\Photos" 

    With Sheets("Sheet1") 
        Set rng = Range("A2:A416") 
    End With 

    For Each cll In rng 
        If Dir$(strPath & "\" & cll.Value & ".jpg") <> "" Then 
            With cll 
                .ClearComments 
                .AddComment ("") 
                .Comment.Shape.Fill.UserPicture (strPath & "\" & cll.Value & ".jpg")
                Let .Comment.Shape.Height = 160 
                Let .Comment.Shape.Width = 120 
                Let .Comment.Shape.LockAspectRatio = msoTrue 
            End With 
        End If 
    Next cll 
End Sub

TagsVBA, Excel, Tips, cell, célula, photo, insert, comments, comentários, add, adicionar, inserir,



VBA Excel Tips - Coloque bordas em todas as células com contéudo - Put borders around all used cells on a sheet

Inline image 1

Ok, talvez agora, neste momento, você sequer imagine porque desejaria ter uma função co a funcionalidade do título.

Mas acredite, um dia precisará de uma função assim. Ahhh... e quando isso acontecer aqui estará a funcionalidade pronta para que use-a. 

E não se esqueça, divirta-se!

Sub PutBorders() 

   With Cells.SpecialCells (xlCellTypeConstants, 23) 

       .BorderAround xlContinuous, xlThin, xlColorIndexAutomatic 

        On Error Resume Next 'used in case there are no inside borders 

        With .Borders(xlInsideHorizontal) 
            Let .LineStyle = xlContinuous 
            Let .Weight = xlThin 
            Let .ColorIndex = xlAutomatic 
        End With 

        With .Borders(xlInsideVertical) 
            Let .LineStyle = xlContinuous 
            Let .Weight = xlThin 
            Let .ColorIndex = xlAutomatic 
        End With 

    End With 
End Sub


brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®Author´s Profile  Google+   Author´s Professional Profile   Pinterest   Author´s Tweets

VBA Excel Tips - Mude a Fonte de todas as Células com Comentários - Change font on all cell comments

Inline image 1
Eu sei que este é um exemplo simples, mas de exemplos simples também se vive, certo?

Este exemplo mostra uma funcionalidade que pode ser muito útil ao alterarmos os diversos comentários postados em dezenas de células dentro das nossas Planilhas, Dashboards, e Scorecards.

Poderemos mudar o tamanho, tipo, cor e tudo o mais que estiver comentado dentro das células.

Sub ChangeCommentsFont() 

    Dim cmt As Comment 

    For Each cmt In ActiveSheet.Comments 

        With cmt.Shape.TextFrame.Characters.Font 

            Let .Size = 11 

        End With 

    Next cmt 

End Sub

TagsVBA, Excel, Tips, cell, comments, font, fonte, comentário, célula,



VBA Excel - Contando células selecionadas.

Inline image 1


Pelos mais diversos motivos e situações, eventualmente precisamos saber quantas células estão selecionadas, eis como fazê-lo:

Sub CntSelected()
    Dim cell As Object
    Dim count As Integer

    Let count = 0

    For Each cell In Selection
        Let count = count + 1
    Next cell

    MsgBox count & " item(ns) selecionados..."
End Sub


Tags: VBA, Excel, count, cell,  contar, célula, selected, selecionada



VBA Excel - Juntando distintas planilhas - Combine worksheets in Excel and Kill all excel objects

Inline image 1

Quando estamos trabalhando com várias planilhas, não raramente centenas delas, e precisamos elaborar uma análise, um relatório, importá-las para uma base de dados, etc...Tudo isso seria mais fácil se ao invés de termos centenas de arquivos, tivéssemos acesso a somente uma planilha contendo os dados de todas as demais. Sim, meus caros, nos pouparia muito tempo. E como sempre nos vem a pergunta: Como?

Segue:

Sub CopyFromWorksheets()
Dim wrk As Workbook
Dim sht As Worksheet
Dim trg As Worksheet
Dim rng As Range
Dim colCount As Long
'Dim sheetDelimiter As String
' Creates excel app object
Set objExcel = CreateObject("Excel.Application")
   
' Makes the excel invisible
objExcel.Visible = False
' Supress all display alerts
objExcel.DisplayAlerts = False
' Gets the complete path of the active excel sheet
strExcelFilePath = ActiveWorkbook.FullName
  
' Opens the excel file
Set objWorkbook = objExcel.Workbooks.Open(Trim(strExcelFilePath))

Set objWorkSheet = objWorkbook.Worksheets("Merge")
objWorkSheet.Activate
' Gets the count of column
Set objRange = objWorkbook.Worksheets("Merge")
numRowsCount = objRange.Evaluate("COUNTA(A1:A100)")
Worksheets("Merge").Activate
'sheetDelimiter = "######"
Set wrk = ActiveWorkbook 'Working in active workbook
For Each sht In wrk.Worksheets
If sht.Name = "Consolidated Backlog" Then
MsgBox "There is a worksheet called as 'Consolidated Backlog'." & vbCrLf & _
"Please remove or rename this worksheet since 'Consolidated Backlog' would be" & _
"the name of the result worksheet of this process.", vbOKOnly + vbExclamation, "Error"
Exit Sub
End If
Next sht
Application.ScreenUpdating = False
Set trg = wrk.Worksheets.Add(After:=wrk.Worksheets(wrk.Worksheets.Count))
trg.Name = "Consolidated Backlog"
'Get column headers from the first worksheet
'Column count first
Set sht = wrk.Worksheets(1)
colCount = 30

For cntLoop = 1 To numRowsCount
     strSheetName = Trim(UCase(objExcel.Cells(cntLoop, 1).Value))
     If Trim(strSheetName) = "" Then
        Exit For
     End If
     If Trim(strSheetName) = "SHEET NAMES" Then
       GoTo Continue
     End If
     For Each sht In wrk.Worksheets
        'If worksheet in loop is the last one, stop execution (it is Master worksheet)
        If sht.Index = wrk.Worksheets.Count Then Exit For
        If strSheetName = UCase(sht.Name) Then
            'Delimits the copied sheets with a string in a new row
            With trg.Cells(1, 1).Resize(1, colCount)
                .Value = sht.Cells(1, 1).Resize(1, colCount).Value
                 'Set font as bold
                .Font.Bold = True
            End With
            
            trg.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(1, 1).Value = sheetDelimiter
            Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(Rows.Count, 1).End(xlUp).Resize(, colCount))
            rng.Copy trg.Cells(Rows.Count, 1).End(xlUp).Offset(1)
            'Set objRange = sht.Range("A1").EntireColumn
            'objRange.Insert (xlShiftToRight)
            'sht.Range("A1") = sht.Name
        End If
    Next sht
Continue:
Next
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
Set sht = Nothing
Set objWorkSheet = Nothing
Set objRange = Nothing
Set trg = Nothing
Set rng = Nothing
Application.ScreenUpdating = True
'create WMI object instance
Set objWMI = GetObject("winmgmts:")
If Not IsNull(objWMI) Then
'create object collection of Win32 processes
Set objProcList = objWMI.InstancesOf("win32_process")
For Each objProc In objProcList 'iterate through enumerated
If UCase(objProc.Name) = UCase(procName) Then
objProc.Terminate (0)
End If
Next
End If
Set objProcList = Nothing
Set objWMI = Nothing

End Sub

Reference:

Aditya Kalra

Inspiration:
André Luiz Bernardes

TagsVBA, Tips, dummy, dummies, row, last, cell, célula, dirty area, detect, detectar

diHITT - Notícias