Vídeo recomendado
https://youtu.be/diWPPPhW-9E

VBA - Tratamento de erros Pictures

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Wagner.cwb
Manda bem
Manda bem
Mensagens: 168
Registrado em: Sáb Set 24, 2016 4:48 pm

VBA - Tratamento de erros Pictures

Mensagem por Wagner.cwb »

Olá Nobres!

tenho uma macro que copia uma imagem em um site de previsão do tempo.
Geralmente ocorrem dois erros...
1 - o site não forneceu a imagem
Tratamento - buscar a imagem de outra fonte
2 - o usuário não autenticou o acesso a internet
Tratamento - autenticar usuário e senha

Eu sei como tratar os erros (acho pelo menos que sei kkk), o meu problema esta em fazer o "loop" para tratá-los.
Segue o meu código:

Código: Selecionar todos

Sub Imagem_simepar()

'https://forum.baboo.com.br/index.php?/topic/688214-macro-para-inserir-imagem/

    Dim Pict
    Dim Imagem As Object
    Dim ImgFileFormat As String
    Dim Celula As String
	
	'limpar a imagem já existente	       
    Call Módulo34.Apagar_Simepar
    
    'tentativa de tratamento do erro, criei uma variável para fazer o loop
    CodErro = 1

    Celula = "AL32" ' local que ficará a imagem
    
    'aqui inicia o loop - onde ocorrem os erros

    While CodErro <> 0
    
    ImgFileFormat = "Image Files JPG (*.jpg),*.jpg, Image Files GIF (*.gif),*.gif, Image Files BMP (*.bmp),*.bmp"

    Pict = "http://www.Simepar.br/riak/pgw-home-products/radar_parana_thumb.jpeg" 
    
    If Pict = False Then End
	
'AQUI RODA UMA VEZ E PULA PARA A LINHA DE TRATAMENTO, PORÉM NA VOLTA (LOOP) SE ESTIVER COM ERRO ELE NÃO PULA PARA A LINHA DE TRATAMENTO... NÃO SEI PQ?!
	
    On Error GoTo Error_MayCauseAnError
    Set Imagem = ActiveSheet.Pictures.Insert(Pict)
     
Error_MayCauseAnError:
    CodErro = Err
    
    
    If CodErro > 0 Then
    
    'AQUI AUTENTICA O USUARIO PARA O ACESSO A INTERNET
    
    Call Módulo30.ATIVAR_INTERNET_SEL

    End If
    
    Wend
        
 Application.CutCopyMode = False

  'FONTES ALTERNATIVOS
    'satelite simepar
    'Pict = "http://www.simepar.br/prognozweb/simepar/image_satelite_goes/1"
        
    'Pict = "http://www.simepar.br/prognozweb/simepar/image_raios_simepar/1" 'MAPA DE RAIOS
    
    'clima tempo
    'Pict = "https://geosite.climatempo.com.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=satelite:goesr_ret_ch13_bmcol0_20,localidades:estados,localidades:paises&styles=,poligono_vazado_preto_fino,poligono_vazado_preto_fino&bbox=-6486751.968393198,-3402365.003029766,-4928659.583828165,-2179372.5504669454&width=636&height=477&srs=EPSG:3857&format=image/jpeg&transparent=false"
 

End Sub
' A IDEIA É DELE EXECUTAR O LOOP E APÓS "ZERAR O ERRO" EXECUTAR NORMALMENTE, PORÉM NA SEGUNDA PASSAGEM ELE TRAVA NO ERRO... NO MESMO ERRO "1004".

Por favor, podem me ajudar?

Obrigado. abs!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder