Você está na página 1de 6

CODIGOS VBA

AutoFilterMode, Filtro VBA


With ActiveSheet
.AutoFilterMode = False
.Range("A1:D1").AutoFilter
End With

Ver número da coluna


col = ActiveCell.Column 'Ex: Coluna 12

Selecionar varias Planilhas ao mesmo tempo


Dim ws1As Worksheet
For Each ws1 In Worksheets
If ws1.Visible = xlSheetVisible Then
ws1.Select False
End If
Next ws1

Deletar varias Planilhas ao mesmo tempo


Dim wsPlan2 As Worksheet
For Each wsPlan2 In Worksheets(Array( _
"Plan1", _
"Plan2", _
"Plan3", _
"Plan4" _
))
Application.DisplayAlerts = False
wsPlan2.Select
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
Next wsPlan2

MsgBox com opção de cancelar:


If MsgBox("Selecione o TXT com os DESIGNADOS!", vbOKCancel) = vbCancel
Then
'do whatever for cancel here, change to vbok if you'd like.
Exit Sub
End If
Copia Linhas Usando Critérios
Dim vCopiaLinha As Integer
Dim vCopiaLinha2 As Integer
Dim vLocalizaLinha2 As Integer

'Copia todas as linhas em que na coluna F tenha o critério 07-001 e cola em outra
planilha

vCopiaLinha = 2 ' a partir da linha 2


I=2
For vLocalizaLinha = 2 To Cells(Rows.Count, "F").End(xlUp).Row
If Range("F" & CStr(vLocalizaLinha)).Value = "07-001" Then
Range("A" & vLocalizaLinha & ":G" & vLocalizaLinha).Select
Selection.Copy
Sheets("CargoVago").Select
Range("A" & I).Select
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Application.CutCopyMode = False
'Contador move para a proxima linha
vCopiaLinha = vCopiaLinha + 1
I=I+1
'volta para Planilha1 e continua a busca
Sheets("Tabela").Select
End If
Next vLocalizaLinha

Caminho da Planilha:
Dim Caminho As String
Caminho = ActiveWorkbook.Path & "\"

Erro em Vba
On Error Resume Next

Desabilitar alertas
Application.DisplayAlerts = False

Pegar valor em uma calula


Worksheets("Menu").Range("C13").Value
Abrir Uma Pasta de trabalho:
Workbooks.Open Filename:=Caminho & "Ação Judicial_MACRO.xlsm"

IMPRESSÃO

Varias planilhas em modo paisagem para impressão


Dim wsPlan2 As Worksheet
For Each wsPlan2 In Worksheets(Array( _
"CONSOLIDADO", _
"Nominal - Efetivos", _
"Nominal - Desig. cargo vago", _
"Nominal - Desig. Substit." _
))

Application.DisplayAlerts = False
wsPlan2.Select
With ActiveSheet.PageSetup
.Orientation = xlLandscape
End With
Application.DisplayAlerts = True

Next wsPlan2

Colocar Numero da pagina no cabeçalho


Application.PrintCommunication = False
With ActiveSheet.PageSetup
.RightHeader = "&P"
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True

End With
Application.PrintCommunication = True

Imprimir Salvar em PDF


Dim nome_arquivo As String
nome_arquivo = Worksheets("Menu").Range("L1").Value

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _


ActiveWorkbook.Path & "\" & nome_arquivo & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

Quebra de linha em VBA


vbCrLf

Encerra e apaga as conexões

Do While ActiveWorkbook.Connections.Count > 0


ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop

Contar Numero de Planilhas


ActiveWorkbook.Sheets().Count
Remove caracteres especiais
Function Acento(caract)

'Acentos e caracteres especiais que serão buscados na string


'Você pode definir outros caracteres nessa variável, mas
' precisará também colocar a letra correspondente em codiB
codiA = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ"

'Letras correspondentes para substituição


codiB = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"

'Armazena em temp a string recebida


temp = caract

'Loop que irá de andará a string letra a letra


For i = 1 To Len(temp)

'InStr buscará se a letra indice i de temp pertence a


' codiA e se existir retornará a posição dela
p = InStr(codiA, Mid(temp, i, 1))

'Substitui a letra de indice i em codiA pela sua


' correspondente em codiB
If p > 0 Then Mid(temp, i, 1) = Mid(codiB, p, 1)
Next

'Retorna a nova string


Acento = temp

End Function

Pega o Endereço da célula ativa Tipo, A1, B2 etc


ActiveCell.Address(ColumnAbsolute, RowAbsolute)