Ir ao conteúdo
  • Cadastre-se
Mizangela Martins

Excel RESOLVIDO Excluir planilhas no excel

Recommended Posts

minha folha de pontos gera a folha de ponto de todos os funcionários, porém gostaria q a mesma alem de gerar todas as folhas tivesse um botao para excluir uma ou mais (selecionada na lista) ou todas. 

na minha folha de ponto tenho dois botões:

-Gerar todas (todos os funcionarios da lista) a partir de uma folha base

-Gerar Selecionada (somente o funcinario selecionado na lista( 1 ou mais)

 preciso de mais um botao para excluir todas as planilhas que foram geradas

 

alguem pode me ajudar

 

segue os codigos dos botões

 

Sub GeraTodasAsFolhas()
 Dim n As Range, ws As Worksheet, e As Boolean
  Application.ScreenUpdating = False
  For Each n In Range("B6:B" & Cells(Rows.Count, 2).End(3).Row)
   For Each ws In Worksheets
    If ws.Name = n.Offset(, -1).Value Then
     With ws
      .[B7] = n.Value: .[B8] = n.Offset(, 1).Value: .[H8] = n.Offset(, 2).Value
      '.[I9] = n.Offset(, 3).Value: .[J9] = n.Offset(, 4).Value
      .[A13:A43].Value = Sheets("matriz").[A13:A43].Value
      .[B9] = Sheets("matriz").[B9].Value: .[D9] = Sheets("matriz").[D9].Value
      .[I9] = n.Offset(, 3).Value
     End With
     e = True:  Exit For
    End If
   Next ws
   If Not e Then
    If Sheets.Count = 2 Then
     Sheets("matriz").Copy After:=Sheets(2)
    ElseIf Sheets(3).Name <> "1" Then
     Sheets("matriz").Copy After:=Sheets(2)
    Else: Sheets("matriz").Copy After:=Sheets("" & n.Offset(-1, -1).Value & "")
    End If
     ActiveSheet.Name = n.Offset(, -1).Value
    [B7] = n.Value: [B8] = n.Offset(, 1).Value: [H8] = n.Offset(, 2).Value
    '[I9] = n.Offset(, 3).Value: [J9] = n.Offset(, 4).Value
    [I9] = n.Offset(, 3).Value
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value: e = False
   Else: e = Not e
   End If
  Next n
  Application.ScreenUpdating = True
End Sub





Sub GeraParaSelecionados()
 Dim n As Range, ws As Worksheet, e As Boolean
  Application.ScreenUpdating = False
  For Each n In Selection
   For Each ws In Worksheets
    If n.Value = "" Then Exit For
    If ws.Name = n.Offset(, -1).Value Then
     With ws
      .[B7] = n.Value: .[B8] = n.Offset(, 1).Value: .[H8] = n.Offset(, 2).Value
      '.[I9] = n.Offset(, 3).Value: .[J9] = n.Offset(, 4).Value
      .[A13:A43].Value = Sheets("matriz").[A13:A43].Value
      .[B9] = Sheets("matriz").[B9].Value: .[D9] = Sheets("matriz").[D9].Value
      .[I9] = n.Offset(, 3).Value
     End With
     e = True:  Exit For
    End If
   Next ws
   If Not e And n.Value <> "" Then
    If Sheets.Count = 2 Then
     Sheets("matriz").Copy After:=Sheets(2)
    ElseIf Sheets(3).Name <> "1" Then
     Sheets("matriz").Copy After:=Sheets(2)
    Else: Sheets("matriz").Copy After:=Sheets("" & n.Offset(-1, -1).Value & "")
    End If
     ActiveSheet.Name = n.Offset(, -1).Value
    [B7] = n.Value: [B8] = n.Offset(, 1).Value: [H8] = n.Offset(, 2).Value
    '[I9] = n.Offset(, 3).Value: [J9] = n.Offset(, 4).Value
    [I9] = n.Offset(, 3).Value
     ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value: e = False
   Else: e = Not e
   End If
  Next n
  Application.ScreenUpdating = True
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode experimentar este codido:

 

Sub ApagarPlanilhas()


Dim WS As Worksheet



Application.DisplayAlerts = False


For Each WS In Worksheets

If WS.Name <> "Matriz" Then ' Matriz é o nome da planilha principal que gera todas as outras.

WS.Delete

End If



Next WS



Application.DisplayAlerts = True



End Sub


 

 

Se precisar preservar mais alguma planilha precisa alterar o if.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque esta linha!
 

If WS.Name <> "Matriz" Then ' Matriz é o nome da planilha principal que gera todas as outras.



Por esta!

If WS.Name <> "Matriz" _

And WS.Name  <> "Dados" Then 



 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×