Notifications
Clear all

ERRO "52"

4 Posts
2 Usuários
0 Reactions
1,249 Visualizações
(@luizel)
Posts: 2
New Member
Topic starter
 

Consegui o código abaixo, após a adequação, o mesmo funcionou na planilha. A foto carrega normalmente, inclusive a célula de destino e o dimensionamento. No entanto, logo em seguida dá mensagem "Erro em tempo de execução '52':", "Nome ou número de arquivo incorreto", quando é aberto o depurador, é destacada a linha "sExiste = Dir(CaminhoEFoto)", o estranho, é que a foto carrega, contudo, "MsgBox "Importação de Fotos concluída!"", não é carregada, abaixo o código:

Sub CarregaFotoPesquisas()
'   Definição de variáveis
'
   Const Caminho As String = "D:DocumentsSEAFROCRHFotos"
   Dim CaminhoEFoto As String
   Dim Foto As String
   Dim Linha As Integer
   Dim iLinha As Integer
   Dim NumeroEmpregado As String
   Dim sExiste As String
'
'   Desliga o update do ecran
'
   Application.ScreenUpdating = False
'
'   Apaga as fotos existentes
'
   Linha = 1
   iLinha = 6
'
'   Importa as Fotos
'
   Do
       ' Testa se existe o empregado seguinte
       If Trim(ActiveSheet.Cells(Linha, 9).Value) = "" Then Exit Sub
       ' Tira o número de empregado da célula correspondente
       NumeroEmpregado = ActiveSheet.Cells(Linha, 9).Value
       ' Atribui o nome do ficheiro
       Foto = NumeroEmpregado & ".bmp"
       ' Concatena o caminho com o nome do ficheiro
       CaminhoEFoto = Caminho & Foto
       ' Testa se existe o ficheiro
       sExiste = Dir(CaminhoEFoto)
       If sExiste <> "" Then
           ' Aumenta o tamanho da Linha
           Rows(iLinha).RowHeight = 53.25
           ' Selecciona a célula para colar a foto
           ActiveSheet.Cells(iLinha, 1).Select
           ' Insere a foto
           With ActiveSheet.Pictures.Insert(CaminhoEFoto)
               ' Ajusta a foto ao topo da célula
               .Top = ActiveSheet.Cells(iLinha, 1).Top
               ' Ajusta a foto à esquerda da célula
               .Left = ActiveSheet.Cells(iLinha, 1).Left
               ' Ajusta a altura da foto à altura da célula mantendo o Racio da largura
               .ShapeRange.Height = ActiveSheet.Cells(iLinha, 1).RowHeight
           End With
       Else
           ' Faz a mesma coisa do bloco anterior mas testa se não existe o ficheiro em JPEG
           Foto = NumeroEmpregado & ".jpg"
           CaminhoEFoto = Caminho & Foto
               If Dir(CaminhoEFoto) <> "" Then
               Rows(iLinha).RowHeight = 53.25
               ActiveSheet.Cells(iLinha, 1).Select
               With ActiveSheet.Pictures.Insert(CaminhoEFoto)
                   .Top = ActiveSheet.Cells(iLinha, 1).Top
                   .Left = ActiveSheet.Cells(iLinha, 1).Left
                   .ShapeRange.Height = ActiveSheet.Cells(iLinha, 1).RowHeight
               End With
               Else
               ' Caso não existe o ficheiro, transmite esta mensagem
               MsgBox "O empregado com o número " & NumeroEmpregado & " não tem Foto!"
               End If
       End If
       Linha = Linha + 1
       iLinha = iLinha + 1
   Loop
   '
   '   Liga o update do ecran
   '
   Application.ScreenUpdating = True
   '
   '   Mensagem quando termina a importação das fotos.
   '
   MsgBox "Importação de Fotos concluída!"

End Sub

Se alguém puder ajudar, ficarei muito grato. E, se não for pedir muito, já me ajudarem com o código para "apagar" a foto da planilha para gerar novo relatório.

 
Postado : 21/02/2017 6:52 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Erro 52 normalmente refere-se a arquivo não encontrado.Qual o retorno de sExiste quando não há o arquivo.
Poste seu modelo/exemplo

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/02/2017 7:53 pm
(@luizel)
Posts: 2
New Member
Topic starter
 

Olá Reinaldo, muito obrigado por responder.
Como eu disse, a foto carrega normalmente. Inclusive, a foto exata do servidor cujos dados são carregados na planilha relatório. Tudo funciona, somente, após carregar a foto é que ele acusa o erro e abre o depurador com a linha destacada. Já testei outra forma de chamar o Dir, com código diferente, mas, volta ao erro.
Quanto ao comportamento quando não há foto para o "cpf", que é o dado que salva a foto na pasta tipo o cpf & ".jpg", é normal, ele traz a mensagem "o empregado com o número xxx.xxx.xxx-zz não tem foto".
Att.,

 
Postado : 22/02/2017 6:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde luizel

Seja bem-vindo ao fórum!

Como você é novato, Para facilitar a tua participação, sugiro tomar conhecimento do conteúdo dos links abaixo:
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/02/2017 1:53 pm