![Programas: Excel VBA não preenche o nome de arquivo padrão na caixa de diálogo SaveAs](https://rvso.com/image/1543204/Programas%3A%20Excel%20VBA%20n%C3%A3o%20preenche%20o%20nome%20de%20arquivo%20padr%C3%A3o%20na%20caixa%20de%20di%C3%A1logo%20SaveAs.png)
Estou tendo um problema com algum código VBA em minha pasta de trabalho mestre do Excel. Eu tenho dois pedaços de código. Código A Funciona bem. O código B não funciona bem.
O primeiro trecho de código (Código A), que funciona bem, cria um diretório e salva a pasta de trabalho do Excel nele, com o nome do diretório e do arquivo sendo extraído de uma célula B4.
O segundo trecho de código (Código B) vai para um diretório e abre uma caixa de diálogo salvar como, e deve preencher a caixa inicial do nome do arquivo com informações da célula B4. No entanto, tudo funciona, exceto que o nome do arquivo inicial não é preenchido automaticamente. Costumava; estava funcionando pouco antes de eu alterar todas as referências de macro para as unidades mapeadas (eu as alterei das unidades de letras mapeadas para o caminho UNC para que o arquivo possa ser usado na rede, ou seja, Z:\In Progress\ para \10.0.0.4 \dados\Em andamento).
O estranho é que não estou tendo problemas para acessar a rede depois de mudar da unidade mapeada -> caminhos UNC. Parece ser apenas uma pequena falha.
Eu compilei o projeto e depurei-o.
Se alguém tiver uma idéia de como preencher o nome do arquivo inicial para o Código B, ficaria muito grato.
CÓDIGO A
Option Explicit
Sub SaveAsNewJobtoIP()
'This macro creates a New Folder in the In Progress File, named off the BILLING CLIENT Name.
Dim Path As String
Dim InitialName As String
Dim sFileSaveName As Variant
Path = "\\10.0.0.4\data\In Progress\"
If Len(Dir("\\10.0.0.4\data\In Progress\" & ActiveSheet.Range("B4").Value, vbDirectory)) = 0 Then
MkDir Path & ActiveSheet.Range("B4").Value
End If
'This macro saves the workbook with a Dialog and an Initial Filename
InitialName = ActiveSheet.Range("B4").Value & " " & ActiveSheet.Range("H2") & " " & ActiveSheet.Range("I2") & " " & ActiveSheet.Range("J2")
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=Path & InitialName, FileFilter:="Excel Files (*.xlsm), *.xlsm")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End Sub
CÓDIGO B
Option Explicit
Sub SaveAsNewQuoteinJCF()
'This macro saves the workbook with a Dialog and an Initial Filename
Dim Path As String
Dim InitialName As String
Dim sFileSaveName As Variant
Path = "\\10.0.0.4\data\Job Cost Folder\Jill\"
InitialName = "Estimate " & ActiveSheet.Range("B4").Value
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=Path & InitialName, FileFilter:="Excel Files (*.xlsm), *.xlsm")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End Sub
Responder1
Demorou um pouco para pesquisar e tentar descobrir o cenário da minha rede local, mas descobri com a ajuda dos comentários que tudo o que precisava fazer para corrigir o problema era:
Substitua o caminho UNC pelo nome real do computador. Então eu mudei
"\\10.0.0.4\" ---> "\\Server-pc\"
e o problema foi resolvido. Achei que 10.0.0.4 fosse o nome do computador servidor, mas na verdade era apenas um caminho. Mudar do caminho UNC para o nome real do computador também resolveu outro problema em que as macros recebiam erros de tempo de execução (1004) porque o caminho UNC do meu colega de trabalho era na verdade 10.0.0.3.