Veja se é isso:
Private Sub OK_Click()
Dim linha As Long
If formEntrada.Solicitado.Text = "" Then
MsgBox "Preencha o campo 'Solicitado'."
Exit Sub
End If
ActiveWorkbook.Sheets("Chamados").Activate
linha = Range("B" & Rows.Count).End(xlUp).Row
Cells(linha, 2) = Chamado.Value
Cells(linha, 3) = CDate(Dataabre.Value)
Cells(linha, 4) = Texto.Value
Cells(linha, 5) = User.Value
Cells(linha, 6) = CDate(Datafecha.Value)
Cells(linha, 7) = Solicitado.Value
Cells(7, 1).EntireRow.Copy
Cells(linha, 1).PasteSpecial xlPasteFormats
If formEntrada.txtAddress.Value <> "" Then
'Criando hiperlink do arquivo selecionado
ActiveCell.Offset(0, 5).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
formEntrada.txtAddress.Text, TextToDisplay:= _
Solicitado.Value
End If
Unload Me
End Sub
JEduardo,
Obrigado pela ajuda. Porém este código, está lançando as informações em cima da última linha e não em uma nova linha como eu gostaria. Está apagando as informações que estavam escritas e entrando com as novas infos do formulário por cima.
ao que parece alguem já respondeu,
não sei bem se é oq vc quer, mas modifiquei a macro para ficar de maneira que entendi que vc queria e que eu conseguisse fazer
Sub inicializar()'desprotege a planilha, pode ser usado para todas as outras macros que precise fazer alteração
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveSheet.Unprotect
End Sub
Sub finalizar()' protege a planilha
ActiveSheet.Protect
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Private Sub OK_Click()
Dim linha As Long
If formEntrada.Solicitado.Text = "" Then
MsgBox "Preencha o campo 'Solicitado'."
Exit Sub
End If
On erro GoTo Final
ActiveWorkbook.Sheets("Chamados").Activate
inicializar '-----macro que desprotege
linha = Range("B" & Rows.Count).End(xlUp).Row + 1
Range("B" & linha - 1, "G" & linha - 1).Copy
Cells(linha, 2).PasteSpecial xlPasteFormats
Cells(linha, 2).Value = Chamado.Value
Cells(linha, 3).Value = Dataabre.Value
Cells(linha, 4).Value = Texto.Value
Cells(linha, 5).Value = User.Value
Cells(linha, 6).Value = Datafecha.Value
Cells(linha, 7).Value = Solicitado.Value
Final:
finalizar
Unload Me
End Sub
a parte que desfaz
no caso é para excluir a ultima linha certo?
mas tem que se saber se é apenas a linha recentemente adicionada, pq aí é mais dificil, pq vai ter que criar uma maneira de identificar essa linha, seria mais pratico adicionar uma macro de edição onde se pudesse apagar o registro errado.
Edcronos,
Não consegui habilitar este código. Ao tentar executar está dando erro... Você poderia habilitar na planilha modelo e enviá-la, por favor?
E quanto a ação de desfazer, é exatamente isso, apagar a linha recém adicionada. Mas a macro de edição talvez sirva como alternativa. Sou meio leigo em macros e VBAs, poderia me dar essa ajuda?
Abraços.
Postado : 14/11/2014 12:28 pm