Ir ao conteúdo
  • Cadastre-se

Excel macro para mudar a planilha ativa


Posts recomendados

Bom dia,

 

Não manjo muito em VBA e como este tópico já estava aberto preferi utilizar e compartilhar a minha dificuldade.

 

bem meu problema é o seguinte:

tenho uma plan (MENU), através de botões me direciona para lanilha especificas e abre alguns formulários, um deles é o formulário de cadastro.

 

Meu maior problema é quando clico no botão Salvar, pois ao clicar no botão ele registra os dados na planilha que eu quero, porém ele abre essa planilha, gostaria que o formulário ficasse apenas na plan (MENU).

segue o código abaixo:


 

Private Sub SALVAR_Click()
ThisWorkbook.Worksheets("CPFf").Activate
Range("A5").Select
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If

'Confere se o campo nome foi preenchido
If tCod.Value = "" Then

MsgBox ("Campo Código é Obrigatório")

Exit Sub

tCod.SetFocus

Else
End If


Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = tCod.Value
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3
ActiveCell.Offset(0, 3).Value = TextBox4
ActiveCell.Offset(0, 4).Value = TextBox5
ActiveCell.Offset(0, 5).Value = TextBox6
ActiveCell.Offset(0, 6).Value = TextBox7
ActiveCell.Offset(0, 7).Value = TextBox8
ActiveCell.Offset(0, 8).Value = TextBox9
ActiveCell.Offset(0, 9).Value = TextBox10
ActiveCell.Offset(0, 10).Value = TextBox11
ActiveCell.Offset(0, 11).Value = TextBox12
ActiveCell.Offset(0, 12).Value = TextBox13
ActiveCell.Offset(0, 13).Value = TextBox14
ActiveCell.Offset(0, 14).Value = TextBox15
ActiveCell.Offset(0, 15).Value = TextBox16
ActiveCell.Offset(0, 16).Value = TextBox17
ActiveCell.Offset(0, 17).Value = TextBox18
ActiveCell.Offset(0, 18).Value = TextBox19
ActiveCell.Offset(0, 19).Value = TextBox20
ActiveCell.Offset(0, 20).Value = TextBox21
ActiveCell.Offset(0, 21).Value = TextBox22
ActiveCell.Offset(0, 22).Value = TextBox23
ActiveCell.Offset(0, 23).Value = TextBox24
ActiveCell.Offset(0, 24).Value = TextBox25
ActiveCell.Offset(0, 25).Value = TextBox26
ActiveCell.Offset(0, 26).Value = TextBox27
ActiveCell.Offset(0, 27).Value = TextBox28
ActiveCell.Offset(0, 28).Value = TextBox28
ActiveCell.Offset(0, 29).Value = TextBox30
ActiveCell.Offset(0, 30).Value = TextBox31
ActiveCell.Offset(0, 31).Value = TextBox32
ActiveCell.Offset(0, 32).Value = TextBox33
ActiveCell.Offset(0, 33).Value = TextBox34
ActiveCell.Offset(0, 34).Value = TextBox35
ActiveCell.Offset(0, 35).Value = TextBox36
ActiveCell.Offset(0, 36).Value = TextBox37
ActiveCell.Offset(0, 37).Value = TextBox38
ActiveCell.Offset(0, 38).Value = TextBox39
ActiveCell.Offset(0, 39).Value = TextBox40
ActiveCell.Offset(0, 40).Value = TextBox41
ActiveCell.Offset(0, 41).Value = TextBox42


