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 Cells. Mostrar todas as postagens
Mostrando postagens com marcador Cells. Mostrar todas as postagens

VBA Excel Basic - Usando o Condicional IF e o Laço FOR - Example On If Condition and For Loop


Sim, este é mais um tópico voltado para quem está iniciando na utilização do VBA - Visual Basic for Application no MS Excel.

A automação é o ponto mais forte da suíte MS Office. É um dos principais motivos dela fazer tanto sucesso e estar tão distante das demais suítes do mercado. 

Para utilizamos extensivamente a programação VBA precisamos dominar alguns processos básicos dentro da linguagem como o mostrado neste post.

Usaremos o condicional IF e o laço FOR.

Sub sbExample15()
'Um exemplo simples do condicional IF
'Compararemos os valores de A2 e A3 usando o IF

If Range("A2").Value = Range("A3") Then
    MsgBox "Verdadeiro"
Else
    MsgBox "Falso"
End If
'Um examplo simples de For Loop
'Inseriremos números inteiros de 1 a 1.000 na Coluna E
For i = 1 To 1000
    Let Cells(i, 5) = i 'here 5= column number of E
Next i
End Sub



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


TagsVBA, Excel, Merge, UnMerge, Cells, células, mesclar, 


VBA Excel Basic - Como Mesclar e Desfazer a Mesclagem das Células - How To Merge and UnMerge Cells



Sim, este é mais um tópico voltado para quem está iniciando na utilização do VBA - Visual Basic for Application no MS Excel.

Usaremos a propriedade Merge e UnMerge para unir as células.

Sub sbExample14()
    
    Range("E1:E5").Merge
    
    Range("E1:E5").UnMerge
End Sub



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


TagsVBA, Excel, Merge, UnMerge, Cells, células, mesclar, 


VBA Excel - Ajuste o layout de diversas planilhas - Loop through all worksheets in all Excel workbooks in a folder to change the font, font size, and alignment of text in all cells



Gosto muito de automatizar os processos que envolvem a repetição e o retrabalho humano. Isso poupa muito tempo e dinheiro. Gastar tempo automatizando um processo é algo realmente recompensador.

Ao gerarmos diversos relatórios em planilhas diferentes (workbook) do MS Excel, não queremos perder tempo formatando-as durante a geração e processamento de tais dados. Mas podemos programar para que sejam minimamente formatadas depois que tudo terminar e todos os arquivos estiverem gravados em uma pasta do nosso servidor ou estação de trabalho. Como?

Sub FormatLayoutFiles()
    Const fPath As String = "D:\Bernardes\Docs\"

    Dim sh As Worksheet
    Dim sName As String

    With Application
        Let .Calculation = xlCalculationManual
        Let .EnableEvents = False
        Let .ScreenUpdating = False
    End With

    Let sName = Dir(fPath & "*.xls*")

    Do Until sName = ""
        With GetObject(fPath & sName)
            For Each sh In .Worksheets
                With sh
                    Let .Cells.HorizontalAlignment = xlLeft
                    Let .Cells.Font.Name = "Arial"
                    Let .Cells.Font.Size = 10
                End With
            Next sh
            .Close True
        End With

        Let sName = Dir
    Loop

    With Application
        Let .Calculation = xlAutomatic
        Let .EnableEvents = True
        Let .ScreenUpdating = True
    End With
End Sub


Tags: Excel, VBA, format, layout, fomatação, Loop, worksheets, workbooks, folder,change, font, font size, alignment, text, cells


VBA Excel - Apague células vazias - Delete Empty Rows

Inline image 1
Como posso apagar células vazias na minha planilha? Hã! Segue:

Sub Del_Empty_Rows()
Dim R As Long
Dim rng As Range 
Let Application.ScreenUpdating = False

If Selection.Rows.Count > 1 Then
   Set rng = Selection
Else
   Set rng = ActiveSheet.UsedRange.Rows
End If

For R = rng.Rows.count To 1 Step -1
   If WorksheetFunction.CountA(rng.Rows(R).EntireRow) = 0 Then
      rng.Rows(R).EntireRow.Delete
   End If
Next R

Let Application.ScreenUpdating = True
End Sub

Reference:

Inspiration:

Tags: VBA, Excel, delete, cells, cell, apaga, célula

VBA Excel - Quebra de páginas no agrupamento








Talvez precisemos definir relatórios no MS Excel com quebras específicas de página, as quais, por vezes tenham dados oriundos de um BI (tal como da Microsoft, ORACLE, SAP, ou Cognos).

