Jump to content
Fórum Script Brasil

epottag

Membros
  • Posts

    14
  • Joined

  • Last visited

About epottag

epottag's Achievements

0

Reputation

  1. Certo... Então não há uma forma de proteger o arquivo contra cópia, né? Abraço
  2. E aí pessoal, tudo certo? Estou com uma dúvida aqui...e não encontrei resposta em umas pesquisas que fiz aqui no fórum. Quero saber se alguém já fez, ou conhece algum código de "proteção" para o arquivo. Alguma coisa assim: uma vez instalado o arquivo em uma máquina, este arquivo (no caso, programado em VB, no Excel) tem uma Macro que impeça que o arquivo seja reproduzido, no melhor estilo ctrl + c, ctrl + v. Alguém tem alguma sugestão de como fazer isso? Abraços
  3. Valeu aí pela ajuda!! Resolvi o problema com a seguinte linha: Shell "C:\Arquivos de programas\Internet Explorer\iexplore.exe www.pagina.com.br", vbMaximizedFocus Usando a função Sell. Abraço!
  4. Pessoal, boa tarde! Tenho uma dúvida aqui... Quero criar uma macro, em vba para excel, que permita a abertura de determinada página na internet. É possível, né? Ah...aliás, essa macro poderá ser referente a um objeto, certo? Por exemplo, eu atribuo a macro para um logotipo... Obrigado e um abraço a todos!
  5. aí pessoal, consegui resolver o problema aqui! Obrigado a todos que tentaram dar uma mão! Valeu Kuroi e Graymalkin, que encontraram a solução! Caso alguém tenha um problema semelhante, o Graymalkin sugeriu inserir o seguinte comando no meio da programação, o qual converte em número, valores inseridos como texto! Dim célula As Range For Each célula In Range("E2:F700") célula.FormulaR1C1Local = célula.Value Next célula É isso aí!! Abraço a todos
  6. O erro acontece exatamente na linha do CDbl, onde inseri... Range("ValorCrAbr06").Item(linha) = CDbl(ValorCr) Range("ValorDbAbr06").Item(linha) = CDbl(ValorDb) Ele joga o erro direto aí, quando faço a depuração... Como assim validação?? Desculpe, mas eu sou novato em VB!! Abraço
  7. Pessoal... Parece incrível, mas quando eu coloquei a função em prática, na planilha definitiva, não funcionou. Mas, num arquivo teste, igual, funcionou! Ele dá um erro 13, Tipos Incompatíveis. Será que estou fazendo alguma besteira? Olha o código como ficou: Private Sub CmdAlterar_Click() 'Altera os dados do movimento Dim ValorCr As String, Faz As String, ValorDb As String, Hist As String, Data As Date ValorCr = Me.TxtValorCr.Value ValorDb = Me.TxtValorDb.Value Data = Me.TxtData.Value Hist = Me.TxtHist.Value Faz = Me.TxtFaz.Value Range("ValorCrAbr06").Item(linha) = CDbl(ValorCr) Range("ValorDbAbr06").Item(linha) = CDbl(ValorDb) Range("DataAbr06").Item(linha) = Data Range("LancAbr06").Item(linha) = Hist Range("FazAbr06").Item(linha) = Faz 'Abre a planilha ActiveWorkbook.Unprotect "secreto" Sheets("JABAbr06").Visible = True Sheets("JABAbr06").Select 'Classifica dados por ordem de data Range("A2:G700").Sort key1:=Range("A2"), order1:=xlAscending, header:=xlGuess 'Fecha a planilha ativa e protege a pasta de trabalho ActiveSheet.Visible = False ActiveWorkbook.Protect "secreto" 'Redefine o formulário Me.LstAltAbr06.ListIndex = -1 Me.TxtValorCr.Text = Empty Me.TxtValorDb.Text = Empty Me.TxtData.Text = Empty Me.TxtHist.Text = Empty Me.TxtFaz.Text = Empty Me.LblLançamento.Enabled = False Me.LblValorCr.Enabled = False Me.LblValorDb.Enabled = False Me.LblData.Enabled = False Me.LblHist.Enabled = False Me.LblFaz.Enabled = False Me.CmdAlterar.Enabled = True Me.CmdFechar.Enabled = True End Sub Eu inseri o CDbl () após a definição das Ranges. O que estou fazendo de errado?? Obrigado e um abraço! Erich
  8. Valeu Graymalkin e Kuroi e a galera que leu tentou dar uma força! Resolvi meu probleminha aqui com o CDbl! Obrigado, um abraço até a próxima!!
  9. Pode ser que essa seja a solução! Mas...desculpe...como eu poderia usar? É que eu nunca vi essa função! Se puder me dar um toque melhor nisso aí...seria sensacional! Valeu e um abraço, Erich
  10. Ouvi dizer que existe uma propriedade, uma função, no VBA que equivaleria dizer: "pegue este conteúdo que é um texto e transforme-o em número". Algo como um Text to number... Alguém conhece? Isso resolveria o meu problema super rápido, porque eu poderia inserir esse código no meio da alteração, que coloquei no post acima! Se alguém puder me ajudar! Obrigado, um abraço e bom fim de semana a todos! Erich
  11. Penso em duas soluções, embora não consiga desenvolver a macro ainda: - Primeira opção: Identificar células em que, embora formatadas como CONTÁBEIS, tenham os números inseridos como texto, para em seguida formatá-las como contábeis; - Segunda opção: referenciar alguma célula, como padrão de formatação, como fiz no meu post anterior. Mas a macro, por hora, não funcionou... Ou ainda modificar a entrada de dados. Esses valores que são inseridos com formato texto são provenientes de um processo de alteração na planilha. Explico. Estes dados já estão na planilha, com formato pré determinado em seu lançamento. Entretanto, quando "chamamos" determinada linha para efetuar alteração, quando o valor é digitado com uma vírgula (por exemplo, 366,67) ele é lançado como um texto, embora a célula esteja formatada como contábil. Abaixo segue o código que fizemos, talvez alguma alteração neste resolva o problema: - As ranges estão todas definidas e referem-se a uma planilha de Abril/2006; Private Sub CmdAlterar_Click() 'Altera os dados do movimento Dim ValorCr As String, Faz As String, ValorDb As String, Hist As String, Data As Date ValorCr = Me.TxtValorCr.Value ValorDb = Me.TxtValorDb.Value Data = Me.TxtData.Value Hist = Me.TxtHist.Value Faz = Me.TxtFaz.Value Range("ValorCrAbr06").Item(linha) = ValorCr Range("ValorDbAbr06").Item(linha) = ValorDb Range("DataAbr06").Item(linha) = Data Range("LancAbr06").Item(linha) = Hist Range("FazAbr06").Item(linha) = Faz 'Abre a planilha ActiveWorkbook.Unprotect "secreto" Sheets("JABAbr06").Visible = True Sheets("JABAbr06").Select 'Classifica dados por ordem de data Range("A2:G700").Sort key1:=Range("A2"), order1:=xlAscending, header:=xlGuess 'Fecha a planilha ativa e protege a pasta de trabalho ActiveSheet.Visible = False ActiveWorkbook.Protect "secreto" 'Redefine o formulário Me.LstAltAbr06.ListIndex = -1 Me.TxtValorCr.Text = Empty Me.TxtValorDb.Text = Empty Me.TxtData.Text = Empty Me.TxtHist.Text = Empty Me.TxtFaz.Text = Empty Me.LblLançamento.Enabled = False Me.LblValorCr.Enabled = False Me.LblValorDb.Enabled = False Me.LblData.Enabled = False Me.LblHist.Enabled = False Me.LblFaz.Enabled = False Me.CmdAlterar.Enabled = True Me.CmdFechar.Enabled = True End Sub Private Sub LstAltAbr06_Click() 'Define Linha como a posição do movimento selecionada linha = Me.LstAltAbr06.ListIndex + 1 'Habilita os controles desabilitados Me.CmdAlterar.Enabled = True Me.CmdFechar.Enabled = True Me.TxtValorCr.Enabled = True Me.TxtValorDb.Enabled = True Me.TxtData.Enabled = True Me.TxtHist.Enabled = True Me.TxtFaz.Enabled = True 'Mostra na caixa de texto o valor do movimento selecionado Me.TxtValorCr = Range("ValorCrAbr06").Item(linha) Me.TxtValorDb = Range("ValorDbAbr06").Item(linha) Me.TxtData = Range("DataAbr06").Item(linha) Me.TxtHist = Range("LancAbr06").Item(linha) Me.TxtFaz = Range("FazAbr06").Item(linha) End Sub Tudo isso está referenciado a um formulário de alteração! Bom é isso! Obrigado e um abraço a todos! Erich
  12. Bom dia pessoal! Estou com um probleminha aqui... Ao fazer algumas operações com minha planilha, alguns números acabam "entrando" com fortado de texto, mesmo a célula estando formatada como contábil. Sem pensar em uma solução muito complexa, pensei na solução dada pelo Excel: incluo um número 1, com formato contábil, num loca escondido da planilha, copio-o e colo com formato especial para as colunas em que desejo transformar a formatação. Ao executar esse processo via excel, sem programação, tudo vai bem. Entretanto, ao colocar em VBA, isso não funciona! O código que montei é o seguinte, bem simples: Range("Q1").Select ActiveCell.FormulaR1C1 = "1" Range("Q1").Select Selection.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)" Selection.Copy Range("E2").Select Range(Selection, Selection.End(xlDown)).Select Range("E2:F700").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _ SkipBlanks:=False, Transpose:=False Columns("E:E").EntireColumn.AutoFit Columns("F:F").EntireColumn.AutoFit Application.CutCopyMode = False Seleciono a célula, ponho o número, formato-o, colo o formato no destino e ajusto o tamanho das células. Mas o formato não está modificando, diferentemente do que ocorre quando eu faço direto, manualmente! Alguém tem alguma sugestão do que eu possa fazer? Desde já agradeço e um abração a todos Erich Pottag
  13. Então, os históricos são, de fato, iguais. Entretanto, eles têm informações diferentes para os outros campos do formulário, os quais podem ser alterados, entende? Mas, quando alteramos algum dado em um dos lançamentos que têm históricos iguais, o GRUPO do primeiro destes lançamentos (com o mesmo histórico) é também alterado. Aliás, nem é necessário que se faça alguma alteração nos dados, basta clicar no botão Alterar que o Grupo será alterado. Ao fazermos uma depuração, observamos que o comando de alteração não é feito por inteiro (digamos, de "uma só vez"), pois num deterinado momento ele interrompe a rotina que fazia e inicia a rotina "Private Sub LstAltMar06_Click()". E isso, aparentemente, que vem causando este problema! E os históricos são, de fato iguais. Mas apenas alguns deles! Valeu Graymalkin! espero que agora eu tenha conseguido explicar melhor o problema que temos aqui!! Abraços, epottag
  14. Bom dia pessoal! Estou com um problema aqui numa planilha que estamos desenvolvendo... Tenho um arquivo, que contém, basicamente um banco de dados e dois formulário, sendo um de LANÇAMENTOS e outro para ALTERAÇÕES. Os lançamentos vêm funcionando corretamente. Entretanto, há vários lançamentos com o mesmo HISTÓRICO, ou seja, mesmo nome o que aparentemente vem trazendo o erro que não conseguimos solucionar. O formulário de alteração tem os seguintes campos: lançamentos, histórico do movimento, valor de crédito, de débito, data e grupo. Quando selecionamos qualquer um dos lançamentos que têm o mesmo histórico, o GRUPO do primeiro lançamento (dentre os iguais) se altera, ficando igual ao escolhido (seja o segundo, o terceiro, quarto...da lista de lançamentos iguais). Disponibilizo abaixo as linhas de comando escritas para efetuar as ALTERAÇÕES (estão todas no formulário de alteração de um dos meses) e aguardo alguma sugestão! Private linha As Long Private Sub CmdAlterar_Click() 'Altera o valor do movimento Dim ValorCr As String, Faz As String, ValorDb As String, Hist As String, Data As Date ValorCr = Me.TxtValorCr.Value ValorDb = Me.TxtValorDb.Value Data = Me.TxtData.Value Hist = Me.TxtHist.Value Faz = Me.TxtFaz.Value Range("ValorCrMar06").Item(linha) = ValorCr Range("ValorDbMar06").Item(linha) = ValorDb Range("DataMar06").Item(linha) = Data Range("LancMar06").Item(linha) = Hist Range("FazMar06").Item(linha) = Faz 'Abre a planilha ActiveWorkbook.Unprotect "secreto" Sheets("JABMar06").Visible = True Sheets("JABMar06").Select 'Classifica dados por ordem de data Range("A2:G700").Sort key1:=Range("A2"), order1:=xlAscending, header:=xlGuess 'Fecha a planilha ativa e protege a pasta de trabalho ActiveSheet.Visible = False ActiveWorkbook.Protect "secreto" 'Redefine o formulário Me.LstAltMar06.ListIndex = -1 Me.TxtValorCr.Text = Empty Me.TxtValorDb.Text = Empty Me.TxtData.Text = Empty Me.TxtHist.Text = Empty Me.TxtFaz.Text = Empty Me.LblLançamento.Enabled = False Me.LblValorCr.Enabled = False Me.LblValorDb.Enabled = False Me.LblData.Enabled = False Me.LblHist.Enabled = False Me.LblFaz.Enabled = False Me.CmdAlterar.Enabled = True Me.CmdFechar.Enabled = True End Sub Private Sub CmdFechar_Click() Unload Me End Sub Private Sub LstAltMar06_Click() 'Define Linha como a posição do movimento selecionada linha = Me.LstAltMar06.ListIndex + 1 'Habilita os controles desabilitados Me.CmdAlterar.Enabled = True Me.CmdFechar.Enabled = True Me.TxtValorCr.Enabled = True Me.TxtValorDb.Enabled = True Me.TxtData.Enabled = True Me.TxtHist.Enabled = True Me.TxtFaz.Enabled = True 'Mostra na caixa de texto o valor do movimento selecionado Me.TxtValorCr = Range("ValorCrMar06").Item(linha) Me.TxtValorDb = Range("ValorDbMar06").Item(linha) Me.TxtData = Range("DataMar06").Item(linha) Me.TxtHist = Range("LancMar06").Item(linha) Me.TxtFaz = Range("FazMar06").Item(linha) End Sub Desde já agradeço e aguardo sugestões! Abraço a todos
×
×
  • Create New...