Listar Aniversariantes do Mes no arquivo .txt

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Listar Aniversariantes do Mes no arquivo .txt

Mensagempor willianrc » Sex Jun 14, 2019 11:11 am

Hello folks,
Estou com um probleminha aqui, gostaria de filtrar os aniversariantes do mes da listbox, e gostaria tambem de ocultar os simbolos "|" da listbox e manter somente na base de dados .txt.
Segue o codigo até o momento e o link para download. Desde ja agradeço.

Código: Selecionar todos
Option Explicit



Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "01 - Janeiro"
        .AddItem "02 - Fevereiro"
        .AddItem "03 - Mar?o"
        .AddItem "04 - Abril"
        .AddItem "05 - Maio"
        .AddItem "06 - Junho"
        .AddItem "07 - Julho"
        .AddItem "08 - Agosto"
        .AddItem "09 - Setembro"
        .AddItem "10 - Outubro"
        .AddItem "11 - Novembro"
        .AddItem "12 - Dezembro"
    End With

   
   
Call Cria_Pasta
Call PreencheListbox
End Sub

Private Sub CommandButton1_Click()
    If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
        MsgBox "Preencha todos os campos", vbInformation, "Aten??o"
    Else
        SalvaInfo VBA.Trim(TextBox1.Text) & "|" & VBA.Trim(TextBox2.Text) & "|" & VBA.Trim(TextBox3.Text)
Call Limpar
End If
Call PreencheListbox
End Sub

Sub Limpar()
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
End Sub

Sub PreencheListbox() 'preencher listbox users
Dim sTemp As String
Dim vrTemp As Variant

    ListBox1.Clear
    On Error Resume Next
    Dim LineofText As Variant
    Dim archivo As Variant
    ' Open the file for Input.
        Open ThisWorkbook.Path & "\REGISTRO\users.txt" For Input As #1
            archivo = ThisWorkbook.Path & "\REGISTRO\users.txt"
        If Dir(archivo) = "" Then
            MsgBox "ARQUIVO NAO ENCONTRADO. FOI CRIADO UMA PASTA 'REGISTRO' NO MESMO LOCAL DESTE ARQUIVO EXCEL"
   
            Exit Sub
        End If
    Open archivo For Input As #1
    ' Read each line of the text file into a single string
    ' variable.

    Do While Not EOF(1)
    'Line Input #1, LineofText
   
        Line Input #1, LineofText
       
    ListBox1.AddItem LineofText
   
        vrTemp = Split(LineofText, "|")
       
       
   
    Loop
    ' Close the file.
    Close #1

End Sub


Sub SalvaInfo(LogMessage As String)

Dim LogFileName As String
Dim ConferePasta As String
Dim FileNum As Integer

    ConferePasta = ThisWorkbook.Path & "\REGISTRO"
    'Definir caminho e nome do arquivo de log onde voc? deseja salvar
    'O arquivo de log
   
    LogFileName = ConferePasta & "\users.txt"   'nome do arquivo que sera gravado"
   
    FileNum = FreeFile 'Pr?ximo n?mero de arquivo
    Open LogFileName For Append As #FileNum 'Cria o arquivo se ele n?o existir
    Print #FileNum, LogMessage 'Escrever informa??es no final do arquivo de texto
    Close #FileNum 'Fechar o arquivo

End Sub

Sub Cria_Pasta()
  Dim ConferePasta As String
        'Atribui caminho do diret?rio.
     ConferePasta = ThisWorkbook.Path & "\REGISTRO"

       
      'Testa se o diret?rio existe. Caso n?o exista, cria-se o mesmo.
        If Dir(ConferePasta, vbDirectory) = "" Then MkDir ConferePasta
             'cancela
       
End Sub


link:
https://drive.google.com/file/d/10t8tDw ... sp=sharing

Obrigado
willianrc
Membro
Membro
 
Mensagens: 58
Registrado em: Qua Nov 23, 2016 11:22 am
Has thanked: 18 times
Have thanks: 1 time

{ SO_SELECT }

Re: Listar Aniversariantes do Mes no arquivo .txt

Mensagempor wagner » Sex Jun 14, 2019 2:02 pm

willianrc,

Boa tarde!

Infelizmente, não consigo abrir arquivos hospedados em sites de armazenamento e compartilhamento de arquivo em meu trabalho. Assim, não pude ver seus arquivos.

Quanto a questão do símbolo "|" no seu arquivo .txt creio que basta você armazenar os dados no seu arquivo txt sem esses símbolos. Coloque os dados separados por espaço apenas.

