Jump to content

excel fecha sem comando para finalizar (Quit)


Recommended Posts

Boa tarde

Por favor observem o código abaixo.

Ao executá-lo tudo corre bem para alterar qualquer valor da listbox e gravá-lo na planilha. Porém quando clico no botão cancelar do InputBox, o aplicativo é fechado abruptamente como se houvesse o comando "xlApp.Quit".

O botão cancelar deveria fechar apenas o InputBox e jamais o aplicativo.

Isso acontece após a inserção da linha (Application.Visible = False) no código abaixo. Se removê-la o procedimento corre como previsto.

Private Sub Workbook_Open()
'Ao clicar no ícone Relatório Financeiro.xls,
'obrigatoriamente ocultará a planilha _
'e abrirá o formulário FrmRecibos.

Application.Visible = False
FrmRecibos.Show
End Sub
________________________________________________________________
'O código abaixo está num form.

Option Explicit
Dim RetornoSalvar As Boolean
Dim r_OM As Long
Dim TotalLinhas_OM As Long
Dim Total_OM As String

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo Caracter_Errado
Dim n1 As String
Dim n3 As Boolean
n3 = 0
'Detecta linha vasia na listbox e sai do procedimento.
If ListBox1.List(ListBox1.ListIndex) = Empty Then
         If MsgBox("Você clicou na linha errada." & vbCrLf & _
           "Clique duas vezes somente onde houver um valor escrito", _
             vbOKOnly, "                      LINHA SEM VALOR") = vbOK Then
                n3 = False
                Exit Sub
End If
End If

'Corrige o valor de uma linha da listbox e grava na
'célula correspondente da planilha.
Linhas:
If ListBox1.List(ListBox1.ListIndex) Then
    n1 = Application.InputBox("          DIGITE O NOVO VALOR NA FAIXA BRANCA", "              ALTERANDO UM DONATIVO")
          If n1 = "" Then
              MsgBox "Para CORRIGIR você deve preencher a caixa de texto." _
              & Chr(13) & "Para SAIR precione CANCELAR", _
              0 + 64, "                                  ATENÇÃO."
                  GoTo Linhas
                      ElseIf n1 = False Then
                          n3 = False
                          Exit Sub
                              Else
                                  ListBox1.List(ListBox1.ListIndex) = n1
                                      Cells(ListBox1.ListIndex + 1, "A") = CDbl(ListBox1)
                                      n3 = True
End If
End If

If n3 = False Then
RetornoSalvar = False
Else
RetornoSalvar = True
End If

Caracter_Errado:
If Err = 13 Then
    If MsgBox("LETRAS NÃO VALEM." & vbCrLf & _
           "ESCREVA SOMENTE NÚMEROS", _
             vbOKOnly + 48, "          DADOS INCORRETOS") = vbOK Then
                Resume Linhas
      End If
      End If
  'Atualiza o valor da caixa de texto após a correção.
  FRM_OM.TextBox1 = Worksheets("plan1").Range("A94").Value
   
End Sub

Como posso resolver este problema?

Grato

Edison

Link to comment
Share on other sites

Obrigado pelo retorno jnabais,mas aplicar sua sugestão...

Olá!

E que tal introduzires uma linha - no botão cancelar -  com a instrução contrária "Application.Visible = True"...

faz retornar a planilha embora o aplicativo não feche.

Meu objetivo é trabalhar com a planilha oculta para evitar danos ao aplicativo.

Provavelmente há algum erro em meu código com respeito ao valor de retorno para o botão cancelar do InputBox. -- Não consigo encerrar apenas o procedure em questão (Exit Sub).

Se alguém puder me ajudar agradeço.

Edison

Link to comment
Share on other sites

Linhas:
                      ElseIf n1 = False Then 

a variavel n1 é uma string e está a tornala boleana,

penso que será aqui o erro    coloca assim        Elseif n1 <> ""  Then  .

senão tenta eliminar o botão cancelar.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.