Jump to content

gereiz

Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

0 Comum

About gereiz

Contato

  1. Bom dia a todos. Adaptei um código para renomear vários arquivo com vba, que realiza a seguinte função: 1) Eu seleiono a pasta, 2) O VBA abre o PDF (Nota fiscal) , extrai a informação do texto e com a razão social fecha o pdf e renomeia ele com o nome extraido. O problema é que após renomear o primeiro arquivo corretamente a execução do código trava, e é necessário finalizar o processo. Segue abaixo o código. Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Public Function ListaArquivos(ByVal Caminho As String) As String() 'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime Dim FSO As New FileSystemObject Dim result() As String Dim Pasta As Folder Dim Arquivo As File Dim Indice As Long ReDim result(0) As String If FSO.FolderExists(Caminho) Then Set Pasta = FSO.GetFolder(Caminho) For Each Arquivo In Pasta.Files Indice = IIf(result(0) = "", 0, Indice + 1) ReDim Preserve result(Indice) As String result(Indice) = Arquivo.Name Next End If ListaArquivos = result ErrHandler: Set FSO = Nothing Set Pasta = Nothing Set Arquivo = Nothing End Function Private Sub selecionar_pasta() Dim box As Folder Dim arquivos() As String Dim lCtr As Long Dim AdobeApp As String Dim StartAdobe Dim Arquivo As String Dim NomeAntigo As String Dim NomeNovo As String On Error Resume Next linha = 1 ultima_linha = Sheets("teste").Cells(Rows.Count, 1).End(xlUp).Row With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Buscar pasta" .InitialFileName = ThisWorkbook.Path .Show .AllowMultiSelect = False Pasta = .SelectedItems(1) End With TextBox1 = box arquivos = ListaArquivos(Pasta) Sleep 1000 For lCtr = 0 To UBound(arquivos) Debug.Print arquivos(lCtr) 'Inserir código aqui' 'Cells(linha, 1).Value = arquivos(lCtr) 'linha = (linha + 1) 'Sleep 500 pdf = arquivos(lCtr) AdobeApp = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" Sleep 2000 For Each pdf In Pasta Adobefile = Pasta & "\" & pdf StartAdobe = Shell("" & AdobeApp & " " & """" & Adobefile & """" & "", 1) Sleep 2000 Application.SendKeys ("^a") Application.SendKeys ("^c") Sleep 2000 Dim KillPdf As String KillPdf = "TASKKILL /F /IM AcroRd32.exe" Shell KillPdf, vbHide AppActivate Application.Caption Sheets("teste").Range("A1").Activate SendKeys ("^v") DoEvents Dim Razao As String Razao = Sheets("teste").Range("A17").Value pontos = InStr(1, Razao, ":") qtdeLetras = Len(Razao) Nome = Right(Razao, qtdeLetras - pontos) Sheets("teste").Range("C1").Value = Nome Do While Not IsEmpty(Range("C1")) NomeAntigo = Pasta & "\" & pdf NomeNovo = Pasta & "\" & Sheets("teste").Range("C1").Value & ".pdf" Sheets("teste").Range("C2").Value = Adobefile Sheets("teste").Range("C3").Value = Pasta & "\" & Sheets("teste").Range("C1").Value & ".pdf" Name NomeAntigo As NomeNovo ' DoEvents Loop ' MsgBox "Nomes dos arquivos alterados!", vbOKOnly, "Processo Concluído" Next Next ' MsgBox ("Arquivos Encontrados = ") & (linha - 1) End Sub Já tentei de tudo, e não consegui resolver esse problema, se eu remover o Do while, ele executa normalmente, porem não renomeia os arquivos. Seu eu faço esse laço, ele renomeia só o primeiro e trava geral. Qualquer esclarecimento, agradeço.
  2. gereiz

    [Resolvido] Erro ao Importar XML

    Boa noite, obrigado pela ajuda! Passando para agradecer, deu certo! Muito obrigado mesmo!
  3. gereiz

    [Resolvido] Erro ao Importar XML

    Boa noite! Estou tendo problemas em importar um arquivo xml para o mysql pelo PHP. O xml é este abaixo: <PRODUTO2> <DADOS> <CHAVE> <COD_PRODUTO>131</COD_PRODUTO> </CHAVE> <CADASTRO> <NOME>TETRAMED 500MG C/100 CAPS(25X04)-MEDQUIMICA</NOME> <EAN13>7896862970031</EAN13> <GEN>TETRACICLINA</GEN> <FORN>113</FORN> <ATIVO>S</ATIVO> <TIPO>99</TIPO> <PRECO>16.95</PRECO> <REFERENCIA>TETREX</REFERENCIA> <CAIXA>50</CAIXA> <DT>17-10-2018 11:55:19</DT> <PRZ_MEDIO_MAX>-1</PRZ_MEDIO_MAX> </CADASTRO> </DADOS> E meu código php é esse: /* PEGA O ARQUIVO XML */ $caminhoDoXML = "C:/xampp/htdocs/cota/xml/Distriam/ServCli/Receber/tudo/PRODUTO2.XML"; $xml = simplexml_load_file($caminhoDoXML) or die("Erro, não consegui achar o XML"); $x = 0; foreach ($xml->children() as $DADOS) { foreach ($DADOS as $row) { $COD_PRODUTO = $row -> CHAVE->COD_PRODUTO; $NOME = $row -> NOME; $EAN13 = $row -> EAN13; $PRECO = $row -> PRECO; if(mysqli_affected_rows($conn) != -1){ $x++; } } $sql = "INSERT INTO produtos01 (COD_PRODUTO, NOME, EAN13, PRECO) VALUES ('$COD_PRODUTO', '$NOME', '$EAN13', '$PRECO')"; $result = mysqli_query($conn,$sql); if (!$result) { echo 'Erro do Mysql'; } else { echo 'Importado com sucesso<BR>'; } } O problema é que o php insere no banco de dados os valores dentro da tag <CADASTRO> (NOME, EAN13 e PRECO) corretamente, mas os valores da tag <CHAVE> (COD_PRODUTO) não, todas as linhas aparecem com o valor 0. Por favor, ajudem, pois o COD_PRODUTO Será justamente minha chave estrangeira para minhas views. Quando tento importar o arquivo CSV via Workbench, consigo normalmente, porem o xml com PHP não.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.