Notifications
Clear all

Se existir arquivo com número salvo, criar número salvo + 1

10 Posts
2 Usuários
0 Reactions
1,617 Visualizações
(@alanisfcsm)
Posts: 0
Trusted Member
Topic starter
 

Olá!
Boa tarde.

Esse código verifica se existe algum arquivo no diretório com parte do nome 000120.
Se existir ele muda a Sheets("SET").Range("B332") para 000121.
Se não existir a Sheets("SET").Range("B332") permanece 000120.

Ele está mudando, mas não está permanecendo quando não existe.

:oops:


Sub novo_orcamento()
   
    Dim Temp_File_Name As String
    Dim File_Name As String
    Dim FileNum As Long
    Dim vCelula As Range
     
    'MsgBox "UM NOVO NÚMERO SÉRA CRIADO APÓS A CRIAÇÃO DO ATUAL."
    
    FileNum = (Worksheets("SET").Range("B332").Value - 1)
    Temp_File_Name = "D:PVPDF" & "*" & FileNum & "*.pdf"
    File_Name = Dir(Temp_File_Name, vbNormal)
     
    If File_Name <> "" Then
         
        MsgBox File_Name
        File_Name = Dir
        
    For Each vCelula In Sheets("SET").Range("B332").Cells
    vCelula.Value = vCelula.Value + 1
    Next
    
    MsgBox "ACHOU"
    'Call apagar_proposta
    
    Else
    
    For Each vCelula In Sheets("SET").Range("B332").Cells
    vCelula.Value = vCelula.Value - 1
    Next
    
    End If
       
End Sub

 
Postado : 08/10/2016 11:40 am
(@mprudencio)
Posts: 2749
Famed Member
 

Vc nao precisa testar se o arquivo existe, basta colocar um contador em uma celula e inserir essa informação no nome do arquivo salvo.

Esse codigo salva um novo arquivo com a o numero que vai registrar na celula C4


Sub Salvar()
    
Dim W As Worksheet
Dim Arq As String
Dim Contador As Long
    
Set W = Sheets("Plan1")
    Contador = W.Range("C4").Value + 1
    W.Range("C4").Value = Contador

'Este é o nome do novo arquivo xlsx    

Arq = Format(Contador, "000")
    
'Salva o arquivo na pasta clientes
    ChDir "C:Clientes"
    
    ActiveWorkbook.SaveAs Filename:="C:Clientes" & Arq & ".xlsx"
    ActiveWorkbook.Close
    
    MsgBox "Arquivo Salvo com Sucesso", vbOKOnly, "Atenção"
        
End Sub

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/10/2016 1:58 pm
(@alanisfcsm)
Posts: 0
Trusted Member
Topic starter
 

Obrigado pela ajuda e atenção Mprudencio.

Hummm, talvez eu tenha explicado um pouco errado.

Estou tentando construir com a ajuda de vocês uma planilha para "proposta de venda" ou "orçamento".

Por exemplo: O número é só para abrir a proposta, O usuário já saberá o número da mesma antes de finalizar ou enquanto o usuário estiver digitando.

Pensei no código que postei, pois também não queria que o usuário ficasse apertando o botão e gerando propostas em branco e fora da ordem. Não sei se meu raciocínio está certo. ( me ajude ai ) :idea:

Quando eu digo criar número + 1, é só na célula mesmo para aparecer no orçamento. A parte que salva em arquivo com o número na pasta já esta pronta. somente salva se tiver alguns campos preenchidos.

 
Postado : 08/10/2016 3:18 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O exemplo que passei faz isso que vc disse só nao limpa seu orçamento/venda anterior pq nao temos o seu arquivo.

Se nao coseguir ajustar o codigo que passei a sua necessidade posta o seu arquivo com o seu codigo que ajudamos.

Esse codigo esta criando um novo arquivo em XLSX

