Tenho 4 ComoBox que precisa da planilha aberta para mostrar os dados cadastrados.
Ao abrir um documento segundário, minha aplicação no VBA gera uma mensagem que não encontrou o arquivo especifico algo assim.
Veja o meu código de Activate do Form.
Private Sub UserForm_Activate()
txtProjecao = "VS.1-2012"
Dim Preencher
'Preenche o ComboBox cbx_Local:
'Esvazia o ComboBox,caso já esteja preenchido:
cbx_Conta.Clear
'Selecionamos a planilha onde estão os dados a popularem o combobox:
Sheets("ListaBD").Select
'Selecinamos a célula onde está o ínício dos dados.
'Note que selecionamos o cabeçalho da lista e não o primeiro nome
Range("B1").Select
Preencher = True
'Iniciamos a execução da estrutura lógica
Do While Preencher = True
'Seleciona a célula que está na linha imediatamente inferior
ActiveCell.Offset(1, 0).Select
'Testa o valor da célula e decide se o laço deve ou não continuar
If ActiveCell.Value = vbNullString Then
'Se a célula estiver vazia, altera a condição lógica
Preencher = False
Else
'se não estiver, acrescenta o item
cbx_Conta.AddItem ActiveCell.Value
End If
Loop
'Coloca o ComboBox na primeira posição válida:
cbx_Conta.SetFocus
cbx_Conta.ListIndex = -1
'=========================================================
'Preenche o ComboBox cbx_eqptos
'Esvazia o ComboBox,caso já esteja preenchido:
cbx_centrocusto.Clear
'Selecionamos a planilha onde estão os dados a popularem o combobox:
Sheets("ListaBD").Select
'Selecinamos a célula onde está o ínício dos dados.
'Note que selecionamos o cabeçalho da lista e não o primeiro nome
Range("C1").Select
Preencher = True
'Iniciamos a execução da estrutura lógica
Do While Preencher = True
'Seleciona a célula que está na linha imediatamente inferior
ActiveCell.Offset(1, 0).Select
'Testa o valor da célula e decide se o laço deve ou não continuar
If ActiveCell.Value = vbNullString Then
'Se a célula estiver vazia, altera a condição lógica
Preencher = False
Else
'se não estiver, acrescenta o item
cbx_centrocusto.AddItem ActiveCell.Value
End If
Loop
'Coloca o ComboBox na primeira posição válida:
cbx_tiposervico.ListIndex = -1
'Preenche o ComboBox cbx_tipode servico
'Esvazia o ComboBox,caso já esteja preenchido:
cbx_tiposervico.Clear
'Selecionamos a planilha onde estão os dados a popularem o combobox:
Sheets("ListaBD").Select
'Selecinamos a célula onde está o ínício dos dados.
'Note que selecionamos o cabeçalho da lista e não o primeiro nome
Range("D1").Select
Preencher = True
'Iniciamos a execução da estrutura lógica
Do While Preencher = True
'Seleciona a célula que está na linha imediatamente inferior
ActiveCell.Offset(1, 0).Select
'Testa o valor da célula e decide se o laço deve ou não continuar
If ActiveCell.Value = vbNullString Then
'Se a célula estiver vazia, altera a condição lógica
Preencher = False
Else
'se não estiver, acrescenta o item
cbx_tiposervico.AddItem ActiveCell.Value
End If
Loop
'Coloca o ComboBox na primeira posição válida:
cbx_tiposervico.ListIndex = -1
'Preenche o ComboBox PREMISSAS
'Esvazia o ComboBox,caso já esteja preenchido:
cbxPremissas.Clear
'Selecionamos a planilha onde estão os dados a popularem o combobox:
Sheets("ListaBD").Select
'Selecinamos a célula onde está o ínício dos dados.
'Note que selecionamos o cabeçalho da lista e não o primeiro nome
Range("E1").Select
Preencher = True
'Iniciamos a execução da estrutura lógica
Do While Preencher = True
'Seleciona a célula que está na linha imediatamente inferior
ActiveCell.Offset(1, 0).Select
'Testa o valor da célula e decide se o laço deve ou não continuar
If ActiveCell.Value = vbNullString Then
'Se a célula estiver vazia, altera a condição lógica
Preencher = False
Else
'se não estiver, acrescenta o item
cbxPremissas.AddItem ActiveCell.Value
End If
Loop
'Coloca o ComboBox na primeira posição válida:
cbxPremissas.ListIndex = -1
'Preenche o ComboBox cbx_tipode servico
'Esvazia o ComboBox,caso já esteja preenchido:
cbxPremissas.Clear
'Selecionamos a planilha onde estão os dados a popularem o combobox:
Sheets("ListaBD").Select
'Selecinamos a célula onde está o ínício dos dados.
'Note que selecionamos o cabeçalho da lista e não o primeiro nome
Range("E1").Select
Preencher = True
'Iniciamos a execução da estrutura lógica
Do While Preencher = True
'Seleciona a célula que está na linha imediatamente inferior
ActiveCell.Offset(1, 0).Select
'Testa o valor da célula e decide se o laço deve ou não continuar
If ActiveCell.Value = vbNullString Then
'Se a célula estiver vazia, altera a condição lógica
Preencher = False
Else
'se não estiver, acrescenta o item
cbxPremissas.AddItem ActiveCell.Value
End If
Loop
'Coloca o ComboBox na primeira posição válida:
cbxPremissas.ListIndex = -1
'txtDataProjecao = Date
'Valores de Porcentagem e Orçamento preechido com 0
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 20/01/2012 6:51 am