Arquivo

Posts Tagged ‘planilha’

VBA Copiar colar arquivos diferentes

 

copiar colar vba

Vocês votaram na enquete aqui do site excel e vba e em segundo lugar ficou o assunto VBA Copiar colar arquivos diferentes.
A maneira que demonstro é uma mais avançada e também com menos código.


Porém se você não gostar ou achar complicado aqui mesmo no site há outras maneiras (passo1 e passo2)que envolvem copiar célula por célula com um loop.

Você que escolhe a melhor maneira para trabalhar excel com vba.

 

1 – Vamos ao codigo VBA Copiar Colar arquivos diferentes:

________________________________________________________

 

 

Sub COPIAR_COLAR_ARQUIVO_DIFERENTES()
'Declarações

Dim appExcel As Excel.Application
Dim wb As Excel.Workbook

'A Aplicação Excel é criada aqui:

Set appExcel = CreateObject("Excel.Application")

'A linha abaixo é importante: eu estou dizendo que todo o processo seja invisível.
'Talvez para testes seja importante deixar como True e assim acompanhar o processo

appExcel.Visible = False

'Note que, na linha abaixo, foi adicionado um Workbook (um plan)
'E esse workboook fica nomeado como "wb"

Set wb = appExcel.Workbooks.Add

'Agora para simplificar o processo, também vou gravar o nome da planilha origem

Set oldPlan = Workbooks("planilha_antiga.xlsm").Worksheets("Plan1")

'Então copio todos os dados da tabela

oldPlan.Range("A2").CurrentRegion.Copy

'Na linha abaixo eu colo os dados na nova planilha (lembre-se do "wb")

wb.Worksheets("Plan1").Range("A1").PasteSpecial xlPasteValues

'Nas linhas abaixo eu salvo a planilha no mesmo diretorio que a planilha antiga

diretorio = ThisWorkbook.Path & "\"
nome = "exemplo.xls"
appExcel.DisplayAlerts = False
wb.SaveAs Filename:=diretorio & nome, FileFormat:=xlNormal

'Agora eu elimino o processo aberto do excel

appExcel.Quit

'E finalizado as declarações

Set wb = Nothing
Set appExcel = Nothing

End Sub

 

2 – Vídeo Demonstrativo

 

 

Verificar todas as planilhas no diretorio

O código abaixo irá verificar planilha por planilha em seu diretório
Com isso você pode mostrar em um combobox ou então abrir cada planilha

________________________________________
sub diretorio ()

Dim nomeArquivo As String

nomeArquivo = ActiveWorkbook.Name
enderecoArquivo = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) – Len(nomeArquivo))

qtdeBases = enderecoArquivo + “bases\”
nomePlanilha = Dir(qtdeBases & “*.xls*”)

Do While Len(nomePlanilha) > 0
‘ codigo que voce desejar….exemplo abrir planilha
nomePlanilha = Dir()
Loop

end sub

Alterar Celula Automaticamente sem botão

 

Para alterar a celula automaticamente devemos inserir o codigo na plan1, não é em módulos

Alterar Celula Automaticamente

‘Este código altera o conteúdo da célula sem necessidade de ter um botão
‘Após inserir o número na célula A1 , irá exibir automaticamente na célula B1 o valor da célula A1 somando ele mesmo e dividindo por 2

 

Codigo para Alterar Celula Automaticamente

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then
   Target.Offset(0, 1).Value = Target.Offset(0, 1).Value + Target.Value / 2
End If

End Sub

Agora basta usar sua criatividade e usar este recurso do jeito que mais lhe agrada e assim deixar sua planilha mais intuitiva exemplo: como alterar uma tabela dinamica automaticamente

 

Segue vídeo de demonstração

 

 

Desabilitar Menu Excel

Abaixo segue código para desabilitar menu excel tanto do excel 2003 como as mais atualizadas versões de office.

Basta copiar o codigo e colar no vba (alt + f11).

 

Desabilitar Menu Excel

 

Codigo para Desabilitar Menu Excel 2003 e 2007

_________________________________________________________

