Ir ao conteúdo

Posts recomendados

Postado

Bom dia gente, tudo bem?

 

Estou com uma dúvida pra mimária, mas que não consigo resolver...

 

Seguinte, tenho uma Sub que ao apertar um botão ela se inicia já mostrando um Form, cujo tem que selecionar uma informação e ao apertar OK essa Sub volta com sua rotina, PORÉMMMMMMMMMMMM, eu se a pessoa apertar no "X" do Form, gostaria que a Sub lá do início parece de rodar também.. e o que acontece hoje é que ela continua.. tentei um código, mas não sei desenvolver a outra parte dele:

 

If CloseMode = vbFormControlMenu Then

 

????

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then
    
Cancel = True
    End If
End Sub

Desde já, muito obrigada!

Att,

 

a Sub

 

Sub EmailID()
 
Dim coco As String, HTMLBody As String
Dim OA As Object, OM As Object
Dim lMax As Long
Dim lLinhaAtual As Long
Dim mensagem As VbMsgBoxResult

UserForm1.Show

    resultado = MsgBox("Você tem certeza que deseja enviar este arquivo?", vbQuestion + vbYesNo, "Atenção!")
 

.. e continua com o resto..

no caso, o possível código/solução teria que ocorrer pra duas subs

Postado

Nao entendi direito o que esta acontecendo com o seu form. 

Poste um exemplo por favor 

 

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then
        Cancel = True
        MsgBox "CLICK NO BOTÃO [ Sair ] !", vbExclamation, "Atenção !!! " 
     End If
End Sub

 

Postado

 

 

Segue imagens:

 

(1) É o form que tem como destaque o botão "X" para fechar o Form, só que quando eu aperto o código continua.. Imagem (2), e ao invés disso, gostaria que ele simplesmente Interrompesse o código. tendeu? vou postar a Sub Completa + Sub do Form:

 

Sub Completa

 

Sub EmailID()
 
Dim coco As String, HTMLBody As String
Dim OA As Object, OM As Object
Dim lMax As Long
Dim lLinhaAtual As Long
Dim mensagem As VbMsgBoxResult

UserForm1.Show

    resultado = MsgBox("Você tem certeza que deseja enviar este arquivo?", vbQuestion + vbYesNo, "Atenção!")
 
    Application.DisplayAlerts = False
 
    If resultado = vbYes Then
        lUltimaLinhaAtiva = Worksheets("Controle").Cells(Worksheets("Controle").Rows.Count, 1).End(xlUp).Row
        lLinhaAtual = lUltimaLinhaAtiva + 1
            If IsNumeric(Worksheets("Controle").Cells(lUltimaLinhaAtiva, 1).Value) Then
                lMax = Worksheets("Controle").Cells(lUltimaLinhaAtiva, 1).Value + 1
                    Else
                lMax = 1
            End If
        Sheets("Controle").Cells(lLinhaAtual, 1).Value = lMax
        Sheets("Controle").Cells(lLinhaAtual, 2).Value = Date
        Sheets("Controle").Cells(lLinhaAtual, 3).Value = Sheets("4D").Range("AQ2").Value
        Sheets("Controle").Cells(lLinhaAtual, 4).Value = Sheets("4D").Range("AQ5").Value
        Sheets("Controle").Cells(lLinhaAtual, 5).Value = Sheets("4D").Range("B9").Value
        Sheets("Controle").Cells(lLinhaAtual, 6).Value = Sheets("4D").Range("B18").Value
        Sheets("Controle").Cells(lLinhaAtual, 7).Value = Sheets("4D").Range("B80").Value
        Sheets("Controle").Cells(lLinhaAtual, 8).Value = Sheets("4D").Range("AC4").Value
   
        Range("B2:BB26").Copy Sheets("Investigação").Range("B2:BB26")
       
        coco = "G:\BRITA-CD_Itapevi\KPI Logistica\Instruções de Trabalho\Tracking\Tracking_Marina\Reclamação TEMP\" & Sheets("Investigação").Range("AQ2").Value & " - " & Sheets("Investigação").Range("B9").Value & ".xlsm"
        HTMLBody = "Bom dia/tarde,<br><br>Em anexo CCMS " & Sheets("Investigação").Range("AQ2") & " para investigação. Prazo para resposta até " & Sheets("Investigação").Range("AC4") & ".<br><br>Atenciosamente,"
        Set OA = CreateObject("Outlook.Application")
        Set OM = OA.CreateItem(0)
        Workbooks.Add
        ThisWorkbook.Sheets("Investigação").Copy Before:=ActiveWorkbook.Sheets(1)
        ThisWorkbook.Sheets("Investigation Matrix").Copy Before:=ActiveWorkbook.Sheets(2)
        ActiveWorkbook.SaveAs Filename:=coco, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        ActiveWorkbook.Sheets("Investigação").Select
        ActiveSheet.Shapes("Botão 1").OnAction = "'" & ActiveWorkbook.Name & "'!Plan7.Save"
        Range("AC4:AH6").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveWorkbook.Close True
            With OM
                .To = Sheets("4D").Range("L80").Value
                .CC = Sheets("4D").Range("B81").Value
                .Subject = "CCMS " & Sheets("Investigação").Range("AQ2") & " - " & Sheets("Investigação").Range("B9")
                .HTMLBody = HTMLBody & "<br>"
                .Attachments.Add coco
                .Display
                .Send
            End With
        MsgBox "Documento enviado com sucesso para " & Sheets("4D").Range("J80"), vbInformation, ""
    End If
End Sub

.. A parte onde abre o Form

 

Sub EmailID()
 
Dim coco As String, HTMLBody As String
Dim OA As Object, OM As Object
Dim lMax As Long
Dim lLinhaAtual As Long
Dim mensagem As VbMsgBoxResult

UserForm1.Show

 

 

Código do Form

 

Private Sub CommandButton1_Click()

    If ComboBox1.Value = Empty Then
        MsgBox "Selecione uma Transportadora!", vbCritical
    Else
ActiveSheet.Range("B80").Value = UserForm1.ComboBox1.Value

Unload UserForm1
    End If
End Sub

Private Sub UserForm_Initialize()
Dim OCOLLECTION As New Collection
Dim VARVALUE As Variant
Dim i As Long
On Error Resume Next
For Each VARVALUE In Plan8.Range("C3:C" & Plan8.Range("C65536").End(xlUp).Row)
        OCOLLECTION.Add VARVALUE, VARVALUE
Next
For i = 1 To OCOLLECTION.Count
        ComboBox1.AddItem OCOLLECTION.Item(i)
Next i
End Sub

 

1.JPG

2.JPG

Postado

Ah tá você esta se referindo quando a macro esta em EXECUÇÂO, e é 'clicado' no "X" do Form.

Então tente inseri um "END" na rotina. 

ex.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then
        Cancel = True
        End
     End If
End Sub

*  mas nesse caso o form encerrá/fechará

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!