Para evitar a tela preta tradicional no final de uma apresentação de slides no Powerpoint, basta entrar em Arquivo > Opões > Avançado > Apresentações de slides e desmarcar a opção "terminar com slide preto".
;-)
Eventualmente dicas sobre outros programas, Windows e hardware.
terça-feira, 23 de maio de 2017
sábado, 22 de abril de 2017
Alinhando texto no Word
Esta é uma técnica largamente utilizada na elaboração de contratos no Word.
Trata-se de uma tabela que conterá texto em suas células onde o alinhamento (esquerda, direita, centro, superior, inferior, etc.) funciona igual ao Excel, com a qual a maioria das pessoas já está familiarizada.
Após o alinhamento efetuado, basta deixar as linhas das bordas da tabela invisíveis, vejam o resultado abaixo.
;-)
Trata-se de uma tabela que conterá texto em suas células onde o alinhamento (esquerda, direita, centro, superior, inferior, etc.) funciona igual ao Excel, com a qual a maioria das pessoas já está familiarizada.
Após o alinhamento efetuado, basta deixar as linhas das bordas da tabela invisíveis, vejam o resultado abaixo.
;-)
sábado, 18 de março de 2017
Preenchendo tabela no Word com VBA
Automatizar tarefas no Word não é algo muito comum, desde que comecei a programar no Office, vi muito pouca coisa nesse sentido.
Para registro, vou postar alguns códigos para que sirva de aprendizado para quem está começando e para consultas aos que já utilizaram e esquecem de vez em quando (como eu...).
Abaixo 3 formas de se referenciar células de uma tabela no Word, lembrando que o uso de tabelas é muito útil principalmente em documentos que devem ser preenchidos como contratos, recibos, etc.
;-)
Para registro, vou postar alguns códigos para que sirva de aprendizado para quem está começando e para consultas aos que já utilizaram e esquecem de vez em quando (como eu...).
Abaixo 3 formas de se referenciar células de uma tabela no Word, lembrando que o uso de tabelas é muito útil principalmente em documentos que devem ser preenchidos como contratos, recibos, etc.
;-)
Option Explicit
Sub PreencheCelula()
ActiveDocument.Tables(1).Rows(1).Cells(2).Range.Text = "Linha 1, coluna 2"
ActiveDocument.Tables(1).Cell(2, 2).Range.Text = "Linha 2, coluna 2"
ActiveDocument.Tables(1).Columns(2).Cells(3).Range.Text = "Linha 3, coluna 2"
End Sub
sábado, 11 de março de 2017
Cálculo de dígito verificador - módulo 10
O código do módulo 11 está perdido em algum lugar no blog, vou deixar aqui o cálculo do módulo 10.
;-)
;-)
Public Function modulo_10(sOrigem As String) As String
' Função para cálculo do dígito de auto conferência
Dim iK As Integer ' Contador
Dim iValor As Integer ' Variável para acumular valor
Dim iDigito As Integer ' Variável para o conteúdo de cada posição
iValor = 0
For iK = Len(sOrigem) To 1 Step -2 ' Inicia o laço começando da direita para a esquerda pulando 2 posições
iDigito = (Val(sOrigem) \ (10 ^ (Len(sOrigem) - iK))) Mod 10
If (iDigito * 2) >= 10 Then ' Se a multiplicação for maior ou igual a dez, soma-se os dígitos separadamente
iValor = iValor + (((iDigito * 2) \ 10) + (iDigito * 2) Mod 10)
Else ' Senão, multiplica-se e soma-se ao total
iValor = iValor + (iDigito * 2)
End If
If (iK - 1) <= Len(sOrigem) Then
' Se não ultrapassar otamanho da string, soma-se ao total
iDigito = (Val(sOrigem) \ (10 ^ (Len(sOrigem) - (iK - 1)))) Mod 10
iValor = iValor + iDigito
End If
Next iK
modulo_10 = Trim(Str((10 - IIf((iValor Mod 10) = 0, 10, (iValor Mod 10)))))
' Retorna o DAC
End Function
sexta-feira, 10 de março de 2017
Como deixar o Google Maps mais rápido
As vezes o Google Maps fica irritantemente lento e para isso segue uma dica.
No link do Maps, acrescente uma vírgula e "force=lite" conforme abaixo:
https://www.google.com.br/maps/@-23.5679681,-46.5403448,15z?hl=pt-BR,force=lite
Obviamente que os cuidados básicos devem ser tomados como limpeza de arquivos temporários, cookies, etc.
;-)
No link do Maps, acrescente uma vírgula e "force=lite" conforme abaixo:
https://www.google.com.br/maps/@-23.5679681,-46.5403448,15z?hl=pt-BR,force=lite
Obviamente que os cuidados básicos devem ser tomados como limpeza de arquivos temporários, cookies, etc.
;-)
quarta-feira, 8 de março de 2017
Somente números numa caixa de texto
Método para não permitir a digitação de caracteres não numéricos numa caixa de texto:
Private Sub Texto1_KeyPress(KeyAscii As Integer)
If InStr(1, "0123456789" & vbKeyDelete & Chr(8), Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
;-)
segunda-feira, 6 de março de 2017
Extraindo só números de uma célula da planilha
Deve haver dezenas de maneiras diferentes de fazer, vou deixar registrada aqui uma delas.
;-)
;-)
Public Function fn_SoNumeros(texto As String) As Double
Dim i As Integer
Dim valor As String
Application.Volatile
'Loop de 1 a quantidade de caracteres da célula
For i = 1 To Len(texto)
'Se caracter for numérico, concatena na string
If IsNumeric(Mid(texto, i, 1)) Then valor = valor & Mid(texto, i, 1)
Next
fn_SoNumeros = valor
End Function
quarta-feira, 1 de março de 2017
Listar e-mails numa tabela do Access
As vezes a gente precisa de coisas diferentes e a necessidade acaba gerando códigos novos: como listar os e-mails numa tabela (com pouca adaptação, poderia ser uma planilha do Excel).
;-)
;-)
Sub Listar_emails_Access()
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim contador_itens As Integer
Dim nms As Outlook.NameSpace
Dim fld As Outlook.MAPIFolder
Dim itm As Object
Set nms = Application.GetNamespace("MAPI")
Set fld = nms.PickFolder
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & "C:Base.accdb"
rst.Open "Tabela1", cnn, adOpenKeyset, adLockOptimistic
contador_itens = fld.Items.Count
For Each itm In fld.Items
If itm.Class = olMail Then
rst.AddNew
rst!titulo = itm.Subject
rst!Data = itm.ReceivedTime
rst.Update
End If
Next itm
rst.Close
cnn.Close
MsgBox "Fim"
End Subv
segunda-feira, 27 de fevereiro de 2017
Excel - Converter HTML de uma célula em texto
Aconteceu com um colega outro dia: ao importar um arquivo exportado no formato HTML, o texto veio com as tags dentro das células conforme mostra a figura na célula A1:
Numa rápida busca pela internet, consegui o código abaixo para resolver o problema (que na figura acima está na função da célula B1).
Não esquecer de marcar a referência no VBA:
Numa rápida busca pela internet, consegui o código abaixo para resolver o problema (que na figura acima está na função da célula B1).
Não esquecer de marcar a referência no VBA:
Public Function ConverterHTML(textoHTML) As String
Dim Hdoc As New HTMLDocument
Hdoc.body.innerHTML = textoHTML
ConverterHTML = Hdoc.body.innerText
End Function
Usando funções do Excel no VBA em outros aplicativos
Algumas funções do Excel não existem no VBA e reescrevê-las é trabalhoso, fora o risco de errar no cálculo.
Para isso, você pode referenciar o Excel no VBA e utilizar a função nativa dele, vejam um exemplo com a função XTIR (lembrando que em inglês chama-se de XIRR):
;-)
Para isso, você pode referenciar o Excel no VBA e utilizar a função nativa dele, vejam um exemplo com a função XTIR (lembrando que em inglês chama-se de XIRR):
;-)
sábado, 25 de fevereiro de 2017
Sobre senhas de proteção de arquivos e códigos
Nos anos 80 era comum os programadores não compartilharem seus códigos pois não havia Google e conhecimento era praticamente sinônimo de emprego garantido.
Eu mesmo tive muita dificuldade em dar os primeiros passos em programação, as informações que a gente conseguia era somente pagando cursos especializados (para quem ainda não estava empregado na área).
É certo que cursos ensinam somente os primeiros passos, não há tempo hábil para passar todos os macetes de programação e se houvesse, o preço sera exorbitante.
Sorte de nós que hoje a internet proporciona uma fonte de aprendizado praticamente sem limites e reinventar a roda em programação, virou coisa do passado.
Ai vem a questão de proteger seu código achando que é algo inovador e realmente em precedentes.
Particularmente sou contra proteger códigos, acho egoismo e basta pesquisa no Google que rapidamente se acha algo equivalente que faz a mesma função. Tem muita gente disposta a compartilhar seus códigos e penso que o melhor disso é que, nosso esforço como programador, pode ser direcionado para problemas realmente novos. Exemplo típico é o cálculo do dígito verificador do CPF. Ninguém vai perder tempo escrevendo um programa para isso, pesquise na internet e em poucos segundos terá a solução pronta.
Outro dia num fórum de discussão, um colega queria uma forma de proteger uma planilha para que ninguém visualizasse ou copiasse parte do conteúdo, apesar de ser necessário ver os dados para poder operar a planilha! Respondi que seria impossível, qualquer um com celular pode tirar uma foto e mandar o recurso do "trave o Print Screen" para o espaço!
Bom, cada um faz o que acha melhor, fica aqui a minha opinião e um apelo: compartilhem seus conhecimentos!
;-)
Eu mesmo tive muita dificuldade em dar os primeiros passos em programação, as informações que a gente conseguia era somente pagando cursos especializados (para quem ainda não estava empregado na área).
É certo que cursos ensinam somente os primeiros passos, não há tempo hábil para passar todos os macetes de programação e se houvesse, o preço sera exorbitante.
Sorte de nós que hoje a internet proporciona uma fonte de aprendizado praticamente sem limites e reinventar a roda em programação, virou coisa do passado.
Ai vem a questão de proteger seu código achando que é algo inovador e realmente em precedentes.
Particularmente sou contra proteger códigos, acho egoismo e basta pesquisa no Google que rapidamente se acha algo equivalente que faz a mesma função. Tem muita gente disposta a compartilhar seus códigos e penso que o melhor disso é que, nosso esforço como programador, pode ser direcionado para problemas realmente novos. Exemplo típico é o cálculo do dígito verificador do CPF. Ninguém vai perder tempo escrevendo um programa para isso, pesquise na internet e em poucos segundos terá a solução pronta.
Outro dia num fórum de discussão, um colega queria uma forma de proteger uma planilha para que ninguém visualizasse ou copiasse parte do conteúdo, apesar de ser necessário ver os dados para poder operar a planilha! Respondi que seria impossível, qualquer um com celular pode tirar uma foto e mandar o recurso do "trave o Print Screen" para o espaço!
Bom, cada um faz o que acha melhor, fica aqui a minha opinião e um apelo: compartilhem seus conhecimentos!
;-)
Função para cálculo de parcelas - sistema PRICE
O Excel tem funções financeiras e dentre elas, o cálculo de parcelas "PGTO".
Este cálculo é o mesmo da famosa calculadora HP12C, muito fácil e simples de ser executado.
Existe um outro jeito de calcular o valor das parcelas, porém, diferente dos dois primeiros que mencionei, fazem a contagem de dias corridos entre as parcelas, ou seja, o prazo para o cálculo pode ter 30, 30, 28 ou 29 dias (lembrando que as fórmulas prontas - Excel e HP12C - consideram sempre o mês de 30 dias).
Abaixo o código VBA para efetuar esse cálculo e no link do cabeçalho do blog, a planilha Excel de exemplo para melhor entendimento.
O melhor de ter o código escrito é poder efetuar o cálculo em quantidade como mostra o exemplo abaixo:
A função:
Este cálculo é o mesmo da famosa calculadora HP12C, muito fácil e simples de ser executado.
Existe um outro jeito de calcular o valor das parcelas, porém, diferente dos dois primeiros que mencionei, fazem a contagem de dias corridos entre as parcelas, ou seja, o prazo para o cálculo pode ter 30, 30, 28 ou 29 dias (lembrando que as fórmulas prontas - Excel e HP12C - consideram sempre o mês de 30 dias).
Abaixo o código VBA para efetuar esse cálculo e no link do cabeçalho do blog, a planilha Excel de exemplo para melhor entendimento.
O melhor de ter o código escrito é poder efetuar o cálculo em quantidade como mostra o exemplo abaixo:
A função:
Public Function fn_CalculoParcelas(vlr_empresstimo As Double, _
taxa As Double, _
qtd_parcelas As Integer, _
data_contratacao As String, _
vcto_primeira_parcela As String) As Double
'Para passar os argumentos desta função:
'Informar valores no padrão americano (ponto no lugar de vírgula)
'Informar data entre aspas duplas (string)
'Informat a taxa em percentual. Exemplo 1,5% -> informar 0.015
Dim i As Integer
Dim c_price_total As Double
Dim c_price_parcela As Double
Dim tx_ao_dia As Double
'Cálculo do coeficiente price total
c_price_total = 0
tx_ao_dia = Fix((((taxa + 1) ^ (1 / 30) - 1) * 100) * 1000000000) / 1000000000
'Cálculo das parcelas
For i = 1 To qtd_parcelas
c_price_parcela = Fix(1 / ((tx_ao_dia / 100 + 1) ^ _
((DateAdd("M", i, CDate(data_contratacao)) - CDate(data_contratacao)))) * 1000000000) / 1000000000
c_price_total = c_price_total + c_price_parcela
Next
c_price_total = Fix(1 / c_price_total * 1000000000) / 1000000000
'Coeficiente total X (valor da proposta - entrada) = valor da parcela sem desconto
fn_CalculoParcelas = Format((vlr_empresstimo) * Round(c_price_total, 8), "#,##0.00")
End Function
;-)
segunda-feira, 20 de fevereiro de 2017
Muito cuidado com decimais no Excel
Quando se manipula grandes quantidades de informações, é preciso cuidado redobrado com as decimais, principalmente se são resultados de cálculos.
É importante saber que: formatar uma célula com n decimais, não altera seu conteúdo, mas sim a forma como é exibido, vejam na figura mais abaixo, como a soma de 3 valores iguais (no caso 10,33333333333) resultam num valor aproximado.
Com poucos dados é relativamente fácil não perder o controle da situação, mas hoje o Excel permite planilhas com pouco mais de 1 milhão de linhas e dependendo do trabalho, o resultado pode ter consequências inesperadas.
Só para ilustrar, utilizo um sistema para validar uma soma de valores que tem uma tolerância de +/- R$ 0,05 e ao somar um conjunto de 600 linhas, a diferença foi de R$ 0,07, teoricamente um resultado inválido para as minhas regras.
Reforçando, com 600 linhas é fácil analisar e corrigir se necessário, mas e se fossem 600 mil linhas?
Pesquisem funções como Truncar, Arredondar.Para.Cima, Arredondar.Para.Baixo, etc., o Excel oferece várias soluções para estas situações.
;-)
É importante saber que: formatar uma célula com n decimais, não altera seu conteúdo, mas sim a forma como é exibido, vejam na figura mais abaixo, como a soma de 3 valores iguais (no caso 10,33333333333) resultam num valor aproximado.
Só para ilustrar, utilizo um sistema para validar uma soma de valores que tem uma tolerância de +/- R$ 0,05 e ao somar um conjunto de 600 linhas, a diferença foi de R$ 0,07, teoricamente um resultado inválido para as minhas regras.
Reforçando, com 600 linhas é fácil analisar e corrigir se necessário, mas e se fossem 600 mil linhas?
Pesquisem funções como Truncar, Arredondar.Para.Cima, Arredondar.Para.Baixo, etc., o Excel oferece várias soluções para estas situações.
;-)
Desenvolvedores: ouçam quem tem a melhor percepção!
Mais um assunto que talvez gere discussões, mas em anos de experiência desenvolvendo projetos, tenho visto uma situação que se repete e parece que pouca gente tem sensibilidade para perceber o que de fato acontece.
Infelizmente, hierarquia as vezes faz mal ao desenvolvimento de soluções.
Profissionais de cargos elevados (geralmente gerentes, diretores, etc.) motivados a desenvolver um novo sistema que aumentará a produtividade da empresa, contratam consultorias hiper especializadas que chegam na empresa, coletam informações e criam um novo software e cobram muito dinheiro.
Como a "ideia" partiu de cima da hierarquia, resta a quem está na base da pirâmide aceitar e utilizar o que foi desenvolvido. Falando em bom português, o sistema desce goela abaixo.
Vou ilustrar aqui de uma forma bem simples para ficar fácil de entender. Imaginem um simples formulário impresso, cujos dados deve ser digitados posteriormente para um banco de dados:
Aí chegam os arrogantes programadores experientes que sempre "sabem" qual é a melhor solução e criam uma tela assim:
Sequer ouvem o usuário final, que é o "Zé" digitador da linha produção, pois a "elite" entende que o serviço dele não necessita de instrução avançada, certificações mil, especializações, etc., mas neste exemplo, fica evidente que a produtividade poderia ser muito maior e o índice de erros menor se os campos estivessem na mesma sequencia (formulário impresso e tela).
É isso aí, o Zé poderia ter opinado no início do projeto e ter apontado a deficiência, mas ele é o último a ser ouvido quando na verdade, deveria ser o primeiro.
Infelizmente vão pedir a opinião do Zé quando o projeto já está em fase de implantação e não dá para voltar e fazer alterações, seja por uma questão financeira ou técnica.
Humildemente, o Zé até elogia o sistema pois a tela é mais bonita, tem cara de profissional, etc. e tal, triste realidade...
Fica então a minha dica: programador, seja humilde, aquele que vai usar o sistema no dia a dia tem o melhor subsidio para o desenvolvimento do programa, então ele deve ser um dos primeiros a serem ouvidos e entrevistados.
Quanto mais alto na escala hierárquica, mais distante do trabalho "braçal" se torna, o olhar passa a ser quase que exclusivamente voltado para indicadores, estatísticas, números, gráficos, etc.
É natural que se perca essa percepção do dia a dia do trabalho das formiguinhas, então, programador, procure facilitar a vida das pessoas, inclusive a sua: discuta com o gerente o preço do projeto e com os usuários finais, a melhor solução para aumentar a produtividade.
;-)
Infelizmente, hierarquia as vezes faz mal ao desenvolvimento de soluções.
Profissionais de cargos elevados (geralmente gerentes, diretores, etc.) motivados a desenvolver um novo sistema que aumentará a produtividade da empresa, contratam consultorias hiper especializadas que chegam na empresa, coletam informações e criam um novo software e cobram muito dinheiro.
Como a "ideia" partiu de cima da hierarquia, resta a quem está na base da pirâmide aceitar e utilizar o que foi desenvolvido. Falando em bom português, o sistema desce goela abaixo.
Vou ilustrar aqui de uma forma bem simples para ficar fácil de entender. Imaginem um simples formulário impresso, cujos dados deve ser digitados posteriormente para um banco de dados:
Aí chegam os arrogantes programadores experientes que sempre "sabem" qual é a melhor solução e criam uma tela assim:
Sequer ouvem o usuário final, que é o "Zé" digitador da linha produção, pois a "elite" entende que o serviço dele não necessita de instrução avançada, certificações mil, especializações, etc., mas neste exemplo, fica evidente que a produtividade poderia ser muito maior e o índice de erros menor se os campos estivessem na mesma sequencia (formulário impresso e tela).
É isso aí, o Zé poderia ter opinado no início do projeto e ter apontado a deficiência, mas ele é o último a ser ouvido quando na verdade, deveria ser o primeiro.
Infelizmente vão pedir a opinião do Zé quando o projeto já está em fase de implantação e não dá para voltar e fazer alterações, seja por uma questão financeira ou técnica.
Humildemente, o Zé até elogia o sistema pois a tela é mais bonita, tem cara de profissional, etc. e tal, triste realidade...
Fica então a minha dica: programador, seja humilde, aquele que vai usar o sistema no dia a dia tem o melhor subsidio para o desenvolvimento do programa, então ele deve ser um dos primeiros a serem ouvidos e entrevistados.
Quanto mais alto na escala hierárquica, mais distante do trabalho "braçal" se torna, o olhar passa a ser quase que exclusivamente voltado para indicadores, estatísticas, números, gráficos, etc.
É natural que se perca essa percepção do dia a dia do trabalho das formiguinhas, então, programador, procure facilitar a vida das pessoas, inclusive a sua: discuta com o gerente o preço do projeto e com os usuários finais, a melhor solução para aumentar a produtividade.
;-)
quinta-feira, 16 de fevereiro de 2017
Pequenos cuidados com o FileCopy
As vezes, sobrepor um arquivo existente pode ser um desastre ou não dependendo do conteúdo, então não custa tomar cuidado na hora de codificar.
O comando FileCopy sobrepõe um arquivo inexistente e não dá mensagem de erro (desde que o arquivo não esteja aberto).
É uma boa prática sempre verificar antes se o arquivo existe e em caso afirmativo, perguntar ao usuário se ele quer continuar com a operação.
Abaixo um código de exemplo.
Ah, também, um detalhe que acabei conversando com colegas e apesar de não gerar nenhum erro, fica absurda a leitura do programa: notem o Else sem comando abaixo dele.
Funciona, mas não faz sentido. Se não tem ação a ser tomada, não escreva o Else!
;-)
O comando FileCopy sobrepõe um arquivo inexistente e não dá mensagem de erro (desde que o arquivo não esteja aberto).
É uma boa prática sempre verificar antes se o arquivo existe e em caso afirmativo, perguntar ao usuário se ele quer continuar com a operação.
Abaixo um código de exemplo.
Ah, também, um detalhe que acabei conversando com colegas e apesar de não gerar nenhum erro, fica absurda a leitura do programa: notem o Else sem comando abaixo dele.
Funciona, mas não faz sentido. Se não tem ação a ser tomada, não escreva o Else!
;-)
Sub Verifica_e_CopiaArquivos()
Origem = "C:\teste.txt"
Destino = "D:\teste.txt"
If Dir(Destino) <> "" Then
If MsgBox("O arquivo já existe, deseja sobrepor?", vbYesNo) = vbYes Then
FileCopy Origem, Destino
End If
'--- um Else sem comando a ser executado! ---
Else
'--------------------------------------------
End If
End Sub
terça-feira, 14 de fevereiro de 2017
Pronúncia correta de MOBILE
Vamos ao dicionário mais respeitados do mundo: Cambridge.
http://dictionary.cambridge.org/pt/pronuncia/ingles/mobile
Como podem ver, a pronúncia pode ser tanto "mobaiu" ou "mobou" ou ainda "moo-bil".
Particularmente não gosto de "mobaiu", acho muito grosseiro e forçado, apesar de ser correto.
"mobaiu" para mim, virou modismo brasileiro.
Prefiro o "mobou".
Steve Jobs, Bill Gates, Mark Zuckerberg e outros famosos da tecnologia pronunciam assim... então vou na deles...
;-)
http://dictionary.cambridge.org/pt/pronuncia/ingles/mobile
Como podem ver, a pronúncia pode ser tanto "mobaiu" ou "mobou" ou ainda "moo-bil".
Particularmente não gosto de "mobaiu", acho muito grosseiro e forçado, apesar de ser correto.
"mobaiu" para mim, virou modismo brasileiro.
Prefiro o "mobou".
Steve Jobs, Bill Gates, Mark Zuckerberg e outros famosos da tecnologia pronunciam assim... então vou na deles...
;-)
domingo, 12 de fevereiro de 2017
Windows Explorer parou de funcionar
Utilizo o Windows 7 e de vez em quando, começa a aparecer insistentemente a mensagem acima e o Windows Explorer reinicializa.
Vi diversos tutoriais na internet, mas o que realmente funcionou para mim, é a limpeza de arquivos temporários (para isso utilizo o CCleaner) e um comando no prompt do Comando que passo abaixo com o help do próprio.
No prompt de comando, digite Sfc /scannow e pressione ENTER.
Vi diversos tutoriais na internet, mas o que realmente funcionou para mim, é a limpeza de arquivos temporários (para isso utilizo o CCleaner) e um comando no prompt do Comando que passo abaixo com o help do próprio.
No prompt de comando, digite Sfc /scannow e pressione ENTER.
Microsoft (R) Windows (R) Resource Checker versão 6.0 Copyright (c) 2006 Microsoft Corporation. Todos os direitos reservados. Verifica a integridade de todos os arquivos protegidos do sistema e substitui versões incorretas pelas corretas da Microsoft. SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=] [/VERIFYFILE= [/OFFWINDIR=] /OFFBOOTDIR= /SCANNOW Verifica a integridade de todos os arquivos protegidos do sistema e repara os arquivos com problemas,]
quando possível. /VERIFYONLY Verifica a integridade de todos os arquivos protegidos do sistema. Nenhuma operação de reparo é executada. /SCANFILE Verifica a integridade do arquivo indicado e repara o arquivo se algum problema for identificado.
Especifica o caminho completo/VERIFYFILE Verifica a integridade do arquivo com caminho completo . Nenhuma operação de reparo é executada. /OFFBOOTDIR Para reparo offline, especifica a localização do diretório de inicialização offline /OFFWINDIR Para reparo offline, especifica a localização do diretório offline do Windows por exemplo sfc /SCANNOW sfc /VERIFYFILE=c:\windows\system32\kernel32.dll sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows
sábado, 11 de fevereiro de 2017
Use o aplicativo adequado para a sua tarefa
Este é um texto que vai gerar controvérsias e discussões, mas vamos lá.
Tenho visto muita gente desenvolvendo controle de estoque em Excel, desde instrutores independentes até grandes consultorias.
O que me espanta é o fato de utilizarem uma ferramenta inadequada para essa finalidade.
Se consideramos um negócio pequeno onde a quantidade de itens num estoque é baixa, até funciona, mas vamos pensar num negócio médio, digamos que o estoque possua em torno de 5 mil itens.
5 mil itens = 5 mil linhas da planilha.
Vamos fazer algumas contas:
200 vendas por dia, 6.000 vendas no mês, 72 mil vendas no ano.
Se cada venda tiver em média, 5 itens, teremos: 1.000 linhas de vendas por dia, 30.000 linhas no mês, 216.000 linhas no ano.
Em 5 anos já estourou o limite de linhas no Excel.
Ok, muitos dirão, mas posso utilizar colunas e diminuir o número de linhas, ou ainda, criar novas planilhas dentro da mesma pasta para comportar a quantidade de informações.
Aí o argumento contra é muito mais simples: o desempenho do Excel é inversamente proporcional a quantidade de informações, ou seja, quando o controle de estoque é desenvolvido e colocado em produção, funciona muito bem pois tem poucas informações. Com o passar do tempo, o desempenho ficará cada vez mais comprometido em virtude da quantidade grande de informações.
Trabalho numa empresa onde planilhas com 400 ou 500 mil linhas são corriqueiras e manipulá-las em rede, é extremamente lento.
A solução?
Simples, utilize um banco de dados.
Não quer abrir mão do Excel? Ok, utilize-o como Front End.
O primeiro problema que você irá se deparar ao criar um controle de estoque, é a necessidade de torná-lo multiusuário, ou seja, várias pessoas manipulando as informações ao mesmo tempo.
O Excel tem recursos de compartilhamento, mas acredite, comparado ao controle de acessos de um banco de dados, é como comparar um Fusca com uma Ferrari. O Excel não foi desenvolvido para isso, o próprio nome já diz: "planilha" de cálculos.
Os controles que vi na internet, principalmente no YouTube, demonstram extrema habilidade em programação de quem os criou, não posso e não tiro o mérito deles, mas faço aqui um apelo: utilizem a ferramenta certa para a tarefa (controle de estoque): um banco de dados.
Se quiserem, utilizem o Excel como Front End e aí até sugiro uma dupla que na minha opinião, seria extremamente confiável: Excel + SQL Server Express (gratuito).
Estes são só alguns argumentos para desaconselhar a criação de controle de estoque em Excel, poderia ir muito além mas vou ficar por aqui.
Tenho visto muita gente desenvolvendo controle de estoque em Excel, desde instrutores independentes até grandes consultorias.
O que me espanta é o fato de utilizarem uma ferramenta inadequada para essa finalidade.
Se consideramos um negócio pequeno onde a quantidade de itens num estoque é baixa, até funciona, mas vamos pensar num negócio médio, digamos que o estoque possua em torno de 5 mil itens.
5 mil itens = 5 mil linhas da planilha.
Vamos fazer algumas contas:
200 vendas por dia, 6.000 vendas no mês, 72 mil vendas no ano.
Se cada venda tiver em média, 5 itens, teremos: 1.000 linhas de vendas por dia, 30.000 linhas no mês, 216.000 linhas no ano.
Em 5 anos já estourou o limite de linhas no Excel.
Ok, muitos dirão, mas posso utilizar colunas e diminuir o número de linhas, ou ainda, criar novas planilhas dentro da mesma pasta para comportar a quantidade de informações.
Aí o argumento contra é muito mais simples: o desempenho do Excel é inversamente proporcional a quantidade de informações, ou seja, quando o controle de estoque é desenvolvido e colocado em produção, funciona muito bem pois tem poucas informações. Com o passar do tempo, o desempenho ficará cada vez mais comprometido em virtude da quantidade grande de informações.
Trabalho numa empresa onde planilhas com 400 ou 500 mil linhas são corriqueiras e manipulá-las em rede, é extremamente lento.
A solução?
Simples, utilize um banco de dados.
Não quer abrir mão do Excel? Ok, utilize-o como Front End.
O primeiro problema que você irá se deparar ao criar um controle de estoque, é a necessidade de torná-lo multiusuário, ou seja, várias pessoas manipulando as informações ao mesmo tempo.
O Excel tem recursos de compartilhamento, mas acredite, comparado ao controle de acessos de um banco de dados, é como comparar um Fusca com uma Ferrari. O Excel não foi desenvolvido para isso, o próprio nome já diz: "planilha" de cálculos.
Os controles que vi na internet, principalmente no YouTube, demonstram extrema habilidade em programação de quem os criou, não posso e não tiro o mérito deles, mas faço aqui um apelo: utilizem a ferramenta certa para a tarefa (controle de estoque): um banco de dados.
Se quiserem, utilizem o Excel como Front End e aí até sugiro uma dupla que na minha opinião, seria extremamente confiável: Excel + SQL Server Express (gratuito).
Estes são só alguns argumentos para desaconselhar a criação de controle de estoque em Excel, poderia ir muito além mas vou ficar por aqui.
terça-feira, 31 de janeiro de 2017
Access - Passar critério para uma consulta via VBA
Isto é um quebra-galho mas funciona.
Cria-se uma variável global e uma função (que é o critério da consulta) recebe o valor.
Melhor visualizar o exemplo que fica mais fácil de entender.
;-)
Cria-se uma variável global e uma função (que é o critério da consulta) recebe o valor.
Melhor visualizar o exemplo que fica mais fácil de entender.
;-)
segunda-feira, 30 de janeiro de 2017
O formato de arquivo XLSB do Excel
Os tradicionais arquivos com extensão XLSX do Excel 2007 e superiores, são arquivos compostos, ou seja, possuem vários XML dentro dele.
A forma mais fácil de visualizar isso, é abrindo um XLSX num compactador qualquer como o Winzip ou WinRar (veja abaixo um exemplo aberto com o WinRar).
Ao salvar o mesmo arquivo em formato XLSB ("B" de binário), os arquivos XML deixam de ser gravados e o resultado disso é um ganho substancial no tamanho final.
Na instituição onde trabalho atualmente, vejo muita gente utilizar o Excel como um repositório de dados, gerando arquivos imensos e ocupando muito espaço em rede.
Como esses arquivos não necessitam de recursos (macros por exemplo), ou seja, servem apenas para armazenar dados, a utilização do formato binário só traz vantagens: tamanho de arquivo menor e consequentemente, maior agilidade nas operações de abertura e salvamento.
;-)
A forma mais fácil de visualizar isso, é abrindo um XLSX num compactador qualquer como o Winzip ou WinRar (veja abaixo um exemplo aberto com o WinRar).
Ao salvar o mesmo arquivo em formato XLSB ("B" de binário), os arquivos XML deixam de ser gravados e o resultado disso é um ganho substancial no tamanho final.
Na instituição onde trabalho atualmente, vejo muita gente utilizar o Excel como um repositório de dados, gerando arquivos imensos e ocupando muito espaço em rede.
Como esses arquivos não necessitam de recursos (macros por exemplo), ou seja, servem apenas para armazenar dados, a utilização do formato binário só traz vantagens: tamanho de arquivo menor e consequentemente, maior agilidade nas operações de abertura e salvamento.
;-)
Assinar:
Postagens (Atom)
Pesquisar este blog
Quem sou eu
- Kazu
- Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.















