Pesquisar na Comunidade
Mostrando resultados para as tags ''bloco with''.
Encontrado 1 registro
-
Olá amigos, sábios, jedis, magos e mestres do VBA e outros colaboradores. Criei uma macro que, através de uma variável, realiza uma importação dos dados de uma página web da intranet do meu trabalho. Tudo funciona bem, mas somente após eu fazer uma acesso à página pelo próprio Excel. Nesta pasta tenho duas planilhas: a "DadosImportados" que é uma planilha vazia, para importação dos dados; e a planilha "ROTEIRO" que é preenchida com os dados importados. Quando eu abro a planilha, se eu clicar imediatamente no botão de importação, me ocorre o "Erro de tempo em execução '91' A variavel do objeto ou a variavel do bloco with não foi definida". Fazendo o debug passo-a-passo com F8 percebi que os dados não estão sendo importados. Depois de alguns testes descobri que a macro só funciona corretamente após ir na planilha "DadosImportados" e clicar com o direito do mouse, escolher a opção "Editar consulta". Feito isso abre o navegador do excel e não preciso esperar a página carregar, apenas clico no botão "Cancelar". Após fazer isso a macro funciona corretamente. Gostaria de utilizar a pasta sem precisar ter que ir em "Editar Consulta". É como se fizesse necessário acessar a página antes para a consulta funcionar. Sub ImportaDadosS400() ' ' Macro para importação de dados do S400 ' 'Declaração das variáveis Dim sicad As String Dim nome As String Dim cpf As String Dim agencia As String Dim status As String Dim val_cad As String Dim val_cad_date As Date Dim porte As String Dim segmento As String Dim atividade As String Dim renda As String Dim renda_num As Currency Dim logradouro As String Dim bairro As String Dim cidade As String Dim cep As String Dim endereco As String Dim filiacao As String Dim naturalidade As String Dim dt_nascimento As String Dim identidade As String Dim org_expedidor As String Dim dt_emissao As String Dim estado_civil As String Dim p As LongPtr Dim i As LongPtr Application.ScreenUpdating = False sicad = Sheets("ROTEIRO").Range("SICAD1").Value Sheets("DadosImportados").Select If sicad = "" Then MsgBox "Favor preencher o sicad apenas com números." & Chr(10) & "" & Chr(10) & " Clique em OK", vbOKOnly, "SICAD NÃO PREENCHIDO" Sheets("ROTEIRO").Select Range("SICAD1").Select Exit Sub Else MsgBox "O processo de busca dura entre 10 e 40 segundos." & Chr(10) & "" & Chr(10) & " Clique em OK", vbOKCancel, "FIQUE TRANQUILO" With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://d001mfp1/S400-CCClientes/faces/_rlvid.jsp?_rap=pc_ConsultarCadastrosLista.doRowAction1Action&_rvip=/consultarCadastros.jsp&codigoClienteParam=" & sicad _ , Destination:=Range("$A$1")) .Name = "cadastro" & sicad .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = """tabelaFiltroSecao""" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With Sheets("DadosImportados").Select Cells.Find(What:="Nome", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate nome = ActiveCell.Value Cells.Find(What:="CPF", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate cpf = ActiveCell.Value Cells.Find(What:="Agência Responsável", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate agencia = ActiveCell.Value Cells.Find(What:="Situação de Cadastro", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate status = ActiveCell.Value Cells.Find(What:="Próxima Renovação", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate val_cad = ActiveCell.Value Cells.Find(What:="Porte", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate porte = ActiveCell.Value Cells.Find(What:="Segmento", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate segmento = ActiveCell.Value Cells.Find(What:="Atividade Principal", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate atividade = ActiveCell.Value Cells.Find(What:="Renda Bruta Mensal", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate renda = ActiveCell.Value Cells.Find(What:="ENDEREÇO RESIDENCIAL", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate ActiveCell.Offset(1, 0).Select logradouro = ActiveCell.Value ActiveCell.Offset(1, 0).Select bairro = ActiveCell.Value Cells.Find(What:="cidade", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate cidade = ActiveCell.Value Cells.Find(What:="CEP", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate cep = ActiveCell.Value Cells.Find(What:="Filiação", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate filiacao = ActiveCell.Value Cells.Find(What:="Natural de", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate naturalidade = ActiveCell.Value Cells.Find(What:="Data de Nascimento", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate dt_nascimento = ActiveCell.Value Cells.Find(What:="Identidade", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate identidade = ActiveCell.Value Cells.Find(What:="Órgão Emissor", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate org_expedidor = ActiveCell.Value Cells.Find(What:="Data de Emissão", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate dt_emissao = ActiveCell.Value Cells.Find(What:="Estado Civil", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate estado_civil = ActiveCell.Value nome = Replace(nome, "Nome: ", "") cpf = Replace(cpf, "CPF: ", "") agencia = Replace(agencia, "Agência Responsável: ", "") agencia = Left(agencia, 3) status = Replace(status, "Situação de Cadastro: ", "") val_cad = Replace(val_cad, "Próxima Renovação: ", "") val_cad_date = val_cad porte = Replace(porte, "Porte: ", "") segmento = Replace(segmento, "Segmento: ", "") atividade = Replace(atividade, "Atividade Principal: ", "") renda = Replace(renda, "Renda Bruta Mensal: R$ ", "") renda_num = renda logradouro = Replace(logradouro, "Logradouro: ", "") bairro = Replace(bairro, "Bairro: ", "") cidade = Replace(cidade, "Cidade: ", "") endereco = logradouro & ", " & bairro & ", " & cidade & ", " & cep filiacao = Replace(filiacao, "Filiação: ", "") naturalidade = Replace(naturalidade, "Natural de: ", "") dt_nascimento = Replace(dt_nascimento, "Data de Nascimento: ", "") identidade = Replace(identidade, "Identidade: ", "") org_expedidor = Replace(org_expedidor, "Órgão Emissor: ", "") dt_emissao = Replace(dt_emissao, "Data de Emissão: ", "") estado_civil = Replace(estado_civil, "Estado Civil: ", "") Sheets("ROTEIRO").Select Sheets("ROTEIRO").Range("NOME").Value = nome Sheets("ROTEIRO").Range("CPFNOME").Value = cpf Sheets("ROTEIRO").Range("AGENCIA1").Value = agencia Sheets("ROTEIRO").Range("STATUS_CADASTRO1").Value = status Sheets("ROTEIRO").Range("VALIDADE_CADASTRO1").Value = val_cad_date Sheets("ROTEIRO").Range("PORTE1").Value = porte Sheets("ROTEIRO").Range("SEGMENTO1").Value = segmento Sheets("ROTEIRO").Range("ATIVIDADE1").Value = atividade Sheets("ROTEIRO").Range("RENDA1").Value = renda_num Sheets("ROTEIRO").Range("ENDERECO1").Value = endereco Sheets("ROTEIRO").Range("FILIACAO1").Value = filiacao Sheets("ROTEIRO").Range("NATURALIDADE1").Value = naturalidade Sheets("ROTEIRO").Range("DT_NASCIMENTO1").Value = dt_nascimento Sheets("ROTEIRO").Range("IDENTIDADE1").Value = identidade Sheets("ROTEIRO").Range("ORG_EMISSOR1").Value = org_expedidor Sheets("ROTEIRO").Range("DT_EMISSAO1").Value = dt_emissao Sheets("ROTEIRO").Range("EST_CIVIL1").Value = estado_civil 'Sheets("DadosImportados").Range("b26").Value = DateValue(data) Sheets("DadosImportados").Select Cells.Select Selection.ClearContents 'Call Excluiplanilha End If MsgBox "Dados importados com sucesso!" & Chr(10) & "" & Chr(10) & " Clique em OK e verifique os dados.", vbOKOnly, "Importação concluída" Application.ScreenUpdating = True Sheets("ROTEIRO").Select Range("STATUS_CADASTRO").Select End Sub