Olá, consegui criar novas planilhas com base em valores únicos em uma coluna. Além disso, quero somar os valores em uma coluna e incluir essa soma no nome do arquivo de cada planilha correspondente.
Quero que a soma dos valores na coluna D seja adicionada ao nome do arquivo desta pasta de trabalho no formato Filename_Sum(D).xls
Isso é o que eu fiz, tudo que preciso é fazer a soma da Coluna I2:I, converter a soma em uma String e incluir no nome do arquivo (o valor na coluna A)
'Copy/paste the visible data to the new workbook
My_Range.SpecialCells(xlCellTypeVisible).Copy
With WSNew.Range("A1")
' Paste:=8 will copy the columnwidth in Excel 2000 and higher
' Remove this line if you use Excel 97
.PasteSpecial Paste:=8
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
.Select
End With
mySum = Application.WorksheetFunction.Sum(Columns("I2:I1024"))
'Save the file in the new folder and close it
On Error Resume Next
WSNew.Parent.SaveAs foldername & _
cell.Value _
& CStr(mySum) & _
FileExtStr, FileFormatNum'
Responder1
Presumo que você não saiba nada sobre VBA ou macros, então aqui estão as etapas mais curtas para fazer o que você está procurando:
Abra sua pasta de trabalho. No teclado, pressione alt + F11. Isso abrirá a tela do desenvolvedor VBA. À esquerda há uma árvore, clique com o botão direito no objeto superior (VBAProject(YourFileName)) e selecione Inserir > Módulo. No módulo que abriu, na tela principal cole este código:
Option Explicit
Sub SaveWithSum()
Dim SumOfD As Integer
SumOfD = Application.Sum(Range("Sheet1!D:D"))
ActiveWorkbook.SaveAs "C:\YourFolder\YourFilename" & SumOfD & ".xlsx", FileFormat:=51
End Sub
Em seguida, clique em salvar. Ele avisará que seu formato de arquivo atual (.xlsx) pode executar macros. Selecione não e salve seu arquivo como YourFile.xlsm.
Você Terminou! O arquivo resultante será C:\YourFolder\YourFilename##.xlsx.
Este script salvará todos os arquivos renomeados como arquivos .xlsx que NÃO PODEM executar a macro novamente (na verdade, ela desaparecerá da tela do desenvolvedor). Se você deseja salvar os arquivos como arquivos .xlsm e deixar o script continuar sendo executado nos arquivos salvos também, altere ".xslx" para ".xlsm" e altere o FileFormat para 52.
Você pode criar um botão na planilha vinculado à macro (uma rápida pesquisa no Google ajudará com isso) ou apenas executar a macro selecionando Exibir> Macros e executá-la a partir daí.
Certifique-se de que a Folha1! é alterado para corresponder à sua planilha. Boa sorte!
Responder2
Embora a pergunta tenha sido postada há alguns anos, gostaria de fornecer uma resposta para outras pessoas que buscam uma solução:
Sub save_with_value()
Dim Fname As String
Dim cell As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'replaces existing file if already exists
Fpath = "O:\TEST\Values\" 'folder path - change accordingly to your folder
Fname = »Filename«
Dim result As Double
result = WorksheetFunction.Sum(Range("D:D"))
ActiveWorkbook.SaveAs Filename:= _
Fpath & "\" & Fname & "_" & Format(result, "#,##0.00") & " EUR" & ".xlsx"
End sub