Quanto a questão dos aniversariantes, eu não entendi...
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5331
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 94 times
Have thanks: 2275 times

Re: Listar Aniversariantes do Mes no arquivo .txt

Mensagempor rlm » Sex Jun 14, 2019 7:17 pm

Meio pobre sua explanação sobre a demanda. Seu modelo/exemplo contem somente o arquivo, que "procura" um txt para carregar os dados nalistbox; porem esse txt não está anexo, assim não podemos visualizar a composição/estrutura do mesmo.
Talvez, vai ai um chute, ao inves de "carregar" o registro "ListBox1.AddItem LineofText" ; deva carregar os dados do array vrTemp -->"vrTemp = Split(LineofText, "|")"
Reinaldo - RLM - Rmarco
Gostou da resposta? Clique no ícone "Positivo" da mensagem!(ao lado de citar)
Avatar do usuário
rlm
Ninja do Excel
Ninja do Excel
 
Mensagens: 184
Registrado em: Qui Out 16, 2014 12:30 pm
Has thanked: 9 times
Have thanks: 94 times

Re: Listar Aniversariantes do Mes no arquivo .txt

Mensagempor willianrc » Sex Jun 14, 2019 11:46 pm

Foi o que eu fiz rlm
Código: Selecionar todos
    Do While Not EOF(1)
    'Line Input #1, LineofText
   
        Line Input #1, LineofText
       
    ListBox1.AddItem LineofText
   
        vrTemp = Split(LineofText, "|")
       
    Loop


O arquivo .txt é criado automaticamente quando voce abre o form! ele cria a pasta(REGISTRO) e quando voce cria um registro ele AUTMATICAMENTE ja cria o .txt. Voce nao precisa da minha base de dados , pois é so voce fazer um registro ai , com 2 segundos voce faz um registro neste formulario ai .
E o teu chute eu tentei faze-lo e está postado ai.
willianrc
Membro
Membro
 
Mensagens: 58
Registrado em: Qua Nov 23, 2016 11:22 am
Has thanked: 18 times
Have thanks: 1 time

Re: Listar Aniversariantes do Mes no arquivo .txt

Mensagempor rlm » Sáb Jun 15, 2019 9:51 am

Nunca pedi(mos) a base de dados do demandante/requerente, apenas exemplos, fictícios quando necessário, que demonstre claramente sua estrutura e ordem dados.
Se for utilizar o tempo, mesmo que 2 segundos como alega, para testar/montar exemplos para cada postagem visualizada, acarretará numa sobrecarga de atividade/tempo.
Nada mais logico de que quem objetiva obter um retorno prover todos os dados/detalhes que facilite/simplifique esse retorno. Mas se não está interessado em uma boa orientação; tudo bem
Quanto ao que voce diz que fez em relação ao "chute"; na realidade nada fez.
Vamos as 2 linhas de Comando OK em sua rotina "atreladas" a essa demanda:
O comando Listbox1.additem incluir a linha LineofText, conforme a mesma e obtida do txt. Exatamente como e lida no txt.
O comando vrTemp = Split(LineofText, "|") tem por objetivo criar um "array" na memoria, separando (função Split) a linha obtida do txt (LineofText) pelo atributo "|" (barra vertical); então se houver na linha 5 campos "separados" pela barra, cada campo será adicionado nesse array vrTemp. Para saber o que foi adicionado nesse array
experimente:
[code]for x=0 to ubound(vrTemp)
msgbox vrTemp(x)
next
Assim provavelmente esses "campos" do vrtemp e que devam ser adicionados em seu Listbox
Reinaldo - RLM - Rmarco
Gostou da resposta? Clique no ícone "Positivo" da mensagem!(ao lado de citar)
Avatar do usuário
rlm
Ninja do Excel
Ninja do Excel
 
Mensagens: 184
Registrado em: Qui Out 16, 2014 12:30 pm
Has thanked: 9 times
Have thanks: 94 times

Re: Listar Aniversariantes do Mes no arquivo .txt

Mensagempor rlm » Seg Jun 17, 2019 2:49 pm

Reinaldo - RLM - Rmarco
Gostou da resposta? Clique no ícone "Positivo" da mensagem!(ao lado de citar)

For this post the author rlm thanked:
willianrc (Seg Jun 17, 2019 7:27 pm)
Avatar do usuário
rlm
Ninja do Excel
Ninja do Excel
 
Mensagens: 184
Registrado em: Qui Out 16, 2014 12:30 pm
Has thanked: 9 times
Have thanks: 94 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes