SANDWICH PROJECT 2016 - VBA Excel: Navegando entre as abas

SANDWICH PROJECT 2016 - VBA Excel - VBA Excel: Navegando entre as abas



Um recurso interessante quando queremos propiciar a navegação entre diversas abas (Sheets) de uma mesma planilha é criarmos um formulário, colocando nele 2 botões para navegação. Um para a direita, que avançará e outro botão para a esquerda que retornará.

No caso abaixo, além de avançarmos as pastas o botão ainda posicionará na mesma célula em que estávamos na planilha corrente.

Essa facilidade de navegação é interessante. Experimente!

Sub DOSSC()
    ' André Bernardes             16/09/2008 14:33    bernardess@gmail.com
    ' Move-se para a esquerda, quando não houver mais pastas avisa automaticamente.
    ' DOSSC=down one sheet same cell

    On Error Resume Next
    
    Application.Goto Reference:=ActiveWorkbook.Sheets(ActiveSheet.Index - 1).Range(ActiveCell.Address)
     
    ' Caso ocorra um erro, aborta a Sub e envia mensagem.
    If Err.Number = 0 Then Exit Sub
    
    MsgBox ("Não é possível retornar mais, você está posicionado na primeira pasta, (" & Application.ActiveSheet.Name & ")")  'Caso o usuário esteja na primeira past (sheet).
End Sub

Sub UOSSC()
    ' Author:                             Date:                       Contact:
    ' André Bernardes             16/09/2008 14:39    bernardess@gmail.com
    ' Move-se para a direita, quando não houver mais pastas avisa automaticamente.
    ' UOSSC=up one sheet same cell

    On Error Resume Next
    
    Application.Goto Reference:=ActiveWorkbook.Sheets(ActiveSheet.Index + 1).Range(ActiveCell.Address)
     
    ' Caso ocorra um erro, aborta a Sub e envia mensagem.
    If Err.Number = 0 Then Exit Sub

    MsgBox ("Não é possível avançar mais, você está posicionado na última pasta, (" & Application.ActiveSheet.Name & ")")  'Caso o usuário esteja na primeira past (sheet).
End Sub


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


SANDWICH PROJECT 2016 - VBA Excel - Gráfico - Redefine tamanho de bolha

SANDWICH PROJECT 2016 - VBA Excel - Gráfico - Redefine tamanho de bolha



Este exemplo define o tamanho da bolha num gráfico com 96% do tamanho padrão se o gráfico for um gráfico de bolhas 2D.

With Worksheets(1).ChartObjects(1).Chart

    If .ChartType = xlBubble Then

        Let .ChartGroups(1).BubbleScale = 96

    End If

End With


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


SANDWICH PROJECT 2016 - VBA Excel: Efetuando loop no intervalo nomeado

SANDWICH PROJECT 2016 - VBA Excel: Efetuando loops no intervalo nomeado



Não raro nomeamos um intervalo, range, de dados para a manipulação mais precisa. Também podemos fazê-lo para cuidar de certos aspectos da formatação.

Abaixo temos um código que faz um loop através de cada célula de um intervalo nomeado usando um loop For Each...Next. Se o valor de qualquer célula no intervalo exceder o valor de limit, a cor da célula será alterada para amarelo.

Este código é muito funcional e prático para montar semáforos em uma planilha de dados que aponta resultados.

Sub ApplyColor()

    Const Limit As Integer = 25

    For Each c In Range("MyRange")

        If c.Value > Limit Then
            Let c.Interior.ColorIndex = 27
        End If

    Next c

End Sub


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

SANDWICH PROJECT 2016 - VBA Excel: Definindo o tipo de Gráfico

SANDWICH PROJECT 2016 - VBA Excel: Definindo o tipo de Gráfico



Quando o gráfico estiver ativo, use a propriedade ActiveChart para fazer referência a ele. O gráfico fica ativo se o usuário o selecionou ou se foi ativado com o método Activate

O exemplo abaixo ativa o 1º gráfico e, em seguida, define o título e o tipo dele.

Charts(1).Activate 
With ActiveChart 
    Let .Type = xlLine 
    Let .HasTitle = True 
    Let .ChartTitle.Text = "Vendas de Janeiro" 
End With


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


SANDWICH PROJECT 2016 - VBA Access: Copiando query com outro nome programaticamente

SANDWICH PROJECT 2016 - VBA Access: Copiando query com outro nome programaticamente


Não raro ocorre a necessidade de copiarmos o conteúdo de uma query existente para outra com um nome diferente. Quando esta necessidade surgir, não precisará perder tempo em saber como fazê-lo, abaixo está o caminho.

Dica: Uma forma similar pode ser utilizada para copiar quaisquer objeto do MS Access.

Function CpyNQry (nQryNm As String, nQryNm As String) As Boolean
' André Bernardes 04/2009 bernardess@gmail.com 
' Copia uma query qualquer para outra com outro nome. 
CurrentDb().CreateQueryDef nQryNm, CurrentDb().QueryDefs(QryNm).SQL 
Let CpyNQry = (Len(CurrentDb().QueryDefs(nQryNm).Name) > 0) 
Application.RefreshDatabaseWindow
End Function


SANDWICH PROJECT 2016 - VBA Access: Deletando tabelas e querys programaticamente

SANDWICH PROJECT 2016 - VBA Access: Deletando tabelas e querys programaticamente
































Quando estamos criando múltiplas tabelas atualizáveis dinamicamente no MS Access e as disponibilizando para consultas externas como no próprio Access, Excel, Word ou Powerpoint, por vezes precisaremos checar se os seus respectivos nomes já existem e em caso positivo deletá-las.

Uma funcionalidade para tal execução no próprio MS Access, através do nome da tabela, é a que descrevo abaixo:


    Function CheckTable (nTable As String)
        ' André Bernardes             06/06/2008 07:23    bernardess@gmail.com

        Dim db As Database
        Dim i As Integer

        Set db = DBEngine.Workspaces(0).Databases(0)

        db.TableDefs.Refresh

        For i = 0 To db.TableDefs.Count - 1
            If nTable = db.TableDefs(i).Name Then
                DoCmd.DeleteObject acTable, nTable      ' Table Exists.

                Exit For
            End If
        Next i

        Set db = Nothing
    End Function


Para deletarmos Querys, utilizaríamos:


Function CheckQuery (nQuery As String)
    ' André Bernardes             30/04/2009 11:26    bernardess@gmail.com

    Dim db As Database
    Dim i As Integer

    Set db = DBEngine.Workspaces(0).Databases(0)

    db.QueryDefs.Refresh

    For i = 0 To db.QueryDefs.Count - 1
        If nQuery = db.QueryDefs(i).Name Then
            DoCmd.DeleteObject acQuery, nQuery      ' Query Exists.

            Exit For
        End If
    Next i

    Set db = Nothing
End Function


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