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

Excel Tips - Excluindo linhas em branco ao abrir a Planilha - Removing Blank Rows Automatically


Olá pessoal!

Alguns perguntaram como fazer para deletar as linhas que estão em branco na planilha, logo que a esta for aberta.

Segue um código, simples, honesto, rápido e limpinho.

Private Sub Worksheet_Change (ByVal Target As Range)
'Deleta todas as linhas que estiverem em branco que existirem.  
'Previne loops infinitos  Let Application.EnableEvents = False   
'Caso haja mais de uma célula selecionada. 
If Target.Cells.Count > 1 Then
GoTo SelectionCode  
If WorksheetFunction.CountA(Target.EntireRow) = 0 Then 
Target.EntireRow.Delete 
End If  
Let Application.EnableEvents = True  
Exit Sub
SelectionCode: 
If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then 
Selection.EntireRow.Delete 
End If  
Let Application.EnableEvents = True
End Sub


Tags: VBA, Excel, deletar, apagar, excluir, row, lines, linha, range, rows, blank, removing, EntireRow, automatically, delete

VBA Excel - Excluir linhas em branco logo ao abrir a Planilha - Removing Blank Rows Automatically



Sim pessoal. sempre perguntam como deletar linhas em branco da planilha, assim que esta for aberta. Segue um código, simples, honesto, rápido e limpinho:

Private Sub Worksheet_Change (ByVal Target As Range)
'Deleta todas as linhas que estiverem em branco que existirem.  
'Previne loops infinitos  Let Application.EnableEvents = False   
'Caso haja mais de uma célula selecionada. 


If Target.Cells.Count > 1 Then
GoTo SelectionCode  
If WorksheetFunction.CountA(Target.EntireRow) = 0 Then 
Target.EntireRow.Delete 
End If  


Let Application.EnableEvents = True  
Exit Sub  

SelectionCode: 
If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then 
Selection.EntireRow.Delete 
End If  


Let Application.EnableEvents = True
End Sub

Tags: VBA, Excel, deletar, apagar, excluir, rows, blank, lines, linha, range, removing, EntireRow, automatically, delete





VBA Access - Excluindo fontes de dados conectadas.

Inline image 1


Quando criamos aplicações de automação com o MS Access, não raro precisarmos implementar conexões nas diversas bases de dados como: planilhas MS Excel, arquivos Texto, ou outras tabelas MS Access, sites da Web, etc... Essas conexões geralmente precisam ser refeitas e/ou excluídas.

Abaixo segue parte de códigos com variantes para aplicar ao seu gosto...Boa diversão!

Esta primeira função é muito rápida, ela checa se o objeto que desejamos excluir está disponível para deleção:


CÓDIGO: 

Function CheckExistTbl(tblName As String) As Integer
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 09:45   bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application: 
    ' Detecta a tabela e a deleta.

    Dim i As Integer ' Counter.
    
    Let CheckExistTbl = False

    For i = 0 To CurrentData.AllTables.Count - 1

        If CurrentData.AllTables(i).Name = tblName Then
            Let CheckExistTbl = True
        End If
    
    Next i
End Function

Por exemplo: 


CÓDIGO: 

If CheckExistTbl(strConectionTbl01) Then
   DoCmd.DeleteObject acTable, strConectionnTbl01
Endif


Abaixo demonstro uma das inúmeras técnicas para se conectar dados à sua aplicação MS Access, neste caso efetuo conexões a outras bases MS Access.


CÓDIGO: 

Function ConectAll(nBase As String, strConection As String)
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 09:31   bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application: 
    ' Efetua as conexões.

    Dim dbsTemp As Database
    Dim strMenu As String
    Dim strInput As String
    Dim nTbl01 As String
    Dim nTbl02 As String
    Dim nTbl03 As String

    ' Tabelas
    nTbl01 = "tbl_01x"
    nTbl02 = "tbl_02y"
    nTbl03 = "tbl_03k"

    Set dbsTemp = CurrentDb

    ' Deleta os objetos pré-existentes.
    If CheckExistTbl(strConection & nTbl01) Then
        Call Banner("Desconectando tabela:" & strConection & nTbl01)
        DoCmd.DeleteObject acTable, strConection & nTbl01

        Call Banner("Desconectando tabela:" & strConection & nTbl02)
        DoCmd.DeleteObject acTable, strConection & nTbl02

        Call Banner("Desconectando tabela:" & strConection & nTbl03)
        DoCmd.DeleteObject acTable, strConection & nTbl03
    End If

    ' Conecta o grupo de tabelas respectivas ao mês de análise.
    Call Banner("Conectando a tabela: " & strConection & nTbl01)
    ConnectOutput dbsTemp, strConection & nTbl01, ";DATABASE=" & nBase, nTbl01

    Call Banner("Conectando a tabela: " & strConection & nTbl02)
    ConnectOutput dbsTemp, strConection & nTbl02, ";DATABASE=" & nBase, nTbl02

    Call Banner("Conectando a tabela: " & strConection & nTbl03)
    ConnectOutput dbsTemp, strConection & nTbl03, ";DATABASE=" & nBase, nTbl03
