Ir para conteúdo
Fórum Script Brasil

Erika Tímpano

Membros
  • Total de itens

    25
  • Registro em

  • Última visita

Tudo que Erika Tímpano postou

  1. Então... preciso que ele não tenha acesso às planilhas. O cód acima oculta o form... não é esta a intensão.
  2. Ok. Vou tentar descrever. Eu tenho um form que é uma mascara de entrada de parâmetros para cálculo de um determinado produto. Após o cálculo, o sistema gera uma planilha com uma espécie de proposta. Como o usuário não tem interface nenhum com as planilhas que estão por trás do form, gostaria que eles pudessem visualizar a área de impressão, e ainda assim sem interface com as planilhas.......
  3. Já descobri. A variável boleana bolEmSave precisava estar setada para true ou false no meio de um outro procedimento. Um amigo aqui do trabalho, me ajudou. Bjo :blush:
  4. Pessoal, Depois que eu inseri este código para ocultar as planilhas se o usuário entrar com "desabilitar macros", não consegui mais salvar o arquivo. Já fiz alguns testes e já sei que o que está impedindo de abrir a janela salvar como, só não sei como revolver. Alguém pode me ajudar? Option Explicit 'Nome da planilha que deve ser visualizada em caso de abrir com as macros desativadas - e esconder em caso de macros ativadas Const PlanilhaMensagem As String = "Sheet1" 'Controle da rotina que esconde as planilhas ao salvar (MacrosAtivas_Salvar) Private bolEmSave As Boolean 'Planilha ativa - MacrosAtivas_Salvar Dim wa As Worksheet Public Sub MacrosAtivas_Open() 'Esconde a planilha de abertura e mostra as demais ..... Dim w As Worksheet 'Desabilita a atualização da tela enquanto executa Application.ScreenUpdating = False 'Desabilita a execução de eventos enquanto executa Application.EnableEvents = False 'Loop para mostrar todas todas as planilhas da pasta exceto a planiha de abertura.... For Each w In ActiveWorkbook.Worksheets If w.Name <> PlanilhaMensagem Then w.Visible = xlSheetVisible End If Next 'Esconde a planilha de abertura.... 'Utilizando "xlSheetVeryHidden" desabilita-se a possibilidade de reexibir a planilha pela interface do Excel ActiveWorkbook.Worksheets(PlanilhaMensagem).Visible = xlSheetVeryHidden 'Habilita atualização da tela Application.ScreenUpdating = True 'Habilita a execução de eventos Application.EnableEvents = True 'Define o Workbook como salvo pois as alterações de visível/invisível são entendidas como alterações a salvar ActiveWorkbook.Saved = True dados.Show dados.Data.Text = Date End Sub Public Sub MacrosAtivas_Salvar(ByRef Cancel As Boolean) 'Esconde todas as planilhas menos a da abertura Dim w As Worksheet 'Se já está executando, sai habilitando salvar a planilha If bolEmSave Then Cancel = False Exit Sub End If bolEmSave = True Cancel = True Application.ScreenUpdating = False Application.EnableEvents = False 'Seta a planilha ativa para retornar o foco depois.... Set wa = ActiveWorkbook.ActiveSheet 'Esconde todas as planilhas menos a de abertura ActiveWorkbook.Worksheets(PlanilhaMensagem).Visible = xlSheetVisible For Each w In ActiveWorkbook.Worksheets If w.Name <> PlanilhaMensagem Then w.Visible = xlSheetVeryHidden End If Next 'Invoca novamente "salvar a pasta".... 'A execução recursiva é controlada pela variável bolEmSave,impedindo a reexecução contínua dessa rotina ActiveWorkbook.Save 'Inverter a situação... Mostra todas as planilhas exceto a planilha de abertura For Each w In ActiveWorkbook.Worksheets If w.Name <> PlanilhaMensagem Then w.Visible = xlSheetVisible End If Next ActiveWorkbook.Worksheets(PlanilhaMensagem).Visible = xlSheetVeryHidden 'Habilita atualização da tela e de eventos Application.ScreenUpdating = True Application.EnableEvents = True 'Retorna o foco para a planilha ativa no momento de salvar wa.Activate bolEmSave = False 'Define o Workbook como salvo pois as alterações de visível/invisível são entendidas como alterações a salvar ActiveWorkbook.Saved = True End Sub
  5. É possível abrir a visualização da impressão de uma determinada área de uma planilha, no formato que ela foi desenhada sem a visualização das planilhas por trás do form?
  6. Pessoas, Eu desenvolvi um aplicativo no Excel e gostaria de, se houver qualquer erro no projeto que seja necessário abrir o depurador, o sistema desse uma msg de erro e fechasse o aplicativo. Meu chefe disse que talvez uma tal função chamada "on Error" pudesse ajudar, mas eu não sei como usá-la. Alguém pode me dar uma luz? Tks a lot
  7. Obrigada! Assunto resolvido!
  8. Oie! Bom dia! Aparece: intNumero = Não tem nada depois do símbolo de igualdade (vazio). :blush:
  9. Pessoal, coloquei o código abaixo num módulo para validar o CNPJ digitado num textbox: Function DVCNPJ(CNPJ As String) As String Dim intSoma, intSoma1, intSoma2, intInteiro As Long Dim intNumero, intMais, i, intResto As Integer Dim intDig1, intDig2 As Integer Dim strcampo, strCaracter, StrConf, strCNPJ, strDigVer As String Dim dblDivisao As Double intSoma = 0 intSoma1 = 0 intSoma2 = 0 intNumero = 0 intMais = 0 strDigVer = Right(CNPJ, 2) strcampo = Left(CNPJ, 8) strCNPJ = Right(CNPJ, 6) strCNPJ = Left(strCNPJ, 4) strcampo = Right(strcampo, 4) & strCNPJ For i = 2 To 9 strCaracter = Right(strcampo, i - 1) intNumero = Left(strCaracter, 1) intMais = intNumero * i intSoma1 = intSoma1 + intMais Next i 'Separa os 4 primeiros dígitos do CNPJ strcampo = Left(CNPJ, 4) For i = 2 To 5 strCaracter = Right(strcampo, i - 1) intNumero = Left(strCaracter, 1) intMais = intNumero * i intSoma2 = intSoma2 + intMais Next i intSoma = intSoma1 + intSoma2 dblDivisao = intSoma / 11 intInteiro = Int(dblDivisao) * 11 intResto = intSoma - intInteiro If intResto = 0 Or intResto = 1 Then intDig1 = 0 Else intDig1 = 11 - intResto End If intSoma = 0 intSoma1 = 0 intSoma2 = 0 intNumero = 0 intMais = 0 strcampo = Left(CNPJ, 8) strCNPJ = Right(CNPJ, 6) strCNPJ = Left(strCNPJ, 4) strcampo = Right(strcampo, 3) & strCNPJ & intDig1 For i = 2 To 9 strCaracter = Right(strcampo, i - 1) intNumero = Left(strCaracter, 1) intMais = intNumero * i intSoma1 = intSoma1 + intMais Next i strcampo = Left(CNPJ, 5) For i = 2 To 6 strCaracter = Right(strcampo, i - 1) intNumero = Left(strCaracter, 1) intMais = intNumero * i intSoma2 = intSoma2 + intMais Next i intSoma = intSoma1 + intSoma2 dblDivisao = intSoma / 11 intInteiro = Int(dblDivisao) * 11 intResto = intSoma - intInteiro If intResto = 0 Or intResto = 1 Then intDig2 = 0 Else intDig2 = 11 - intResto End If StrConf = intDig1 & intDig2 DVCNPJ = StrConf End Function Depois, no evento beforeupdate do textbox: Private Sub CNPJ_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) Dim DIG, NVAR If IsNumeric(Sheets("Simulador").Range("H12")) Then 'se não preencher o campo ignora DIG = Right(Format(Sheets("Simulador").Range("H12"), "00000000000000"), 2) NVAR = Módulo3.DVCNPJ(Format(Sheets("Simulador").Range("H12"), "00000000000000")) If DIG = NVAR Then Else 'senão avisa em vermelho MsgBox ("CNPJ INVÁLIDO"), vbCritical, vbOKOnly End If End If End Sub Só que quando coloco um CNPJ, dá o seguinte erro: Erro de excução 13 Tipo incorreto Na linha intMais = intNumero * i do módulo. Alguém pode me ajudar?? :wacko:
  10. De fato desabilitar a mensagem de segurança através de VBA é impossível. Consegui resolver o problema tornando invisiveis as planilhas quando o usuário clicar em desabilitar macros. Se alguém precisar de uma solução parecida, me avisem. Bjinhus e Obrigada! :rolleyes:
  11. :blink: Quando o usuário utiliza o Backspace para limpar o campo, dá o seguinte erro: Erro em tempo de execução 13 Tipo incorreto :wacko: 'Trava percentual - MA Private Sub percMA_Change() If percMA.Value > 100 Or percMA.Value = "" Then MsgBox ("Percentual máximo = 100%"), vbOK percMA.Value = 100 End If End Sub Alguém pode me ajudar a solucionar este problema? Obrigada!
  12. Pessoal, As macros voltaram a funcionar mesmo com o projeto protegido... Mas agora, tenho outro dilema... preciso que ao clicar em desativar macros na abertura do arquivo, o arquivo se feche. É possível? :rolleyes:
  13. As macros estão funcionando com o projeto protegido agora... Mas gostaria que ao clicar em desabilitar macros, o arquivo se fechasse... é possível?
  14. BRILHANTE!! Muito obrigada mesmo! :wub: Pode me ajudar em mais uma coisa? Se quiser abro um novo tópico, mas preciso que ao executar o aplicativo desenvolvido em excel, não abra a opção desativar macros porque senão, a planilha de calculos ficará exposta. É possível? :wacko:
  15. A célula já está formatada corretamente... o problema é o txtbox mesmo. Utilizei a solução que você me deu num outro tópico usando o listbox. Ficou perfeito... ...mas ainda não aprendi como formatar a txtbox neste excel. Sem problemas... vou guardar esta solução pra quando trocarem o Office da minha máquina. Muito obrigada mesmo! :rolleyes:
  16. Erika Tímpano

    carregar textbox

    O listbox resolveu. Nunca havia utilizado este controle. Obrigada!
  17. Estou usando a tabela de propriedades do txtbox. Seria por isso? Seria melhor usar código?
  18. Acho que eu descobri qual é o problema, mas não sei como resolver. O código que você me enviou é igualzinho ao que eu coloquei na macro, entretanto no meu não está formatando porque a txtbox tem o valor trazido de uma célula através da propriedade Rowsource. No seu, o valor é input. PS: A Cell está formatada corretamente.
  19. Erika Tímpano

    carregar textbox

    o q exatamente você ta precisando fazer, erika?? O usuário não tem interface nenhum com a planilha, somente com o form. A planilha faz um monte de cálculos e gera alguns valores que serão utilizados para tomada de decisão. Preciso que o usuário visualize esta tabela que está na plan, só que no form, entende?
  20. Erika Tímpano

    carregar textbox

    Qual a finalidade? você precisa de uma lista para seleção? Se sim, o listbox seria a melhor opção e você pode utilizar a propriedade Rowsource, como a Michele disse. Se você quiser visualizar o intervalo mesmo, se descobrir uma maneira de fazer isso, me avisa. Estou precisando muito. E criei uma solução alternativa que foi um txtbox para cada informação com a propriedade Enabled = False. B)
  21. Olás! Tenho um form que é aberto no Workbook_open. Para a execução da macro inicial que copia e cola dados de um outro arquivo .xls nesta planilha em execução, como o projeto está protegido por senha, ele dá uma mensagem de erro: Erro de compilação Modulo oculto: dados, onde "dados" é o nome do form. Quando eu destravo o projeto, ele funciona normalmente. O problema é que este arquivo e suas macros precisam estar protegidos pois irão ficar e um cliente. Alguém pode me ajudar? Muito obrigada Kika
  22. Obrigada. Ainda estou aprendendo a usar o Fórum... Está dando o seguinte erro: Chamada ou Argumento Inválido. Coloquei a linha da mesma maneira que você escreveu antes do evento show do form. O usuário não imputa dados neste form (result), ele apenas visualiza. Tks a lot
  23. O Código pega as informações da plan que são calculadas de acordo com os imputs do usurário e cola numa area dentro da própria planilha que eu chamei de area de transferência. Cada caixa de texto do formulário result aberto após o evento abaixo, está linkada a uma Cell desta área de transferência. As Cells estão configuradas corretamente, mas no textbox aparecem com o formato "geral". É isto que eu não quero. Preciso que ela apareça configurada como moeda, por exemplo. Se alguém souber uma maneira mais inteligente de fazer isso, agradeço muito. Private Sub Resultado1_Click() Sheets("Simulador").Select 'visualizar premio e taxa Range("B39:F42").Select Selection.Copy Range("AI10").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 'visualizar cesta basica e funeral Range("D48:D49").Select Selection.Copy Range("AK15").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 'visualizar resumo do grupo Range("B13:C19").Select Selection.Copy Range("AI18").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 'FORMATAR 'Ctotal.text = format(Ctotal.text, "#.###,00") result.Show End Sub
  24. Preciso de ajuda! :wacko: Estou procurando a solução deste problema há uma semana, mas não encontro em lugar nenhum. Tenho um Form em EXCEL - VBA e quando inicializo este Form, todas as textbox são carregadas com informações da planilha que está por trás dele e o usuário não tem interface com elas, a não ser pela visualização. Entretanto, não consigo formatar os controles como moeda. Já utilizei todas as indicações encontradas em todos os foruns, mas normalmente encontro para o evento change e não para o Initialize. Não sei qual a diferença pois não sou programadora, mas para o evento que eu preciso, não funciona a expressão abaixo: Ctotal.text = format(Ctotal.text, "#.###,00") Onde Ctotal é o nome da textbox. Quando o form incializa, o depurador dá uma msg de erro dizendo que a variável não foi definida e aponta para Ctotal. Eu não entendi foi NADA! Obs: Assim como Ctotal, devo ter mais umas 8 caixas que deverão ser formatadas dentro do mesmo evento. Se alguém puder me ajudar e me explicar porque isso ocorreu, eu agradeço imensamente.
×
×
  • Criar Novo...