Abrindo planilhas do MS Excel em uma nova janela (para Windows XP)

Transcrevi este artigo do site oficial da Microsoft, pois no final dele faltou uma informação que irei destacar em vermelho. Se necessitar saber em outras versões do Windows pode-se encontrar as informações no link abaixo.

Site:

http://support.microsoft.com/kb/2551928/pt-br#xp

 

Para o Windows XP

  1. Clique em Iniciar e, a seguir, em Meu computador.

    2657982

  2. Clique em Ferramentas e depois em Opções de pasta.

    2657983

  3. Na janela Opções de pasta, clique na guia Tipos de arquivo.

    2658027

  4. Procure o formato de arquivo XLSX (folha de cálculo Microsoft Office Excel), selecione-o e clique em Avançado.

    2658028

  5. Na janela Editar tipo de arquivo, clique em Novo.

    2658029

  6. No campo Ação, digite um nome qualquer (no exemplo, Abrir em Nova Janela) e no campo Aplicativo usado para executar a ação: digite “C:\Arquivos de programa\Microsoft Office\Office12\EXCEL.EXE” “%1″

(observação importante: após clicar no botão OK na janela abaixo (Nova Ação) clique no botão [Definir Padrão] a para a nova ação criada na janela [Editar tipo  de Arquivo].)

 2658030



Observação: se estiver usando o Excel 2010 no campo Aplicativo usado para executar a ação, você deverá digitar“C:\Arquivos de programa \Microsoft Office\Office14\EXCEL.EXE” “%1″.

7. Volte a abrir um arquivo do Excel para que se abra numa nova janela.

Publicado em Dicas | Etiquetas , , , , | Deixe o seu comentário

Método para fazer log em arquivo texto em projetos MS Access

Public Sub log(Optional ByVal s1 As String, Optional ByVal s2 As String, Optional ByVal s3 As String, _
Optional ByVal s4 As String, Optional ByVal s5 As String, Optional ByVal s6 As String, Optional ByVal s7 As String, _
Optional ByVal s8 As String, Optional ByVal s9 As String, Optional ByVal s10 As String, Optional ByVal s11 As String, _
Optional ByVal s12 As String, Optional ByVal s13 As String, Optional ByVal s14 As String, Optional ByVal s15 As String, _
Optional ByVal s16 As String, Optional ByVal s17 As String, Optional ByVal s18 As String, Optional ByVal s19 As String, _
Optional ByVal s20 As String, Optional ByVal s21 As String, Optional ByVal s22 As String, Optional ByVal s23 As String, _
Optional ByVal s24 As String, Optional ByVal s25 As String)
 'http://msdn.microsoft.com/en-us/library/office/gg264278(v=office.15).aspx
 Dim folder As String
 folder = Application.CurrentProject.path & "\"
 
 
 Dim file As String
 file = Dir(folder & "*.txt")
 
 Open folder & "log.txt" For Append As #1
 Print #1, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25
 Close #1
End Sub
Publicado em MS Access, Visual Basic 6.0 e VBA | Etiquetas , | Deixe o seu comentário

Substituindo o nome do arquivo com VBA

Imagine que você tem um endereço de arquivo armazenado em uma variável String e necessita substituir apenas o nome do arquivo:

“d:\meus documentos\projeto1\outra sub pasta\cadastro cliente.xlsx

Ai você apenas quer que o nome do arquivo seja de [cadastro cliente.xlsx] para [cadastro do pedro.xlsx].