End Function

 Perceba no código acima a utilização das funções explanadas anteriormente.

Abaixo observaremos a simples e suave conexão da fonte de dados com o banco de dados atual:

CÓDIGO: 

Sub ConnectOutput(dbsTmp As Database, strTbl As String, strConnect As String, strSourceTbl As String)
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 08:01   bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application:
    ' Efetua as conexões.

    Dim tblLinked As TableDef

    Set tblLinked = dbsTmp.CreateTableDef(strTbl)

    Let tblLinked.Connect = strConnect
    Let tblLinked.SourceTableName = strSourceTbl

    dbsTmp.TableDefs.Append tblLinked
End Sub


Outra técnica também eficiente, seria utilizar o código abaixo:

CÓDIGO: 

    Dim d_b As Database

    On Error GoTo ProcessingErrorMsg:

    Set d_b = CurrentDb()

    d_b.TableDefs.Delete "tbl_Bernardes"

    Exit Sub

ProcessingErrorMsg:

    Select Case Err.Number
             Case 3265 'Table
                    Resume Next
             Case Else
                    MsgBox Err.Number & " - Descrição: " & Err.Description, vbExclamation, Err.Source
    End Select
Reference:


TagsVBA, Access, datasource, data, dados, excluir,  object

VBA Access - Excluindo fontes de dados conectadas

Inline image 1

Quando criamos aplicações de automação com o MS Access não é raro precisarmos efetuar conexões em diversas bases de dados como: planilhas MS Excel, arquivos Texto, ou outras tabelas MS Access, sites da Web, etc...

Essas conexões geralmente precisam ser refeitas e/ou excluídas. Como fazê-lo?

Demonstro abaixo, partes de código com variantes para aplicar ao seu gosto...Boa diversão!

Esta primeira função é muito rápida, ela checa se o objeto que desejamos excluir está disponível para deleção:
CÓDIGO: 

Function CheckExistTbl(tblName As String) As Integer
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 09:45    bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application: 
    ' Detecta a tabela e a deleta.

    Dim i As Integer ' Counter.
    
    Let CheckExistTbl = False

    For i = 0 To CurrentData.AllTables.Count - 1

        If CurrentData.AllTables(i).Name = tblName Then
            Let CheckExistTbl = True
        End If
    
    Next i
End Function


Por exemplo: 

CÓDIGO: 

If CheckExistTbl(strConectionTbl01) Then
   DoCmd.DeleteObject acTable, strConectionnTbl01
Endif



Abaixo demonstro uma das inúmeras técnicas para se conectar dados à sua aplicação MS Access, neste caso efetuo conexões a outras bases MS Access.

CÓDIGO: 

Function ConectAll(nBase As String, strConection As String)
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 09:31    bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application: 
    ' Efetua as conexões.

    Dim dbsTemp As Database
    Dim strMenu As String
    Dim strInput As String
    Dim nTbl01 As String
    Dim nTbl02 As String
    Dim nTbl03 As String

    ' Tabelas
    nTbl01 = "tbl_01x"
    nTbl02 = "tbl_02y"
    nTbl03 = "tbl_03k"

    Set dbsTemp = CurrentDb

    ' Deleta os objetos pré-existentes.
    If CheckExistTbl(strConection & nTbl01) Then
        Call Banner("Desconectando tabela:" & strConection & nTbl01)
        DoCmd.DeleteObject acTable, strConection & nTbl01

        Call Banner("Desconectando tabela:" & strConection & nTbl02)
        DoCmd.DeleteObject acTable, strConection & nTbl02

        Call Banner("Desconectando tabela:" & strConection & nTbl03)
        DoCmd.DeleteObject acTable, strConection & nTbl03
    End If

    ' Conecta o grupo de tabelas respectivas ao mês de análise.
    Call Banner("Conectando a tabela: " & strConection & nTbl01)
    ConnectOutput dbsTemp, strConection & nTbl01, ";DATABASE=" & nBase, nTbl01

    Call Banner("Conectando a tabela: " & strConection & nTbl02)
    ConnectOutput dbsTemp, strConection & nTbl02, ";DATABASE=" & nBase, nTbl02

    Call Banner("Conectando a tabela: " & strConection & nTbl03)
    ConnectOutput dbsTemp, strConection & nTbl03, ";DATABASE=" & nBase, nTbl03
