CARREGAR ARQUIVOS EM COMBOBOX

 Tópico anterior Próximo tópico Novo tópico

CARREGAR ARQUIVOS EM COMBOBOX

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#498972 - 06/01/2022 00:10:19

XAVIER
BHTE-MG
Cadast. em:Julho/2009


Última edição em 06/01/2022 00:13:56 por XAVIER

Olá pessoal!

Eu carrego uma combobox com os nomes que busco na base dados, tipo:
Casa do Zé das Couves Muchas,
Casa do Ciclano do Quiabo Quebrado,
Casa do Miguilim Arrumado,
E assim por diante...

E carrego em outra combobox os nomes dos arquivos em excel, tipo:
Casa 1 - Zé das Couves.xlsx,
Casa 2 - Ciclano do Quiabo.xlsx,
Casa 3 - Casa do Miguilim.xlsx,
e assim por diante...

São muitos arquivos. Todos têm alguma palavra em comum.

Eu gostaria de saber se é possível ou como carregar na 2ª combobox, somente o arquivo
em excel, que tenha alguma palavra em comum com a seleção da 1ª combobox.

Desde já agradeço.




Resposta escolhida #498976 - 06/01/2022 14:23:16

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Está usando o componente FileListBox? Se sim, você pode usar caracteres coringa:
*Zé*.*
*Quiabo*.*

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#498987 - 08/01/2022 01:27:22

XAVIER
BHTE-MG
Cadast. em:Julho/2009


Opa!
Estou usando este código aqui, veja bem Kerplunk:

Sub buscar_arquivo_xls_passivos()
'
    Dim FolderName As String, wbName As String, r As Long
    Dim wbList() As String, wbCount As Integer, I As Integer
        
        'Caminho dos Arquivos...
        FolderName = 'C:\Sistema\externos\passivos\'
        
        ' cria lista dos workbooks no foldername
        wbCount = 0
        wbName = Dir(FolderName & '\' & '*.xls') 'Tipo do Arquivo...
        
        While wbName <> ''
            wbCount = wbCount + 1
            ReDim Preserve wbList(1 To wbCount)
            wbList(wbCount) = wbName
            wbName = Dir
        Wend
        
        If wbCount = 0 Then Exit Sub
        
        r = 0
        
        'Lista os arquivos...
        For I = 1 To wbCount
            r = r + 1
            
            'preenche o combox com arquivos .xls
            With combo
                .AddItem UCase(wbList(I))
                'preencher a combo2, somente com alguma palavra em comum com a combo1
  
            End With
        Next I

End Sub



#498989 - 08/01/2022 01:43:26

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Você já está usando coringas...
Nessa linha
wbName = Dir(FolderName & '\' & '*.xls') 'Tipo do Arquivo...

Você pode colocar seu coringa nela.


_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499002 - 10/01/2022 11:51:58

XAVIER
BHTE-MG
Cadast. em:Julho/2009


Última edição em 10/01/2022 11:54:16 por XAVIER

Sim, perdoe o meu embaraço.
Eu gostaria de carregar na combobox 2, somente algum arquivo.xls que tenha alguma palavra do nome do arquivo que coincida com alguma palavra da combobox1. Tipo assim:
Vamos dizer que carreguei na combobox1 os seguinte nomes:

Casa do Zé das Couves Muchas
Casa do Ciclano do Quiabo Quebrado
Casa do Miguilim Arrumado

Em uma determinada pasta eu tenho vários arquivos em excel do tipo:

Casa 1 - Zé das Couves.xls
Casa 2 - Ciclano do Quiabo.xls
Casa 3 - Casa do Miguilim.xls


E eu preciso carregar, somente o arquivo em excel com alguma coicidência.
Exemplo:
Na combobox1 eu deixei selecionado  'Casa do Ciclano do Quiabo Quebrado'
E ao mandar verificar na pasta os arquivos, então carregará para mim na combobox2, somente 'Casa 2 - Ciclano do Quiabo.xls'

Será que eu consegui me expressar melhor dessa forma?
Agradeço a paciência e ajuda.




#499003 - 10/01/2022 13:11:53

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Me parece que o que você quer é uma lista que coincide com os parâmetros. Você pode usar múltiplos coringas, basta separar por vírgulas. Então separe cada um dos nomes em array usando o split, que ficaria:
Casa
Casa
Casa
do
do
do

Ciclano
Miguilim
...
Daí monte os coringas que quer, adicionando a extenção e asterisco no começo e fim, ficando assim:
*Casa*.xls
*Casa*.xls
*Casa*.xls
*do*.xls
*do*.xls
*do*.xls
*Zé*.xls
*Ciclano*.xls
*Miguilim*.xls
...


Daí monte o condicional separando cada argumento por vírgula:
*Casa*.xls,*Casa*.xls,*Casa*.xls,*do*.xls,*do*.xls,*do*.xls,*Zé*.xls,*Ciclano*.xls,*Miguilim*.xls

E finalmente no dir, adicione essa string como você já está fazendo com o '*.xls'


_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#499004 - 10/01/2022 13:21:25

XAVIER
BHTE-MG
Cadast. em:Julho/2009


Bacana. Isso mesmo !

Valeu. Grato pela ajuda!



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por XAVIER em 10/01/2022 13:23:31