Ir ao conteúdo

Excel Como ler arquivo .ini no vba excel


Ir à solução Resolvido por Basole,

Posts recomendados

Postado

Eu encontrei alguns exemplos de códigos para ler arquivos .ini no vba do excel, mais não consegui entender nenhum, algum poderia ajudar com um exemplo?

Postado

Eu estou tentando ler um arquivo ini e preenche os valores em uma coluna...image.png.c43178b07d29c1f313382a850341e274.png

Ao clicar no botão em G1, executa o script para ler o o arquivo relação.ini, e preenche os valores em F, exemplo no arquivo:

1 = vela

2= milha

etc

Então apos clicar ele preencheria em F tais valores, ficando assim:

 

image.png.d322eca51b89f3e4bff96ef4962f1301.png

Isso é possível?

 

 

@osvaldo eu já havia visto esse tópico, eu vi varios assim também em inglês, só que não consegui entender como configurar no meu botão, eu tentei por o codigo assim:

EXCEL_2019-12-04_14-59-34.png.765960bf5adf0875964a832d6adebdde.png

 

Anexei minha planilha, grato.

planilha.rar

  • Solução
Postado

@Migguds se o resutado desejado é esse (imagem) , segue seu codigo com as alteracoes: 

 

 

                                                   image.png.803176c369103640f044fa84a546e9c9.png

 

Public Sub LeArquivoTexto()
    Dim Arquivo             As Integer
    Dim CaminhoArquivo      As String
    Dim TextoProximaLinha   As String
    Dim ContadorLinha       As Long
       
    'Configura a leitura do arquivo
     Arquivo = FreeFile
       CaminhoArquivo = "C:\Users\CAIO\Desktop\relação.ini"
  
        'Abre o arquivo para leitura
    Open CaminhoArquivo For Input As Arquivo
    ContadorLinha = 1
        'Lê o conteúdo do arquivo linha a linha
    With ActiveSheet
    
     .[F1:F14].ClearContents
     
    Do While Not EOF(Arquivo)
          Line Input #Arquivo, TextoProximaLinha
        
          If VBA.InStr(TextoProximaLinha, "[") = 0 Then
        
              .Cells(ContadorLinha, "F") = VBA.Right(TextoProximaLinha, (VBA.Len(TextoProximaLinha) - _
                                              VBA.InStr(TextoProximaLinha, "=")))
              ContadorLinha = ContadorLinha + 1
           End If
    Loop
     
    End With
   
    'Fecha o arquivo
    Close Arquivo
 
End Sub

 

  • Obrigado 1
Postado

@Basole tem como editar o script para caso a linha esteja com valor vazio pular para proxima linha?

image.png.089badff0255224dd1b80b80504138d1.png

 

Exemplo:

No arquivo .ini:

5=

6=

 

5 e 6, estão vazios, se eu executar o script clicando no botão, ele vai apagar o F5 e F6 no excel que estão com valor "N EDITAR".

 

Teria como, caso não contenha nenhum valor após "="  pular para próxima linha no excel?

 

 

 

 

 

 

 

 

#####EDIT######

Consegui, segue o codigo:

Private Sub CommandButton1_Click()

Call LeArquivoTexto

End Sub


 
Public Sub LeArquivoTexto()
    Dim Arquivo             As Integer
    Dim CaminhoArquivo      As String
    Dim TextoProximaLinha   As String
    Dim ContadorLinha       As Long
       
    'Configura a leitura do arquivo
     Arquivo = FreeFile
       CaminhoArquivo = "C:\Users\CAIO\Desktop\relação.ini"
  
        'Abre o arquivo para leitura
    Open CaminhoArquivo For Input As Arquivo
    ContadorLinha = 1
        'Lê o conteúdo do arquivo linha a linha
    With ActiveSheet
    
     
    Do While Not EOF(Arquivo)
          Line Input #Arquivo, TextoProximaLinha
        
          If VBA.InStr(TextoProximaLinha, "[") = 0 Then
        
            .Cells(ContadorLinha, "F") = VBA.Right(TextoProximaLinha, (VBA.Len(TextoProximaLinha) - VBA.InStr(TextoProximaLinha, "=")))
              ContadorLinha = ContadorLinha + 1
                                
          Else

          ContadorLinha = ContadorLinha + 1
          End If
    Loop
     
    End With
   
    'Fecha o arquivo
    Close Arquivo
 
End Sub

 

Postado

@Migguds sim eu alterei para "puilar" linha para este caso.

 

Public Sub LeArquivoTexto()
    Dim Arquivo             As Integer
    Dim CaminhoArquivo      As String
    Dim TextoProximaLinha   As String
    Dim ContadorLinha       As Long
       
    'Configura a leitura do arquivo
     Arquivo = FreeFile
       CaminhoArquivo = ThisWorkbook.Path & "\relação.ini" ' "C:\Users\CAIO\Desktop\relação.ini"
  
        'Abre o arquivo para leitura
    Open CaminhoArquivo For Input As Arquivo
    ContadorLinha = 1
        'Lê o conteúdo do arquivo linha a linha
    With ActiveSheet
    
    Do While Not EOF(Arquivo)
          Line Input #Arquivo, TextoProximaLinha
        
          If VBA.InStr(TextoProximaLinha, "[") = 0 Then
            
             If VBA.Right(TextoProximaLinha, (VBA.Len(TextoProximaLinha) - _
                                              VBA.InStr(TextoProximaLinha, "="))) <> "" Then
        
                 .Cells(ContadorLinha, "F") = VBA.Right(TextoProximaLinha, (VBA.Len(TextoProximaLinha) - _
                                              VBA.InStr(TextoProximaLinha, "=")))
                     ContadorLinha = ContadorLinha + 1
             Else
                   ContadorLinha = ContadorLinha + 1
             End If
           End If
    Loop
     
    End With
   
    'Fecha o arquivo
    Close Arquivo
 
End Sub

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!