End Function


 Perceba no código acima a utilização das funções explanadas anteriormente.

Abaixo observaremos a simples e suave conexão da fonte de dados com o banco de dados atual:
CÓDIGO: 

Sub ConnectOutput(dbsTmp As Database, strTbl As String, strConnect As String, strSourceTbl As String)
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             09/11/2010 08:01    bernardess@gmail.com     https://sites.google.com/site/vbabernardes/
    ' Application:
    ' Efetua as conexões.

    Dim tblLinked As TableDef

    Set tblLinked = dbsTmp.CreateTableDef(strTbl)

    Let tblLinked.Connect = strConnect
    Let tblLinked.SourceTableName = strSourceTbl

    dbsTmp.TableDefs.Append tblLinked
End Sub


Outra técnica também eficiente, seria utilizar o código abaixo:

CÓDIGO: 

    Dim d_b As Database

    On Error GoTo ProcessingErrorMsg:

    Set d_b = CurrentDb()

    d_b.TableDefs.Delete "tbl_Bernardes"

    Exit Sub

ProcessingErrorMsg:

    Select Case Err.Number
             Case 3265 'Table
                    Resume Next
             Case Else
                    MsgBox Err.Number & " - Descrição: " & Err.Description, vbExclamation, Err.Source
    End Select



Reference:
Inspiration:

TagsVBA, Access, excluir, datasource, dados

VBA Excel - Deletando todas as procedures da planilha - Delete all macros in a workbook









Simplemente passe o rodo na sua planilha!

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

Sub DeleteProcedureCode (ByVal wb As Workbook, _
                                            ByVal DeleteFromModuleName As String, 
                                            ByVal ProcedureName As String)

' deletes ProcedureName from DeleteFromModuleName in wb
Dim VBCM As CodeModule, ProcStartLine As Long, ProcLineCount As Long

    On Error Resume Next

    Set VBCM = wb.VBProject.VBComponents(DeleteFromModuleName).CodeModule

    If Not VBCM Is Nothing Then
        ' determine if the procedure exist in the codemodule
        Let ProcStartLine = 0
        Let ProcStartLine = VBCM.ProcStartLine(ProcedureName, vbext_pk_Proc)

        If ProcStartLine > 0 Then ' prosedyren finnes, slett den
            Let ProcLineCount = VBCM.ProcCountLines(ProcedureName, vbext_pk_Proc)
            VBCM.DeleteLines ProcStartLine, ProcLineCount
        End If

        Set VBCM = Nothing
    End If

    On Error GoTo 0
End Sub



Reference:

Tags:  VBA, Excel, content, module, módulo, Class Modules in VBA, delete, del, excluir, apagar, procedure, function  


VBA Excel - Deletando uma procedure de um módulo - Delete a procedure from a module

Esse código permite que você apague somente uma procedure dentro de um módulo. Alteração cirúrgica!

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

DeleteProcedureCode Workbooks ("wb_Bernardes.xlsb"), "mdl_Functions", "ExtractData"

Sub DeleteProcedureCode (ByVal wb As Workbook, _
                                           ByVal DeleteFromModuleName As String, _
                                           ByVal ProcedureName As String)

' deletes ProcedureName from DeleteFromModuleName in wb
Dim VBCM As CodeModule, ProcStartLine As Long, ProcLineCount As Long

On Error Resume Next

    Set VBCM = wb.VBProject.VBComponents(DeleteFromModuleName).CodeModule

    If Not VBCM Is Nothing Then
        ' determine if the procedure exist in the codemodule
        Let ProcStartLine = 0
        Let ProcStartLine = VBCM.ProcStartLine(ProcedureName, vbext_pk_Proc)

        If ProcStartLine > 0 Then ' prosedyren finnes, slett den
            Let ProcLineCount = VBCM.ProcCountLines(ProcedureName, vbext_pk_Proc)

            VBCM.DeleteLines ProcStartLine, ProcLineCount
        End If

        Set VBCM = Nothing
    End If

    On Error GoTo 0
End Sub

Reference:

Tags: VBA, Excel, content, module, módulo, Class Modules in VBA, delete, del, excluir, apagar, procedure, function 


diHITT - Notícias