Public Function ReplaceFileName(ByVal path As String, ByVal filename As String)
 Dim parts() As String
 Dim newPath As String
 parts = Split(path, "\", , vbTextCompare)
 Dim i As Integer
 For i = 0 To UBound(parts) - 1
    newPath = newPath & Trim(parts(i)) & "\"
 Next i
 ReplaceFileName = newPath & filename
End Function

Veja o resultado na janela imediata:

?ReplaceFileName("d:\meus documentos\projeto1\outra sub pasta\cadastro cliente.xlsx","cadastro do pedro.xlsx")
d:\meus documentos\projeto1\outra sub pasta\cadastro do pedro.xlsx

Publicado em Visual Basic 6.0 e VBA | Etiquetas | Deixe o seu comentário

Removendo espaços extras entre as palavras de um texto com VBA

Com o código abaixo pode-se remover os espaços extras entre as palavras de um texto:

Public Function removeExtraSpaceBetweenWords(ByVal str As String) As String
 Dim astr() As String

 astr = Split(str, " ", , vbTextCompare)
 str = ""
 Dim i As Integer
 For i = 0 To UBound(astr)
     'Debug.Print astr(i), astr(i) = ""
     If astr(i) <> "" Then
         str = str & astr(i) & " "
     End If
 Next i
 
 removeExtraSpaceBetweenWords = Trim(str)
End Function

Exemplo de uso com a Janela imediata:

?removeExtraSpaceBetweenWords("Pedro        Abs       isso é      um        teste")

resultado:

Pedro Abs isso é um teste

Publicado em Visual Basic 6.0 e VBA | Etiquetas , | Deixe o seu comentário

Listando todas as celulas nomeadas de uma planilha MS Excel

Em um módulo padrão:

Option Explicit

 Sub ListAllNames()
 Dim n As Name
     For Each n In ActiveWorkbook.Names
         Debug.Print n.Name, n.RefersTo
     Next n
 End Sub

 

Na janela imediata:

ListAllNames
Cargo =Identificação!$G$19
CEP =Identificação!$P$14
Cidade =Identificação!$G$14
CNPJ =Identificação!$G$10
Contato =Identificação!$G$18
DataDeFundacao =Identificação!$P$12
Distribuidor =Identificação!$K$17
Email =Identificação!$G$20
Endereco =Identificação!$G$13
Exporta =Identificação!$E$25
Fabricante =Identificação!$G$17
Fax =Identificação!$P$20
FormaLegal =Identificação!$G$12
GrupoInternacional =Identificação!$G$16
Inscricao =Identificação!$G$11
NaturezaDeAtividade =Identificação!$G$21
NomeFantasia =Identificação!$G$9
NumeroDaInscricao =Identificação!$P$11
NumeroDeFuncionarios =Identificação!$P$10
PrestadorDeServicos =Identificação!$O$17
PrincipaisProdutos =Identificação!$G$22
RazaoSocial =Identificação!$G$8
Telefone =Identificação!$P$19
WebSite =Identificação!$G$15

O texto a esquerda do sinal de igual (=) é o nome da celula nomeada e a direita é o endereço.

Publicado em Visual Basic 6.0 e VBA | Etiquetas , | Deixe o seu comentário

Sobrecarga de métodos com VBA (Overload)

Na linguagem de programação Java é possível definir, em uma classe, dois métodos com o mesmo nome porém com assinaturas diferentes. Faz parte da assinatura do método primeiramente o seu nome seguido dos tipos dos parâmetros que este contém. Abaixo um simples exemplo de sobrecarga de métodos na linguagem Java:

public void changeSize(int size, String name) { }

public int changeSize(int size, float pattern) { }

public void changeSize(float pattern, String name) throws IOException { }

Em negrito, está destacado aquilo que faz parte a assinatura do método conforme já mencionado acima. Sobrecarga de métodos é uma das características das boas linguagens orientadas a objetos.

Mas … e no VBA ? Como funciona a sobrecarga de métodos ?

Apesar do VBA possuir características de uma linguagem orientada a objetos como o Java esta não é totalmente orientada a objetos. Veja este post para outros detalhes.

Veja que ao tentar compilar uma aplicação VBA que contenha dois métodos com o mesmo nome a linguagem reclama:

Tentativa de sobrecarga com VBA

Obs: para compilar vá no menu Depurar\Compilar VBA Project:

Compilar VBA

E então … como podemos fazer uma “sobrecarga” do método doStuff para que ele realize comportamentos diferentes baseado no tipo do(s)  seu(s) parâmetro(s) ?

Vamos usar o “mágico” tipo Variant. Variant pode representar qualquer tipo de variável no VBA: Textos, Números inteiros ou decimais, objetos, enumerações, etc …

Abaixo, o código VBA compila e estamos simulando a sobrecarga (overload) do método doStuff:

Sobrecarga VBA OK

Mais um detalhe, não podemos nos esquecer do uso de parâmetros opcionais nas funções e métodos do VBA para tratar sobrecarga de métodos.

Veja também:

Artigos com a palavra overload.

Artigos com a palavra sobrecarga.

VBA orientado a objetos

Outros posts de VBA e VB6

Publicado em Java, MS Access, OOAD e POO, Visual Basic 6.0 e VBA | Etiquetas , , , , | Deixe o seu comentário

Como automatizar a vinculação de tabelas no MS Access

É uma prática usual para quem trabalha com MS Access separar o arquivo de DADOS e de SISTEMA. Inclusive a Microsoft sugere esta boa prática, tanto é que no próprio MS Access há uma ferramenta de separação de tabelas e outros conteúdos. Veja imagem abaixo:

Imagem

 

Definindo, arquivo de DADOS seria o *.mdb ou *.accdb que contém as tabelas. Arquivo de SISTEMA é o que contém todos os outros objetos tais como: formulários, relatórios, marcos, módulos, módulos de classe, consultas, etc…

O problema é que se o usuário fica mudando o arquivo de dados de lugar, a re-vinculação das tabelas não é algo assim … muito intuitivo … do tipo que um usuário comum (sem nenhum conhecimento de MS Access) faria com facilidade.

Deixo, então, um exemplo para download de como automatizar esta vinculação das tabelas com VBA:

VincularTabelas.rar

Veja: Outros posts de VBA e VB6

Publicado em MS Access, Visual Basic 6.0 e VBA | Etiquetas , , | Deixe o seu comentário

Planejamento e controle da produção, um exemplo de explosão do calculo da Necessidade Líquida descontando estoques intermediários.

Estrutura Hierárquica BicicletaDando sequência ao artigo anterior, segue mais uma apresentação que ilustra o calculo da da Necessidade Líquida de produção de um determinado produto explodindo a necessidade de produção de todos os componentes e sub-componentes do mesmo. Além disso, descontando o estoque já existente de cada nó da árvore.

 Veja a apresentação: Calculo da Necessidade Líquida.ppsx

Veja também:
Planejamento e controle da produção, um exemplo de sequenciamento de operações com restrições de recursos produtivos.

- Outros relativos

Publicado em Administração, Projetos | Etiquetas , , , , , | 2 Comentários

Planejamento e controle da produção, um exemplo de sequenciamento de operações com restrições de recursos produtivos.

Estrutura Hierárquica Bicicleta

Disponibilizo uma apresentação em MS Power Point que ilustra a lógica (algorítmo) de um sistema que faz o sequenciamento de operações que representam o processo produtivo de um produto fictício.

A ideia é que o processo produtivo de um determinado produto complexo contempla componentes (produtos filhos) que também possuem seu processo produtivo.

Define-se processo produtivo como o conjunto de operações realizadas para produzir um produto, sendo este intermediário (componente) ou final (produto de venda).

Cada operação deve utilizar um único recurso para transpassar o processo. Um recurso pode estar contido em um grupo de recursos similares para que, no momento do sequenciamento das operações, se escolha o que possua mais disponibilidade de tempo e brevidade para concluir a operação.

Veja a apresentação: Lógica do Sequenciamento.ppsx

Veja também:
MS Access e TreeView
MS Access e TreeView 2
Controle o custo de suas Receitas de Cozinha – MS Access
Outros relativos

Publicado em Administração, Projetos | Etiquetas , , , , , | Deixe o seu comentário

MS Access e Relatório estilo Gantt (Diagrama de Gantt)

Neste artigo deixo um exemplo simplificado de relatório no estilo Gantt para download. Para quem não conhece, este tipo de relatório é comumente utilizado para gerenciamento de projetos (de tecnologia ou não). Veja imagem:

Imagem

Observação: há um pouco de código  VBA (Visual Basic for Applications)  para posicionar os campos no relatório.

Faça o download GanttChart.rar

Veja também:

http://pt.wikipedia.org/wiki/Diagrama_de_Gantt

Publicado em MS Access | Etiquetas , , , , , | Deixe o seu comentário