UserForm do Excel 2016 [fechado]

0

Ok, eu tenho um userform. Neste formulário de usuário, tenho uma caixa de combinação que extrai seus dados de uma planilha chamada "Listas" (Intervalo A2: A49). Eu tenho três caixas de texto Purchasing_Group "Lists" planilha (intervalo D2: D49), Plant_Number "listas" (intervalo B2: B49) e Profit_Center "listas" (intervalo E2: E49) caixa de combinação.

Eu preciso das três caixas de texto para preenchimento automático com base na escolha da caixa de combinação.

    
por R.Conklin 22.06.2017 / 16:02

1 resposta

0

Acho que isso deve funcionar, pelo menos no Excel 2011.

No código abaixo, "ComboResult" é a saída da sua caixa de combinação (o "link da célula"). Ele deve ser inserido como uma referência de célula entre aspas duplas, ou seja, "C7".

Da mesma forma, "LookupTable" é o intervalo de células na tabela da planta, por exemplo, "A1: E50". Novamente, aspas duplas. Eu estou supondo que sua tabela de pesquisa está na Planilha2. Você pode usar uma planilha nomeada usando Planilhas ("nome da planilha"). Range ().

Como a caixa de combinação gera um número (a posição da escolha do usuário na lista), sua tabela de pesquisa deve ter uma coluna de índice como a primeira coluna. Será apenas 1,2,3 etc. até o número de plantas na lista.

Sub FillTextbox()
  'Set up variables
    Dim TextboxName As String
    Dim TextboxText As String
    Dim Line1Text As String
    Dim Line2Text As String
    Dim Line3Text As String
  'Assemble the text
    Line1Text = "Plant Number: " &
       Sheet2.Application.WorksheetFunction.VLookup(Range("ComboResult"),
       Sheet2.Range("LookupTable"), 3, False)
    Line2Text = "Purchasing Group: " &
       Sheet2.Application.WorksheetFunction.VLookup(Range("ComboResult"),
       Sheet2.Range("LookupTable"), 4, False)
    Line3Text = "Profit Center: " &
       Sheet2.Application.WorksheetFunction.VLookup(Range("ComboResult"),
       Sheet2.Range("LookupTable"), 5, False)
    TextboxText = Line1Text & vbNewLine & Line2Text & vbNewLine & Line3Text
  'Fill the Textbox
    TextboxName = "TextBox 1"
    ActiveSheet.Shapes(TextboxName).DrawingObject.Text = TextboxText
End Sub

Depois de adicionar a coluna de índice, os dados que você deseja estarão nas colunas 3,4 e 5 da tabela, e as funções vlookup irão pegar esses valores, com base no índice escolhido na caixa de combinação.

    
por 22.06.2017 / 16:45