Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ricardomcs

VBYesNo com condição

Recommended Posts

Boa tarde.

Preciso de uma ajuda de programação em VBA. Queria executar um VBYesNo mas antes ter uma condição IF ou então logo a seguir. Pretendia executar uma macro para copiar dados de uma folha na parte de registo para outro local. Isso já consegui.

Mas pretendia que apenas executasse essa ordem se todos os dados estiverem preenchidos. Criei assim uma célula S4 com CONTAR.VAL para obter um VERDADEIRO se tudo estiver preenchido e FALSO se não.

Não consigo é programar para essa condição funcionar em VBA.

Dim resultado As VbMsgBoxResult
resultado = MsgBox("Tem a certeza que pretende criar Novo Orçamento? Último registo de " & Evaluate("S1"), vbYesNo, "Novo Orçamento")

If resultado = vbYes Then

Range("p8:p19").Select
Selection.Copy
Range("H19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A7:O7").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=18
Range("tblRegisto[[#Headers],[Data]]").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A8:B30").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=3
Range("tblRegisto[[#Headers],[Data]]").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("D8:I30").Select
Application.CutCopyMode = False
Selection.Copy
Range("tblRegisto[[#Headers],[Classif.]]").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=12
Range("B7").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("h8:h18").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("m7:o7").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("a1").Select

MsgBox "Novo orçamento criado com sucesso para o ano " & Evaluate("S1")
Else


MsgBox " Criação de novo orçamento cancelada pelo utilizador ou por dados incompletos"
End If

Este é o código e pretendia inserir mais qualquer programação do género:

If "S4" = "FALSO" Then
MsgBox "Criação de novo orçamento cancelada por DADOS INCOMPLETOS"

Obrigado a todos pela partilha de informação. Tem sido muito útil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.