Notifications
Clear all

criar novo workbook

3 Posts
2 Usuários
0 Reactions
1,075 Visualizações
(@joanas)
Posts: 0
New Member
Topic starter
 

Boa tarde,

estou a tentar criar um código para que quando o numero de sheets for maior ou igual a 50. deverá ser feita uma cópia desse ficheiro, e voltar a criar um ficheiro com o nome original ("Book_O"), pois uso muito esse nome durante o codigo. quando tento 'criar novo workbook, com o novo Book_O o ficheiro fica com a igual ao de origem, ou sejam, nao se encontra vazio, encontra-se com as 50 sheets preenchidas. podem ajudar?

If ComboBox1.Value = "DesgloseAN" And ComboBox2.Value = "Consolidada" And ComboBox3.Value = "Orçamento (Pto)" Then
        
        Workbooks.Open (Ci & Book_O), UpdateLinks:=False, ReadOnly:=False, Format:=5
        
        If Sheets.Count >= 50 Then
       
        Windows("Book_O.xlsx").Activate
        ActiveWorkbook.Save
        ChDir "G:OrcControloSCCJoana"
        ActiveWorkbook.SaveAs Filename:=("G:OrcControloSCCJoanaBook_O__" & Month(Date) & "_" & Year(Date) & ".xlsx"), FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
                    
        'criar  novo workbook Book_O
    
    
    Set NewBook = Workbooks.Add
    With NewBook
        .Title = "Book_O"
        .Subject = "Orçamento (Pto)"
        .SaveAs Filename:="Book_O.xlsx"
    End With

    Sheets("Sheet2").Select
    ActiveWindow.SelectedSheets.Delete
    Sheets("Sheet3").Select
    ActiveWindow.SelectedSheets.Delete

        
        ActiveWorkbook.Close
        
        MsgBox "Foi criado um novo ficheiro Book_O", vbInformation
    
        End If
 
Postado : 02/02/2015 10:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Já tentou por uma condição lógica para verificar a quantidade de guia?

Sub Guias()
    qtd = ActiveWorkbook.Sheets.Count
    If qtd > 49 Then
'No lugar da Msgbox, vai seu código
        MsgBox "Temos " & qtd & " guias"
    Else: Exit Sub
    End If
End Sub

Att

 
Postado : 02/02/2015 10:52 am
(@joanas)
Posts: 0
New Member
Topic starter
 

sim. o meu problema é aqui:

Set NewBook = Workbooks.Add
With NewBook
.Title = "Book_O"
.Subject = "Orçamento (Pto)"
.SaveAs Filename:="Book_O.xlsx"
End With

Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Sheet3").Select
ActiveWindow.SelectedSheets.Delete

por exemplo, eu uso o worbook "Book_O". mas quando ele tiver com 40 sheets quero guarda-lo com outro nome, e criar um novo workbook (na mesma pasta) com o nome do ficheiro original ("Book_O"). porque vou voltar a usar este ficheiro, com este nome em especifico no futuro.

mas quando crio o Book_O. acho que como ele ainda existe na pasta com esse nome, o ficheiro substitui o detalhe (sheets) pelo antigo "Book_O".

 
Postado : 02/02/2015 11:06 am