Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Seleção de guias através da Checkbox
Seleção de guias através da Checkbox
Boa tarde,
Sou iniciante em VBA e estou aplicando esses códigos para melhorar a minha produtividade na empresa. estou desenvolvendo uma matriz de relatórios, todos listados num formulário com checkbox. Cada checkbox equivale a uma guia, e eu gostaria da ajuda para montar o código que faça a seleção da guia e copie para um novo arquivo, porem eu posso selecionar 2, 3 ou mais relatórios. Nas minhas pesquisas eu só consegui conceitos que copiem uma unica guia ou todas as guias.
por gentileza, poderia me ajudar?
Fabio
Sou iniciante em VBA e estou aplicando esses códigos para melhorar a minha produtividade na empresa. estou desenvolvendo uma matriz de relatórios, todos listados num formulário com checkbox. Cada checkbox equivale a uma guia, e eu gostaria da ajuda para montar o código que faça a seleção da guia e copie para um novo arquivo, porem eu posso selecionar 2, 3 ou mais relatórios. Nas minhas pesquisas eu só consegui conceitos que copiem uma unica guia ou todas as guias.
por gentileza, poderia me ajudar?
Fabio
Re: Seleção de guias através da Checkbox
Fábio
Acrescente algum arquivo de exemplo com esse formulário, checkbox , guias, etc.
Sem os arquivos fica complicado lhe ajudar.
Att,
Raygsson
Acrescente algum arquivo de exemplo com esse formulário, checkbox , guias, etc.
Sem os arquivos fica complicado lhe ajudar.
Att,
Raygsson
Re: Seleção de guias através da Checkbox
Bom dia Jovem,
Segue anexo a planilha que estou tentando desenvolver.
Fabio
Segue anexo a planilha que estou tentando desenvolver.
Fabio
- Anexos
-
- SERVICE - Controle de Ordem de Serviço.7z
- (2.86 MiB) Baixado 159 vezes
Re: Seleção de guias através da Checkbox
Fabio
Voce aplicou alguma configuração para bloquear o seu Formulario "Frm_GerarOs"?
Não consegui testar a rotina de click nas checkbox pois o formulário esta abrindo aparentemente bloqueado.
Voce aplicou alguma configuração para bloquear o seu Formulario "Frm_GerarOs"?
Não consegui testar a rotina de click nas checkbox pois o formulário esta abrindo aparentemente bloqueado.
Re: Seleção de guias através da Checkbox
Boa tarde,
desculpe devo ter bloqueado sem querer. ja desbloqueei
desculpe devo ter bloqueado sem querer. ja desbloqueei
- Anexos
-
- SERVICE - Controle de Ordem de Serviço.7z
- (2.87 MiB) Baixado 143 vezes
Re: Seleção de guias através da Checkbox
Não sei se entendi muito bem o seu objetivo final, porém selecionar varias planilhas e criar um novo arquivo com uma cópia de cada aba não é difícil. Você já tem código pra gerar o arquivo, pode tentar uma abordagem diferente na geração, não selecionando todas as abas desejadas de uma vez. Vai marcando suas check box e depois clica no botão OK pra verificar as check box marcadas e gerar os arquivos. Fiz um código pra loop nos itens do formulário e modifiquei o nome que sera salvo na geração do novo arquivo, apenas como exemplo, depois altere conforme precisar. Fiz a verificação das check box marcadas por loop, porém pode muito bem simplificar verificando individualmente pelo nome, exemplo: if me.checkbox1 = true then ... elseif me.checkbox2 = true then..., elseif me.checkbox3 = true then..., etc
Considerei que o nome da aba esta na propriedade Caption da check box:
A saida seria isso:
Código: Selecionar todos
Private Sub Ok_Click()
For Each Item In Me.Controls
If Item = True Then
NomePlan = Mid(Item.Caption, 1, 9)
Sheets(NomePlan).Select
Call SalvarAba(NomePlan)
End If
Next
End Sub
Sub SalvarAba(NomePlan)
'Impede que o Excel atualize a tela
Application.ScreenUpdating = False
'Impede que o Excel exiba alertas
Application.DisplayAlerts = False
'Seta uma variável para se referir a nova pasta de trabalho
Dim NovoWB As Workbook
'Cria esta nova aba
Set NovoWB = Workbooks.Add(xlWBATWorksheet)
With NovoWB
'Copia a aba atual para o novo arquivo, como a segunda aba
ThisWorkbook.ActiveSheet.Copy After:=.Worksheets(.Worksheets.Count)
'Deleta a primeira aba do arquivo criado (Aba em branco)
.Worksheets(1).Delete
'Salva o novo arquivo para a mesma pasta do arquivo atual
'Troque "Novo Arquivo" para um outro nome qualquer que preferir
.SaveAs ThisWorkbook.Path & "\" & NomePlan & ".xlsx"
'Fecha o novo arquivo
.Close False
End With
'Permite que o Excel volte a atualizar a tela
Application.ScreenUpdating = False
'Permite que o Excel volte a exibir alertas
End Sub
- Anexos
-
- exp2.JPG (21.3 KiB) Exibido 3924 vezes
Re: Seleção de guias através da Checkbox
Bom dia Raygsson,
A saida seria para um único arquivo.
Grato.
A saida seria para um único arquivo.
Grato.
Re: Seleção de guias através da Checkbox
Bom dia Raygsson,
A saída seria para um único arquivo.
Grato.
A saída seria para um único arquivo.
Grato.
Re: Seleção de guias através da Checkbox
Código: Selecionar todos
Private Sub Ok_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim NovoWB As Workbook
Dim AtualWB As Workbook
Set AtualWB = ActiveWorkbook
Set NovoWB = Workbooks.Add(xlWBATWorksheet)
With NovoWB
For Each Item In Me.Controls
If Item = True Then
NomePlan = Mid(Item.Caption, 1, 9)
AtualWB.Activate
AtualWB.Sheets(NomePlan).Select
AtualWB.ActiveSheet.Copy After:=.Worksheets(.Worksheets.Count)
End If
Next
.Worksheets(1).Delete
.SaveAs AtualWB.Path & "\saida.xlsx"
.Close False
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Unload Me
End Sub
Re: Seleção de guias através da Checkbox
Boa tarde Raygsson,
Desculpe a demora em retornar, tá uma correria aqui. agradeço a atenção e ajuda, era isso que precisava.
Grato.
Desculpe a demora em retornar, tá uma correria aqui. agradeço a atenção e ajuda, era isso que precisava.
Grato.