VERSÃO 2003

Desabilita

For Each Barras In Application.CommandBars

   Let Barras.Visible = False ' Desabilita todas as barras do MS Excel.

Next

Habilita

For Each Barras In Application.CommandBars

   Let Barras.Visible = True ' Re-habilita todos os Menus do MS Excel.Next

Next

_________________________________________________________

VERSÃO 2007

Desabilita

With Application
   Let .DisplayFormulaBar = False  ' Desabilita o Menu de fórmula.
   Let .DisplayStatusBar = False   ' Desabilita o Menu de Status.
   Let .DisplayFullScreen = True
   Let .CommandBars("Full Screen").Visible = False
   Let .CommandBars("Worksheet Menu Bar").Enabled = False
End With

Habilita

With Application
   Let .DisplayFormulaBar = True  ' Re-habilita o Menu de fórmulas.
   Let .DisplayStatusBar = True   ' Re-habilita o Menu de Status.
   Let .DisplayFullScreen = False
   Let .CommandBars("Worksheet Menu Bar").Enabled = True
End With

_______________________________________________________

Fonte: http://inanyplace.blogspot.com

Verificar Versão Office vba

Existe algumas discrepâncias de código entre o excel 2003, 2007 e as mais diversas versões, para isso vale usar um artifício simples que utiliza do código para verificar versão office .

Versão Office .

 

Código Verifica Versão Office VBA

 

Sub VerificaVersaoExcel ()

If Application.Version = "12.0" Then
   MsgBox "A versão do Excel  é 2007."

ElseIf Application.Version = "11.0" Then
   MsgBox "A versão do Excel  é 2003."

ElseIf Application.Version = "8.0" Then
   MsgBox "A versão do Excel é 97."

End If

End Sub

Como Não Salvar Planilha Excel

No decorrer dos nossos códigos sempre surge a necessidade de nao salvar a planilha, ou seja não permitir que ninguém possa salvar a não ser a pessoa que saiba a senha.
Sinceramente este código é tão funcional e antigo que realmente não lembro a fonte.

Eu constantemente faço o código mais simples, mas e se um chefe especifico tem a permissão para salvar as alterações da planilha e não sabe mexer no vba? E quando isso acontecer esse codigo irá te “salvar”.

 

Lembrar de colocar o código dentro de EstaPasta_de_Trabalho

não salvar

 

Código Não Salvar

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim Senha As String
Senha = "123"

If InputBox("Digite a senha para Salvar, ou em branco apenas fecha.", "Proteção") = Senha Then
   Exit Sub
Else
   If SaveAsUI = True Then
      MsgBox "Não é permitido 'Salvar Como'"
      Cancel = True
      Exit Sub
   End If

   If SaveAsUI = False Then
      MsgBox "Não é permitido 'Salvar'"
      Cancel = True
      Exit Sub
   End If
End If

End Sub

Como Retirar Alertas E Avisos do office

Ao adicionar a linha abaixo entre os seus códigos de vba, você irá perceber que não irá exibir mensagens do office e irá retirar alertas também.

Estes alertas ocorrem quando você através do código tenta sobrescrever arquivo no salvamento, ou para abrir arquivo e etc.

 

retirar alertas

 

Copie o Codigo Retirar Alertas excel

Application.DisplayAlerts = False

 

Fechar planilha automático

O código abaixo permite que você coloque o tempo que achar mais adequado para fechar planilha automático ao ficar inativa! você decide o tempo!

Para dados sigilosos é uma excelente idéia!

Bem, como nesse caso o código é segmentado achei melhor disponibilizar o código em imagens.

 

Define tempo para fechar

Adiciona o tempo que você acha ideal e faz a verificação ao abrir o arquivo

Fechar planilha automáticamente

 

 

Incrementa tempo ao alterar dados

Verifica cada alteração dentro da planilha, adicionando maior tempo em cada uma alteração.

Fechar planilha automático

 

 

Fechar planilha automático

Nessa etapa se o tempo estiver expirado,  será chamado a procedure de salvar e fechar a planilha.

Fechar planilha automático