O seu salva em PDF essa é a unica diferença.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/10/2016 3:47 pm
(@alanisfcsm)
Posts: 0
Trusted Member
Topic starter
 

Boa noite Mprudêncio.

Segue rascunho da planilha

Agradeço mais uma vez.

 
Postado : 08/10/2016 4:49 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Qual a guia deve ser salva?

Qual o nome do Arquivo Salvo? . Costumo usar algo do tipo Orçamento Numero X - Cliente Y - Data XX.XX.XXXX, onde temos numero do orçamento, nome do cliente e data qdo foi feito, esta pode ser a data do sitema ou o valor de uma celula

O numero do orçamento deve mudar antes ou depois de salvar o arquivo?

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/10/2016 5:09 pm
(@alanisfcsm)
Posts: 0
Trusted Member
Topic starter
 

Olá
Desculpe a demora.
Essa planilha é só um rascunho.

1. Eu tenho 40 guias "P00". Ex: P01, P02, P03....
Motivo: cada guia tem um número de página e empresa diferente ( tenho 02 cnpj )
Será impressa a guia em que a célula "V2" for igual a "1"
( funcionano )

2. Formato do rquivo salvo


If Sh.Range("V2").Value Like "1" Then

            TempFileName = TempFilePath _
                           & Sheets("A").Range("A10") _
                           & " - " _
                           & Sheets("A").Range("A6").Value _
                           & " - " _
                           & Format(Sheets("SET").Range("B332").Value, "00000") _
                           & " - " _
                           & Format(Now, "dd-mm-yyyy") _
                           & ".pdf"

( funcionando )

3. O número deve mudar antes de criar uma cópia da "P00" escolhida em "PDF" na pasta D:PVPDF, e outra "XLSX" em D:PVPDF.
( não estou trabalhando com banco de dados, por este motivo salvo também em "XlSX" para posterior alterações )
( código para salvar em "PDF" e "XLSX" funcionano perfeitamente)
( resta o numero do orçamento mudar para 000120 somente se houver 000119 na pasta "P:PVPDF" quando uso o botão novo orçamento na guia "A" )

 
Postado : 08/10/2016 9:15 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Entao o codigo precisa correr todas as pastas e verificar em qual delas tem o valor de V2 = 1

Entao disponibiliza um modelo IDENTICO a sua planilha, pois o codigo sera ajustado de acordo com o seu modelo.

Se sua planilha for diferente a chance de nao funcionar é grande, se vc nao conseguir ajustar

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 09/10/2016 9:05 am
(@alanisfcsm)
Posts: 0
Trusted Member
Topic starter
 

humm tem muitos detalhes na planilha, vou te dar muito trabalho...

Se fizermos de outro modo...
( acho que seria mais fácil )

1.Listar os arquivos no diretório.
todos estarão neste formato ex:
CVLO - TESTE TESTE TESTE - 00217 - 09-10-2016.pdf
CVLO - PETROBRAS CENPES S.A. - 00218 - 09-10-2016.pdf
( a posição da sequencia "00000" sempre será a mesma, da direita para a esquerda )

2.Seria possível identificar a sequência de número mais alto. Ex: 000218 e adiciona-lá em uma célula qualquer.
Assim poderiamos somar + "1" e usar como novo número de proposta.

 
Postado : 09/10/2016 12:57 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Como eu disse anteriormente nao tem necessidade de verificar a numeração precisa saber como salvar

As informações CVLO - Nome da Empresa - Codigo do Orçamento - Data são retirados de que lugar.

Sao simplesmente digitados ou estao em uma determinadas celulas se esta em celulas, a pergunta é quais?

E novamente para escrever o codigo de forma correta é necessario conhecer sua planilha e se é mais de uma é necessario incluisive que elas atendam a um padrao.

Quero ajudar mas se vc nao se ajudar fica dificil.

Pra buscar os dados que vao compor o nome do arquivo é necessario saber onde esta os dados.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 09/10/2016 3:29 pm