Notifications
Clear all

Nomear nova Pasta com valor da célula.

2 Posts
1 Usuários
0 Reactions
1,605 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Beleza Galera.!

Tenho o código abaixo, (gentilmente fornecido pelo 'Mauro Coutinho') que cria um novo arquivo (pasta de trabalho).
Seria possível, que ao criar esta nova pasta, já criar com o nome deste Arquivo e Aba como o valor (conteúdo) de uma determinada celular.?

'Cria uma nova Pasta
Set Wkb = Workbooks.Add
    'Nomeia a Aba
    With ActiveSheet
        .Name = "filtrados"
        .Range("A1").Select
    End With
 
Postado : 22/09/2011 1:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bem Dani,

O nome da pasta somente é alterado no "salvamento".
Nota no help do VB

A propriedade Name retorna o nome da pasta de trabalho. Você não pode definir o nome usando essa propriedade; se precisar alterar o nome, use o método SaveAs para salvar a pasta de trabalho com um nome diferente.

Tambem para nomear o arquivo e planilha, e necessario a dfinição da variavel com o nome antes do

Workbooks.Add

Então utilizando o mesmo exemplo do Mauro Coutinho, o codigo ficaria assim:

Sub FiltroNewWkB()
Dim wsOrigem As Worksheet, fNome As String, sPath As String
Set wsOrigem = Sheets("Dados")

'Obtem o nome na celula "B2" em dados
fNome = wsOrigem.Cells(2, 2).Value

'Indica o local onde será salvo o novo arquivo
sPath = "c:Temp"
           
'Cria uma nova Pasta
Set wkb = Workbooks.Add
    '
    With wkb
        'Aqui nomeia a primeira planilha
        .ActiveSheet.Name = fNome
        'Aqui salva e nomeia o arquivo (sem os dados ainda)
        .SaveAs Filename:=sPath & fNome
    End With

        'Aplica o Filtro Avançado e Copia para a ABA "filtrados"
        'do novo WB
        'O CRITERIO ESTÁ NESTE ENDEREÇO : wsOrigem.Range("D1:D2")
        wsOrigem.Range("Database") _
            .AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=wsOrigem.Range("D1:D2"), _
            CopyToRange:=ActiveSheet.Range("A1"), Unique:=False
            
            Range("A1").Activate
                
            'Ajusta a largura das colunas
            ActiveSheet.Columns("A:R").AutoFit

End Sub
 
Postado : 22/09/2011 2:03 pm