Ir ao conteúdo
  • Cadastre-se

GuilhermeDR

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Boa tarde! Estou na seguinte situação: 1) Tenho um Banco de dados com 22 colunas, com nome/código de clientes e produtos, por exemplo. 2) Em uma Useform faço uma pesquisa relacionando os produtos vendidos para clientes. A informação da pesquisa é mostrada em um LISTBOX; Portanto eu posso pesquisar quantos produtos Y eu forneci para o cliente X. E posso realizar outras várias pesquisas também. Desta forma, tenho um número indeterminado de linhas na minha pesquisa que será mostrado na Listbox. A programação que faz essa pesquisa eu já tenho e funciona, o meu problema é a quantidade de linhas que ela ocupa na LISTBOX. Gostaria que vocês me ajudassem a modificar a programação a fim de que seja mostrado na LISTBOX somente o que foi consultado. As linhas em branco não precisam estar na LISTBOX (que é o que acontece). -- Percebam que a Array é bem grande "Dim MyArray(4000, 22)" Segue programação abaixo: (ela não está completa pois ficaria muito grande, mas dá para visualizar). Private Sub PreencheLista() Dim ws As Worksheet Dim i As Integer Dim x As Integer Dim ClienteCelula As String Dim ProdutoCelula As String Dim RefCelula As String Dim ClienteDigitado As String Dim ProdutoDigitado As String Dim RefDigitado As String Dim MyArray(4000, 22) Qtdlinhas = ThisWorkbook.Sheets("BD_DOC").Cells(Rows.Count, 1).End(xlUp).row ListBox1.ColumnWidths = "30;20;20;50;40;100;20;100;100;30;30;30;30;30" '--- i = 1 x = 0 linha = j C = j + 2 linhac = C'-- Pesquisa Cliente Vs Produto If (Me.MultiPage1.Value = 0) Then ListBox1.Clear ClienteDigitado = cbPesqCodCliente.Text ProdutoDigitado = cbPesqCodProduto.Text With ThisWorkbook.Worksheets("BD_DOC") '--- While .Cells(i, 1).Value <> Empty ProdutoCelula = .Cells(i, j).Value ClienteCelula = .Cells(i, C).Value If ((checkPrimeira.Value = False) And (checkPadrao.Value = False)) Then 'Pesquisa Clientes If ((cbPesqCodCliente.Text <> "") And (cbPesqCodProduto.Text = "")) Then If (ClienteCelula = ClienteDigitado) Then For j = 1 To 22 MyArray(x, j - 1) = .Cells(i, j).Value Next j x = x + 1 C = linhac End If i = i + 1 End If End If End With ListBox1.List() = MyArray Label36.Caption = x If (Label36 = 0) Then MsgBox "Nenhum item encontrado. Tente outro valor." Avisando que estou programando no Visual Basic e o banco de dados é uma planilha do EXCEL. Acredito ter colocado a programação ali em cima com formato errado. Ficou estranho.. kkkk' Aos poucos vou aprendendo.
  2. Boa tarde Galera, Estou na seguinte situação e estou precisando de ajuda. A situação é que há tempos se fazia registro de produtos através de planilhas. Ou seja, cada produto que era vendido possuía uma planilha dedicada que armazenava dados do produto, da venda, etc. Com o passar do tempo a empresa foi crescendo e se viu a necessidade de implementar um sistema melhor. Ou seja, um banco de dados (ainda no excel). O fato é que os registros anteriores estão em planilhas individuais e os novos estão em um banco de dados (linha por linha). Minha intenção é importar as documentações antigas (das planilhas individuais) para este novo Banco de Dados (BD). Preciso de ajuda para criar uma rotina no VBA que faça isso: - Vá até a pasta onde as planilhas de documentação estão (só há elas na pasta); - Abra a planilha, copia os dados das células: B5,B6,B7 .... B16, e B20. - Cole nas linhas do Banco de Dados - Feche a planilha da documentação individual - Abra a planilha seguinte, repita a operação até que todas as planilhas da pasta sejam abertas. Informação: As planilhas de documentação antigas, possuem formato padrão. Ou seja, na célula B5, de todas as planilhas, terá a mesma espécie de informação (Exemplo: DATA). Fico no aguardo.

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...