Insert Conditional Horizontal Page Breaks Around Logical/Visual Blocks
Clear Page Breaks & Add Page Breaks
Conditional Insert Of Page Breaks
Force Page Breaks In Vba?
Inserting Page Breaks On Relative Rows Based On Data
Set Page Breaks Based On Cell Value On Protected Sheet
Macro - Page Breaks/printing
Macro To Save Sheet With Same Page Breaks As Original
Vertical Page Breaks To Stretch From Column "B" To Column "U"
Page Breaks When Value Changes
Remove Any Page Breaks
Filter Out Page Breaks
Setting Page Breaks
Detecting Page Breaks
Macro To Loop And Insert A Page-break
Find Page Breaks Faster
Page Breaks Every Nth Row
Create Conditional Page Breaks
Row Height Specifically For Page Breaks
Adjusting Page Breaks In Multiple Tabs
Inserting Page Breaks For Certain Sheets Using Macros
Set Page Breaks Groups For X Conditions
Two Page Lookup Matching Criteria Based On Cell Value
Show Page Breaks Automatically When I Open A New File.
Deleting Page Breaks From Text File Formatted
Page Breaks Result In Blank Pages Printing When AutoFilter Used




Como podemos forçar as quebras quando acontecerem mudanças nas ocorrências de certos agrupamentos?

O código abaixo foi criado para aderir a uma necessidade específica, mas pode  ser [e deve ser] adaptado a ainda outras necessidades, criem e compartilhem!!!



Imaginem as ocorrências abaixo:


Nome           Estado                        e-mail

André           SP                              bernardess@gmail.com

André           SP                              bernardess@gmail.com

André           SP                              bernardess@gmail.com

André           SP                              bernardess@gmail.com

André           SP                              bernardess@gmail.com

André           SP                              bernardess@gmail.com

André           RJ                              bernardess@gmail.com

André           RJ                              bernardess@gmail.com

André           RJ                              bernardess@gmail.com

André           RJ                              bernardess@gmail.com

André           RJ                              bernardess@gmail.com

André           RJ                              bernardess@gmail.com

André           PR                              bernardess@gmail.com


Suponhamos que desejasse que em toda a mudança de estado, uma quebra fosse inserida. Como ficaria? Similar ao demonstrado abaixo:



Segue código:



Sub Insert_PageBreaks()


    ' Author:                           Date:                        Contact:                            URL:


    ' André Bernardes             08/07/2011 08:49    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/

    ' Insere quebra de página de acordo com a mudança em uma coluna.

    ' Listening: .


    Dim Lastrow As Long

    Dim i As Long

    Dim Row_Index As Long

    Dim Column1 As Long

    Dim Row1 As Long

    Dim cellContent1 As String

    Dim cellContent2 As String


    ' Define a coluna que será analisada.

    Let Column1 = 3

    

    ' Define a partir de qual Linha iniciará.

    Let Row1 = 3


    With ActiveSheet

        ' Remove todos os PageBreaks pré-existentes.

        .ResetAllPageBreaks

        

        ' Identifica a última linha que contém alguma informação. Neste caso na coluna C.

        Let Lastrow = .Cells(Rows.Count, "C").End(xlUp).Row


        ' Carrega variável de análise.

        Let cellContent1 = .Cells(Row1, Column1)

    

        ' Percorre todas as linhas com conteúdo na planilha vigente.

        For i = Row1 To Lastrow

            If Selection(i, Column1).Value <> cellContent1 Then

                .HPageBreaks.Add Before:=.Cells(i + 1, Column1)

                

                ' Carrega variável de análise.

                Let cellContent1 = .Cells(i + 1, Column1)

                

                Let i = i + 1

            End If

        Next

    End With

End Sub




Exemplo #1:

Use HPageBreaks(index), onde 
index


 é o número de índice da quebra de página, para retornar um objeto 
HPageBreak


. O exemplo a seguir altera a posição da quebra de página horizontal um.


Visual Basic for Applications 
Worksheets(1).HPageBreaks(1).Location = Worksheets(1).Range("e5") 











Exemplo #2:
Este exemplo adiciona uma quebra de página horizontal acima da célula F25 e insere uma quebra de página vertical à esquerda dessa célula.




Visual Basic for Applications 



With Worksheets(1)

    .HPageBreaks.Add.Range("F25")

    .VPageBreaks.Add .Range("F25")

End With 




Exemplo #3:
With Worksheets("Sheet3") 


    Set rngMyRange = .Range(.Range("B1"), .Range("B65536").End(xlUp)) 


    For Each rngCell In rngMyRange 

    ' Faz o loop através do range.

        If rngCell.Value <> rngCell.Offset(1, 0).Value Then 

            .HPageBreaks.Add Before:=rngCell.Offset(1, 0) 

        End If 

    Next 

End With 




Utilize-os com moderação... 



Tags: VBA, Excel, insert, page, brake, column, ResetAllPageBreaks, HPageBreaks, lastrow, row, cells, xlup


Inspiration: 


diHITT - Notícias