Usuário com melhor resposta
DÚVIDA - Código para manipular os "OPPTION BUTTOM"

Pergunta
-
Bom dia,
então, com o meu código pronto, percebi que faltava algo. Trabalhamos com suas planilhas de referencia (RM-127 e RM-128). O que eu gostaria de fazer é o seguinte:
Ao deixar a "opt127" (optionbuttom) ATIVADA (true) um WORKBOOK externo - cujo nome é "RM-Modelo.xlsm" (que vai estar fechada) vai ser ativada e uma WORKSHHEET dentro do workbool cujo nome será "RM-127" também será ativada. O usuário vai clicar no botão INSERIR DADOS e estes dados serão inseridos nas pastas ativadas pelo "opt127".
E se ele clicar no "opt128", o mesmo WORKBOOK será ativado, porém uma WORKSHEET diferente, desta vez o nome será "RM-128", será ativada. E ao clicar no botão inserir dados, a planilha ativada pelo "opt128" será preenchida.
NOTA: Toda vez que o usuário fechar o "software" os dados tem que ser salvos no WORKBOOK ("RM-Modelo.xslm"), para quando ele re-abrir ele pode continuar inserindo os dados de onde parou.
Mas a dúvida principal é como ficaria o código para ativar as planilhas do ("RM-Modelo.xlsm") de acordo com a opção escolhida no OpptionButtom.
A planilha segue no link.
http://ge.tt/9ecJE8S/v/0
Valeu galera...
Respostas
-
Crie um formulário com dois botões de opção (OptionButton1 e OptionButton2), um botão de comando (CommandButton1) e adapte o código abaixo de acordo com suas necessidades:
Private Sub CommandButton1_Click() Dim wb As Workbook Dim sWorkbookName As String Dim sWorkbookPath As String Select Case True Case OptionButton1 sWorkbookName = "RM-127.xlsx" Case OptionButton2 sWorkbookName = "RM-128.xlsx" End Select sWorkbookPath = "c:\temp\" & sWorkbookName If fPastaTrabalhoAberta(sWorkbookName) Then Set wb = Workbooks(sWorkbookName) Else Set wb = Workbooks.Open(sWorkbookPath) End If wb.Sheets("Plan1").Range("A1") = "Populando célula A1 da planilha Plan1 da pasta de trabalho " & wb.Name 'Se que quiser fechar a pasta de trabalho, use o comando abaixo: wb.Close SaveChanges:=True End Sub Function fPastaTrabalhoAberta(s As String) As Boolean Dim wb As Workbook On Error Resume Next Set wb = Workbooks(s) On Error GoTo 0 If wb Is Nothing Then fPastaTrabalhoAberta = False Else fPastaTrabalhoAberta = True End If End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 27 de novembro de 2012 18:34
- Marcado como Resposta Hezequias VasconcelosModerator quinta-feira, 29 de novembro de 2012 13:03
Todas as Respostas
-
-
Euder, você enviou o sistema inteiro. Há vários formulários e blocos de código e então não entendi nada. O formulário que deverá fazer esse filtro já está presente no exemplo que disponibilizou?
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Editado Felipe Costa GualbertoMVP, Moderator sábado, 24 de novembro de 2012 23:09
-
Olá Benzadeus. Está sim.
o userform chama "frmTela" lá vai ter dois botões "TUSCANY_127 E TUSCANY_128". Quando eu clicar no 127 ele tem que selecionar a planilha RM-127 e quando eu clicar no 128 ele tem que selecionar RM-128. Entendeu?
Mas se você puder me ajudar no geral já está ótimo. Eu queria saber como eu faço para fazer referencia a uma planilha externa. Por exemplo, eu tenho uma planilha que chama "RM-Modelo.xlsm" em uma pasta no meu computador, aí no meu código eu quero fazer referência a ela, quero ativa-la. Tem como?
Obrigaod
-
Crie um formulário com dois botões de opção (OptionButton1 e OptionButton2), um botão de comando (CommandButton1) e adapte o código abaixo de acordo com suas necessidades:
Private Sub CommandButton1_Click() Dim wb As Workbook Dim sWorkbookName As String Dim sWorkbookPath As String Select Case True Case OptionButton1 sWorkbookName = "RM-127.xlsx" Case OptionButton2 sWorkbookName = "RM-128.xlsx" End Select sWorkbookPath = "c:\temp\" & sWorkbookName If fPastaTrabalhoAberta(sWorkbookName) Then Set wb = Workbooks(sWorkbookName) Else Set wb = Workbooks.Open(sWorkbookPath) End If wb.Sheets("Plan1").Range("A1") = "Populando célula A1 da planilha Plan1 da pasta de trabalho " & wb.Name 'Se que quiser fechar a pasta de trabalho, use o comando abaixo: wb.Close SaveChanges:=True End Sub Function fPastaTrabalhoAberta(s As String) As Boolean Dim wb As Workbook On Error Resume Next Set wb = Workbooks(s) On Error GoTo 0 If wb Is Nothing Then fPastaTrabalhoAberta = False Else fPastaTrabalhoAberta = True End If End Function
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 27 de novembro de 2012 18:34
- Marcado como Resposta Hezequias VasconcelosModerator quinta-feira, 29 de novembro de 2012 13:03