Notifications
Clear all

Autocompletar e auto-atualizar na lista suspensa

6 Posts
2 Usuários
0 Reactions
1,965 Visualizações
zanni
(@zanni)
Posts: 27
Eminent Member
Topic starter
 

Bom dia galera!!

Preciso da ajuda de vocês para uma planilha que venho desenvolvendo.

Bom é o seguinte, estou trabalhando em conjunto com o almoxarifado da minha empresa com o objetivo de controle de estoque etc. E estou criando uma planilha onde ontem todos os materiais do almoxarifado, nos quais são muitos.

Estou com o problema para resolver 2 coisas:
-Autocompletar quando digito, porém eu queria que isso funcionasse apenas na célula MATERIAIS e não na célula TIPOS.
-E quando a célula TIPOS for modificada a célula MATERIAIS seja atualizada visualmente.

Lembrando que a célula materiais é baseada na célula tipos, por meio da função =SE() então a materiais depende da outra.

Eu achei a solução para o autocompletar com esse seguinte código

Option Explicit
 
'Baseado em código da www.contextures.com
Private Sub TempCombo_KeyDown(ByVal _
        KeyCode As MSForms.ReturnInteger, _
        ByVal Shift As Integer)
 
    'Ocultar caixa de combinação e mover a próxima célula com Enter e Tab
    Select Case KeyCode
        Case 9
            ActiveCell.Offset(0, 1).Activate
        Case 13
            ActiveCell.Offset(1, 0).Activate
        Case Else
            'Nada
    End Select
 
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim str As String
    Dim cboTemp As OLEObject
    Dim ws As Worksheet
    Dim wsList As Worksheet
 
    Set ws = ActiveSheet
    Set wsList = Sheets(Me.Name)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
 
    If Application.CutCopyMode Then
      'Permite copiar e colar na planilha
      GoTo errHandler
    End If
 
    Set cboTemp = ws.OLEObjects("TempCombo")
      On Error Resume Next
      With cboTemp
        .Top = 10
        .Left = 10
        .Width = 0
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
        .Value = ""
      End With
 
    On Error GoTo errHandler
      If Target.Validation.Type = 3 Then
        Application.EnableEvents = False
        str = Target.Validation.Formula1
        str = Right(str, Len(str) - 1)
        With cboTemp
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 15
            .Height = Target.Height + 5
            .ListFillRange = str
            .LinkedCell = Target.Address
        End With
        cboTemp.Activate
 
        'Abrir a lista suspensa automaticamente
        Me.TempCombo.DropDown
        End If
 
errHandler:
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  Exit Sub
 
End Sub

Porém o código se aplica a todas as listas e eu queria que se aplicasse em apenas uma unica célula e não nas restantes.
Não sei se é possivel, mas desde já agradeço.

Quando a função de auto-atualizar, visualmente(Como um PROCV) eu não achei em nenhum local, também não sei se é possivel.

Segue abaixo o anexo de uma planilha semelhante, apenas para demonstração.

I'd rather attempt to do something great and fail than to attempt to do nothing and succeed. -Robert H. Schuller

 
Postado : 29/05/2016 8:43 am
zanni
(@zanni)
Posts: 27
Eminent Member
Topic starter
 

Nao entendi sua necessidade.

Gostaria que uma célula especifica se completasse enquanto escrevo.

I'd rather attempt to do something great and fail than to attempt to do nothing and succeed. -Robert H. Schuller

 
Postado : 29/05/2016 8:54 am
(@mprudencio)
Posts: 2749
Famed Member
 

Seja mais especifico ..

O que e onde vc quer o auto completar

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 29/05/2016 9:48 am
zanni
(@zanni)
Posts: 27
Eminent Member
Topic starter
 

Seja mais especifico ..

O que e onde vc quer o auto completar

-Autocompletar quando digito, porém eu queria que isso funcionasse apenas na célula MATERIAIS e não na célula TIPOS.

I'd rather attempt to do something great and fail than to attempt to do nothing and succeed. -Robert H. Schuller

 
Postado : 29/05/2016 11:02 am
(@mprudencio)
Posts: 2749
Famed Member
 

Para se auto completar e preciso uma lista pre existente e o que vi no seu exemplo sao apenas duas colunas uma com alguns numeros repetidos e outra com textos.

Repito a pergunta seja mais espefico.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 29/05/2016 1:25 pm
zanni
(@zanni)
Posts: 27
Eminent Member
Topic starter
 

Para se auto completar e preciso uma lista pre existente e o que vi no seu exemplo sao apenas duas colunas uma com alguns numeros repetidos e outra com textos.

Repito a pergunta seja mais espefico.

Cara tem duas listas ali

Um na célula D3 e outra na célula D5.

A célula D5 depende da célula D3, ou seja, quando a célula D3 é alterada, para um dos materiais(1 2 ou 3) a célula D5 mostra as opções de materiais referente ao tipo, representado na célula D3.

Eu queria somente que na célula D5 a função de autocompletar funcionass, e a célula D3 continuasse do mesmo jeito que está, com a lista normalzona.

Refiz o upload da planilha, pq pode ter dado algum erro.

Tentei se o mais claro que consegui agora.

I'd rather attempt to do something great and fail than to attempt to do nothing and succeed. -Robert H. Schuller

 
Postado : 29/05/2016 3:25 pm