Ir para conteúdo
Fórum Script Brasil

WAYNEWAVE

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Tudo que WAYNEWAVE postou

  1. Boa tarde, Tenho um formulário encadeado que filtra em cinco níveis, com base em uma planilha de cadastros (Plan1). 1º Categoria; 2º Produto; 3º Tipo; 4º Tamanho; 5º Cor; Segue o código: '------------------Primeiro Nível--------------------------------------- Private Sub ComboBoxCategorias_Change() Call PreencheCombo2 End Sub Sub PreencheCombo2() Dim OCOLLECTION As New Collection Dim VARVALUE As Variant Dim I As Long Dim L As Long L = 2 ComboBoxProdutos.Clear On Error Resume Next For Each VARVALUE In Plan1.Range("B2:B" & Plan1.Range("A65536").End(xlUp).Row) If ComboBoxCategorias.Value = Plan1.Range("A" & L).Value Then OCOLLECTION.Add VARVALUE, VARVALUE End If L = L + 1 Next For I = 1 To OCOLLECTION.Count ComboBoxProdutos.AddItem OCOLLECTION.Item(I) Next I End Sub '-------------Segundo Nível-------------------------------------------- Private Sub ComboBoxProdutos_Change() Call PreencheCombo3 End Sub Sub PreencheCombo3() Dim OCOLLECTION As New Collection Dim VARVALUE As Variant Dim I As Long Dim L As Long L = 2 ComboBoxTipo.Clear On Error Resume Next For Each VARVALUE In Plan1.Range("C2:C" & Plan1.Range("A65536").End(xlUp).Row) If ComboBoxProdutos.Value = Plan1.Range("B" & L).Value Then OCOLLECTION.Add VARVALUE, VARVALUE End If L = L + 1 Next For I = 1 To OCOLLECTION.Count ComboBoxTipo.AddItem OCOLLECTION.Item(I) Next I End Sub '--------------------Terceiro Nível------------------------------------- Private Sub ComboBoxTipo_Change() Call PreencheCombo4 End Sub Sub PreencheCombo4() Dim OCOLLECTION As New Collection Dim VARVALUE As Variant Dim I As Long Dim L As Long L = 2 ComboBoxTamanho.Clear On Error Resume Next For Each VARVALUE In Plan1.Range("D2:D" & Plan1.Range("A65536").End(xlUp).Row) If ComboBoxProduto.Value = Plan1.Range("B" & L).Value Then If ComboBoxTipo.Value = Plan1.Range("C" & L).Value Then OCOLLECTION.Add VARVALUE, VARVALUE End If End If L = L + 1 Next For I = 1 To OCOLLECTION.Count ComboBoxTamanho.AddItem OCOLLECTION.Item(I) Next I End Sub '----------------------Quarto Nível----------------------------------- Sub PreencheCombo6() Dim OCOLLECTION As New Collection Dim VARVALUE As Variant Dim I As Long Dim L As Long L = 2 ComboBoxCor.Clear On Error Resume Next For Each VARVALUE In Plan1.Range("E2:E" & Plan1.Range("A65536").End(xlUp).Row) If ComboBoxTamanho.Value = Plan1.Range("D" & L).Value Then OCOLLECTION.Add VARVALUE, VARVALUE End If L = L + 1 Next For I = 1 To OCOLLECTION.Count ComboBox5.AddItem OCOLLECTION.Item(I) Next I End Sub '-------------------------Quinto Nível-------------------------------- Private Sub UserForm_Initialize() Dim OCOLLECTION As New Collection Dim VARVALUE As Variant Dim I As Long On Error Resume Next For Each VARVALUE In Plan1.Range("A2:A" & Plan1.Range("A65536").End(xlUp).Row) OCOLLECTION.Add VARVALUE, VARVALUE Next For I = 1 To OCOLLECTION.Count ComboBoxCategorias.AddItem OCOLLECTION.Item(I) Next I End Sub Esse código apresenta dois problemas na sua execução:PRIMEIRO: Ele não está filtrando em cadeia, ou seja, ele filtra somente com base no último critério e não com base em todos os critérios, trazendo na Combox valores em excesso, por exemplo, eu escolho:Categoria: Recheios;Produto: Pillow Top;Tipo: Pluma de Ganso;Tamanho: SK, C, S, ou Q/K ----- Isso é o que era pra ele trazer ----- Mas ele traz:Categoria: Recheios;Produto: Pillow Top;Tipo: Pluma de Ganso;Tamanho: SK, C, S,Q/K, 40x90cm, 60x90cm, 30x70cm ----- Isso é o que ele Traz ----Isso acontece por que o código filtra com base apenas no ultimo critério(Tipo:Pluma de Ganso) quando na verdade era pra filtrar com base em todos os critérios.SEGUNDO:Quando o critério anterior é vazio, ele não traz o posterior corretamente, por exemplo:Categoria: Recheios;Produto: Protetor de Colchão;Tipo: (vazio)Tamanho: SK, C, S OU Q/K ----- Isso é o que era pra ele Trazer ----Mas ele traz:Categoria: Recheios;Produto: Protetor de Colchão;Tipo: (vazio)Tamanho: (vazio) ----- Isso é o que ele Traz ---- Alguém pode me ajudar?
  2. Respondido. https://www.planilhando.com.br/forum/viewtopic.php?f=10&t=30289
  3. Boa tarde, Conseguem me dar um exemplo de um código que deixe uma planilha invisível para apenas os usuários com uma senha cadastrada possam ver o conteúdo ? Por exemplo: Pasta de Trabalho com Planilhas A, B e C. para a Planilha A somente o usuário X pode ter acesso, para planilha B somente o usurário Y e para a planilha C apenas o usuário K. Usuário Beta terá acesso a todas.
  4. WAYNEWAVE

    FORMATO DE DATA VBA

    Boa tarde, tenho um código que filtra uma tabela pela data. Porém, está dando erro, pois, o VBA não entende que o formato que está na CÉLULA é dd/mm/yyyy, ele entende mm/dd/yyyy. Alguém pode me ajudar ? Sub Filtro_Data() Application.Calculation = xlAutomatic Dim data_ini As Date Dim data_fin As Date data_ini = DateValue(Format(Range("F2"), "dd/mm/yyyy")) data_fin = DateValue(Format(Range("G2"), "dd/mm/yyyy")) Sheets("BACABA").Select Selection.AutoFilter ActiveSheet.Range("$c$5:d$50000").AutoFilter Field:=2, Criteria1:= _ ">=" & data_ini, Operator:=xlAnd, Criteria2:="<=" & data_fin End Sub
  5. WAYNEWAVE

    VBA DE BUSCA

    A foto 1 é a base de dados e a foto 2 é onde eu gostaria que retornasse os valores de acordo com o filtro de data.
  6. Boa tarde! Galera preciso de um código que me retorne as informações de uma tabela com base um filtro de data(De[yy/xx/aa] Até[zz/xx/yy]) que está em uma célula do excel. Basicamente é um PROCV... A tabela contém 10 colunas e a data está na segunda. Eu queria que código traga as informações da Tabela Mãe para uma outra Tabela Filha, baseado nos criterios de data. Alguém pode me ajudar?
×
×
  • Criar Novo...