Notifications
Clear all

Convertendo planilha para .exe

2 Posts
2 Usuários
0 Reactions
917 Visualizações
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Pessoal,

Utilizando o programa XLtoEXE.exe, eu converti o meu projeto em .exe.

O que acontece é que, no modelo xlsm, o mesmo funciona perfeitamente, mas, em .exe, acontece alguns erros quando as macros abre o banco de dados externo (em outra planilha).

vejam abaixo o código:

'aqui eu verifico se as planilhas já estão abertas ou não.
 If IsFileOpen("L:Avaliacao_de_desempenhoBASE_DE_DADOSBD_GERAL.xlsx") = True Then
      
            MsgBox "Desculpa-me, aguarde um momento e tente novamente.", vbInformation, "Atenção!"
            
       
       Exit Sub
       
       End If
'na célula V3 eu gravo um código para funcionar como uma variável de pesquisa.

Dim lRow As Long
    Dim UltimaLinha As Long

Dim matricula

    matricula = TextBox1.Text & ComboBox44.Text
    
    Workbooks.Open ("L:Avaliacao_de_desempenhoBASE_DE_DADOSBD_GERAL.xlsx")
    ActiveSheet.Unprotect ("bossjob")
 Application.Visible = False

    Sheets("FORM_ESTRATEGICO").Select
   Application.Visible = False

        ActiveSheet.Unprotect ("bossjob")
Application.Visible = False

    With Sheets("FORM_ESTRATEGICO") '<- troque o nome da planilha, se necessário

    Cells(3, "V") = matricula

'na célula V4 eu verifico se a variavel da célula V3 atende os requisitos.
If [V4] = 0 Then

 Sheets("FORM_ESTRATEGICO").Select
    ActiveSheet.Protect Password:="bossjob"
    ActiveWorkbook.Close savechanges:=True 'salvar True

MsgBox "Prezado avaliador, na Avaliação de Desempenho desse empregado, não foi pontuado nenhum D. Sendo assim, não há necessidade de PDI", vbInformation, "Atenção!"

Exit Sub

End If


If [v10] = "não" Then
 Sheets("FORM_ESTRATEGICO").Select
    ActiveSheet.Protect Password:="bossjob"
    ActiveWorkbook.Close savechanges:=True 'salvar True


MsgBox "Prezado, não foi identificado o registro da Avaliação de Desempenho deste empregado, referente ao ano de " & ComboBox44.Text, vbInformation, "Atenção!"


With Efetivo

Efetivo.Hide
Efetivo.TextBox42.Text = 1

End With

With UserForm21

UserForm21.Hide

End With

With Efetivo


Efetivo.Show

End With



Exit Sub

End If






If [v10] <> "não" Then

'XX

TextBox10.Text = [W12]
TextBox11.Text = [W13]
TextBox12.Text = [W14]
TextBox13.Text = [W15]
TextBox14.Text = [W16]
TextBox6.Text = [w18]




Sheets("FORM_ESTRATEGICO").Select
    ActiveSheet.Protect Password:="bossjob"


Dim rng As Range

 Sheets("PDI").Select
 

    Application.Visible = False

        ActiveSheet.Unprotect ("bossjob")
Application.Visible = False

    With Sheets("PDI")
    
    
    
    ActiveWorkbook.Worksheets("PDI").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("PDI").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "G1:G54"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("PDI").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWorkbook.Worksheets("PDI").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("PDI").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "E1:E54"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("PDI").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With





   
    Dim i As Long
    ListBox2.Clear
    
    If [l1] = 1 Then
    
    
    For i = 2 To 2
        ListBox2.AddItem Range("C" & i).Value
        ListBox2.List(ListBox2.ListCount - 1, 1) = Range("D" & i).Value
        ListBox2.List(ListBox2.ListCount - 1, 2) = Range("E" & i).Value
     
        
        
        
     
     Call contarAspect
     
     Label57.Visible = True
     ListBox2.Height = 59
          
     ListBox2.Visible = True
     
         
    Next



MsgBox "... Aguarde mais um pouco!", vbInformation, "Verificando..."



 ActiveSheet.Protect Password:="bossjob"

 ActiveWorkbook.Close savechanges:=True 'salvar True


 MsgBox "De acordo com a priorização da Brametal, esses são os Aspectos a serem tratados!", vbInformation, "Atenção!"
 
 


ComboBox44.Locked = True

Exit Sub

End If




   If [l1] >= 3 Then
    
    
    For i = 2 To 4
        ListBox2.AddItem Range("C" & i).Value
        ListBox2.List(ListBox2.ListCount - 1, 1) = Range("D" & i).Value
        ListBox2.List(ListBox2.ListCount - 1, 2) = Range("E" & i).Value
     
        
        
        
     
     Call contarAspect
     
     Label57.Visible = True
     ListBox2.Height = 59
          
     ListBox2.Visible = True
     
         
    Next



MsgBox "... Aguarde mais um pouco!", vbInformation, "Verificando..."



 ActiveSheet.Protect Password:="bossjob"

 ActiveWorkbook.Close savechanges:=True 'salvar True


 MsgBox "De acordo com a priorização da Brametal, esses são os Aspectos a serem tratados!", vbInformation, "Atenção!"
 
 


ComboBox44.Locked = True






Exit Sub

End If

   If [l1] = 2 Then
    
    
    For i = 2 To 3
        ListBox2.AddItem Range("C" & i).Value
        ListBox2.List(ListBox2.ListCount - 1, 1) = Range("D" & i).Value
        ListBox2.List(ListBox2.ListCount - 1, 2) = Range("E" & i).Value
     
        
        
        
     
     Call contarAspect
     
     Label57.Visible = True
     ListBox2.Height = 59
          
     ListBox2.Visible = True
     
         
    Next



MsgBox "... Aguarde mais um pouco!", vbInformation, "Verificando..."



 ActiveSheet.Protect Password:="bossjob"

 ActiveWorkbook.Close savechanges:=True 'salvar True


 MsgBox "De acordo com a priorização da Brametal, esses são os Aspectos a serem tratados!", vbInformation, "Atenção!"
 
 


ComboBox44.Locked = True



Exit Sub

End If





End With
End If
End With

O que está errado, se no xlms ele funciona corretamente?

 
Postado : 04/02/2015 7:32 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon

Sempre que postar uma macro use a ferramenta Code, para postar a macro como código, evitando que a mensagem fique muito grande, poluindo o fórum.

[]s

Patropi - Moderador

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/02/2015 7:41 am