tCod.Value = Empty
TextBox2.Value = Empty
TextBox3.Value = Empty
TextBox4.Value = Empty
TextBox5.Value = Empty
TextBox6.Value = Empty
TextBox7.Value = Empty
TextBox8.Value = Empty
TextBox9.Value = Empty
TextBox10.Value = Empty
TextBox11.Value = Empty
TextBox12.Value = Empty
TextBox13.Value = Empty
TextBox14.Value = Empty
TextBox15.Value = Empty
TextBox16.Value = Empty
TextBox17.Value = Empty
TextBox18.Value = Empty
TextBox19.Value = Empty
TextBox20.Value = Empty
TextBox21.Value = Empty
TextBox22.Value = Empty
TextBox23.Value = Empty
TextBox24.Value = Empty
TextBox25.Value = Empty
TextBox26.Value = Empty
TextBox27.Value = Empty
TextBox28.Value = Empty
TextBox29.Value = Empty
TextBox30.Value = Empty
TextBox31.Value = Empty
TextBox32.Value = Empty
TextBox33.Value = Empty
TextBox34.Value = Empty
TextBox35.Value = Empty
TextBox36.Value = Empty
TextBox37.Value = Empty
TextBox38.Value = Empty
TextBox39.Value = Empty
TextBox40.Value = Empty
TextBox41.Value = Empty
TextBox42.Value = Empty

MsgBox "Cadastro Efetuado Com Sucesso!!!", vbInformation, "ZUFER TECNOLOGIA E FERRAMENTARIA LTDA."
ThisWorkbook.Worksheets("CPFf").Activate = False
End Sub

Sempre que clico no botão SALVAR, ele abre atras do formulário a planilha(CPFf) onde os dados ficam armazenados, queria que atrás do formulário ficasse sempre a plan menu e nao mudasse quando fosse realizado o loop.

 

podem me ajudar?

 

agradeço desde já pela força!!!

Link para o comentário
Compartilhar em outros sites

desativei alguns comandos iniciais para que funcione 

no final de seu codigo tambem é preciso desativar uma linha de comandos. 

esta

ThisWorkbook.Worksheets("CPFf").Activate = False

 

Tenta começar teu formulário desta forma....

 

Private Sub SALVAR_Click()
'ThisWorkbook.Worksheets("CPFf").Activate '(foi retirado do codigo, ele abre a planilha em uqe voce que cadastrar)
'Range("A5").Select
'Do
'If Not (IsEmpty(ActiveCell)) Then
'ActiveCell.Offset(1, 0).Select
'End If
'Confere se o campo nome foi preenchido
If tCod.Value = "" Then
MsgBox ("Campo Código é Obrigatório")
'Exit Sub
tCod.SetFocus
Else
End If

linha = 2

Do Until Sheets("CPFf").Cells(linha, 1) = ""
linha = linha + 1
Loop
'Loop Until IsEmpty(ActiveCell) = True

'esta frenquencia é padrão é so repedir com os otros campus.

ActiveCell.Value = tCod.Value

Sheets("CPFf").Cells(linha, 1) = TextBox2
Sheets("CPFf").Cells(linha, 2) = TextBox3


 

qualquer duvida... fique a disposição

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

JG, Cara você me ajudou de mais,muito obrigado!

 

Coloquei no inicio da macro como você sugeriu e funcionou perfeitamente como eu desejava!

a planilha para onde os dados são "exportados" não abre mais ao clicar em salvar, muitíssimo obrigado!!

JG, Gostaria de tirar mais uma duvida, que me surgiu aqui...

 

tenho um outro botão "EXCLUIR" que ora funciona, ora não funciona me aparece um erro tempo de Execução 1004, dizendo q o método da classe ranger falhou.

segue o código abaixo marquei em vermelho onde o erro aparece, tem momentos que funciona perfeitamente,  

 

Obrigado mais uma vez por me ajudar!

 

Private Sub EXCLUIR_Click()
Dim y As Integer
With Worksheets("CPFf").Range("A:A")
Set c = .Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
y = MsgBox("Tem Certeza Que Desejas Excluir o Registro?", vbYesNo, "Confirmação")
If y = vbYes Then

c.Select
Selection.EntireRow.Delete

