Exibir porcentagens no nome do arquivo
Pergunta
Estou tentando salvar o nome do(s) meu(s) arquivo(s) parcialmente com base nos valores das células em uma de minhas planilhas.Eu tenho o seguinte código:
Sheets("Input").Range("F18").Value & " - " & Sheets("Input").Range("M13").Value
O problema é que quero que o título seja exibido como uma porcentagem e não um valor, ou em alguns casos como uma quantia em dólares e não um valor.Alguém pode explicar como fazer isso?
Obrigado!
Solução
A seguir, você salvará um arquivo com um nome como "Nome do arquivo-50%-$23.xlsx"
Por enquanto estou assumindo o seguinte (comente e me informe se estiver errado)
- Você deseja salvar um arquivo aberto (documento do Word ou planilha do Excel?)
- Você deseja nomear esse arquivo com base nos valores em F18 e M13
- Os valores podem ser porcentagens ou um custo em dólares
- F18 sempre será uma porcentagem e M13 sempre será em dólares
- Os valores inseridos nas células são apenas valores numéricos e as células foram formatadas para% ou moeda.
(Ajudará se no futuro você expor seu problema de forma um pouco mais óbvia e incluir o que você tentou até agora)
Sub testSave()
Dim SaveToDirectory As String
'just checking string looks good comment or delete when happy
MsgBox ("other text you want " & Cells(18, 6).Value * 100 & "%-$" & Format(Cells(13, 13).Value, "#,###.##"))
'set save directory
SaveToDirectory = "C:\Users\DMASON2\Documents\"
'set file name
ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "FileName-" & Cells(18, 6).Value * 100 & "%-$" & Format(Cells(13, 13).Value, "#,#*.##"), FileFormat:=xlWorkbookDefault
End Sub
Agora vou explicar o que eu fiz.
Em primeiro lugar, quando você formata uma célula para um valor percentual e insere 0,5, o Excel irá alterá-lo para 50% automaticamente, porém o valor da célula ainda é 0,5, então quando você acessá-lo você só precisa fazer o mesmo processo que o Excel faz para exibir um número básico como um percentagem.
- múltiplo por 100 (0,5 torna-se 50)
Adicione o caractere percentual após o número
Sheets("Input").Cells(Row, Column).value * 100 & "%"
Agora a moeda é mais simples pois o valor que você vê não muda, basta adicionar a moeda Char
"$" & Sheets("Input").Cells(row, column).value
Agora, para salvar o documento.Como não tenho ideia de que tipo de documento você deseja salvar, usei apenas salvar o ativo como exemplo.O nome do arquivo é uma combinação do local (saveToDirectory) e do nome do arquivo real que construímos acima.Observe que acabei de chamá-lo de "nome do arquivo" (você pode alterar isso para uma string variável ou qualquer coisa que desejar).Finalmente, para documentos do Excel, você tem várias opções diferentes ao salvar uma inicialização de trabalho, optei por usar o tipo padrão do usuário. Veja os tipos de arquivo para salvar documentos do Excel aqui
ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "FileName-" & Cells(18, 6).Value * 100 & "%-$" & Cells(13, 13).Value, FileFormat:=xlWorkbookDefault
ATUALIZAR
Encontrei uma maneira muito simples de incluir vírgulas nos números das moedas usando Format
Format(value, #,###.##)
ou
Format(value, "Standard")
ou (você pode omitir o sinal $ da string se usar esta versão)
Format(value, "Currency")
Este método também pode ser usado para os valores de porcentagem (novamente, você pode omitir a string de sinal % com este método)
Format(Value, "Percent")