tCod.Value = Empty
TextBox2a.Value = Empty
TextBox3a.Value = Empty
TextBox4a.Value = Empty
TextBox5a.Value = Empty
TextBox6a.Value = Empty
TextBox7a.Value = Empty
TextBox8a.Value = Empty
TextBox9a.Value = Empty
TextBox10a.Value = Empty
TextBox11a.Value = Empty
TextBox12a.Value = Empty
TextBox13a.Value = Empty
TextBox14a.Value = Empty
TextBox15a.Value = Empty
TextBox16a.Value = Empty
TextBox17a.Value = Empty
TextBox18a.Value = Empty
TextBox19a.Value = Empty
TextBox20a.Value = Empty
TextBox21a.Value = Empty
TextBox22a.Value = Empty
TextBox23a.Value = Empty
TextBox24a.Value = Empty
TextBox25a.Value = Empty
TextBox26a.Value = Empty
TextBox27a.Value = Empty
TextBox28a.Value = Empty
TextBox29a.Value = Empty
TextBox30a.Value = Empty
TextBox31a.Value = Empty
TextBox32a.Value = Empty
TextBox33a.Value = Empty
TextBox34a.Value = Empty
TextBox35a.Value = Empty
TextBox36a.Value = Empty
TextBox37a.Value = Empty
TextBox38a.Value = Empty
TextBox39a.Value = Empty
TextBox40a.Value = Empty
TextBox41a.Value = Empty
TextBox42a.Value = Empty

ComboBox1.SetFocus
Else
MsgBox "Registro Não Será Excluido!", vbInformation
End If
Else
MsgBox "Registro Não Localizado, Digite Novamente1!"
End If
End With
Exit Sub
End Sub

Link para o comentário
Compartilhar em outros sites

JG!

 

fiz como você menciono em alterar c.select para  c.activate. Só que o erro passou para a linha de baixo !

erro em tempo de execução 1004

o método delete da classe range falhou.

 

 

Private Sub EXCLUIR_Click()
Dim y As Integer
With Worksheets("CPFf").Range("A:A")
Set c = .Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
y = MsgBox("Tem Certeza Que Desejas Excluir o Registro?", vbYesNo, "Confirmação")
If y = vbYes Then

c.Activate
Selection.EntireRow.Delete

tCod.Value = Empty
TextBox2a.Value = Empty
TextBox3a.Value = Empty
TextBox4a.Value = Empty
TextBox5a.Value = Empty
TextBox6a.Value = Empty
TextBox7a.Value = Empty
TextBox8a.Value = Empty
TextBox9a.Value = Empty
TextBox10a.Value = Empty
TextBox11a.Value = Empty
TextBox12a.Value = Empty
TextBox13a.Value = Empty
TextBox14a.Value = Empty
TextBox15a.Value = Empty
TextBox16a.Value = Empty
TextBox17a.Value = Empty
TextBox18a.Value = Empty
TextBox19a.Value = Empty
TextBox20a.Value = Empty
TextBox21a.Value = Empty
TextBox22a.Value = Empty
TextBox23a.Value = Empty
TextBox24a.Value = Empty
TextBox25a.Value = Empty
TextBox26a.Value = Empty
TextBox27a.Value = Empty
TextBox28a.Value = Empty
TextBox29a.Value = Empty
TextBox30a.Value = Empty
TextBox31a.Value = Empty
TextBox32a.Value = Empty
TextBox33a.Value = Empty
TextBox34a.Value = Empty
TextBox35a.Value = Empty
TextBox36a.Value = Empty
TextBox37a.Value = Empty
TextBox38a.Value = Empty
TextBox39a.Value = Empty
TextBox40a.Value = Empty
TextBox41a.Value = Empty
TextBox42a.Value = Empty

ComboBox1.SetFocus
Else
MsgBox "Registro Não Será Excluido!", vbInformation
End If
Else
MsgBox "Registro Não Localizado, Digite Novamente1!"
End If
End With
Exit Sub
End Sub

Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!