Usuário com melhor resposta
Inserido dados em Planilhas com auxilio de ComboBox

Pergunta
-
Quero preparar um projeto em VBA no Excel e quero fazer com que o único ComboBox que tenho num formulário (userform), indique aos TextBox's que tenho nesse mesmo formulário, em que planilha será inserido os dados colocados nos TextBox. Por exemplo:
Tenho as planilhas: Dados1, Dados2, Dados3 e Dados4
Tenho os controles: ComboBox1, TextBox1 e TextBox2
Se no userform o ComboBox1 tiver o valor 1 , os TextBox1 e TextBox2 farão a inserção de valores na planilha Dados1
Se no userform o ComboBox1 tiver o valor 2 , os TextBox1 e TextBox2 farão a inserção de valores na planilha Dados2
Se no userform o ComboBox1 tiver o valor 3 , os TextBox1 e TextBox2 farão a inserção de valores na planilha Dados3
Por favor, me ajudem, estou DESESPERADA!!!
Respostas
-
Olá...bom dia....um pequeno erro...
Private Sub CommandButton1_Click()
PLAN.Range("b" & IdALuno) = TextBox1
PLAN.Range("c" & IdALuno) = TextBox2
PLAN.Range("d" & IdALuno) = TextBox3
PLAN.Range("e" & IdALuno) = TextBox4
End Sub
Agora vai dar.....- Marcado como Resposta Iranilce quarta-feira, 3 de fevereiro de 2010 13:26
Todas as Respostas
-
Para guiar planilha pelo combox:
Private Sub ComboBox1_Click() If ComboBox1.Value = 1 Then Sheets("Dados1").Select End If If ComboBox1.Value = 2 Then Sheets("Dados2").Select End If If ComboBox1.Value = 3 Then Sheets("Dados3").Select End If End Sub
Tu tens um procedimento para inserir os valores?
jose -
Olá....Um exemplo pra você gravar seus dados...este exemplo começa a gravar a partir da célula A2 na planilha selecionada( no combo) qualquer dúvida post denovo..
ComboBox1, TextBox1 e TextBox2 e um botão para gravar...
Private Sub CommandButton1_Click()
Select Case ComboBox1.Value
Case Is = 1
GRAVADADOS ("Dados1")
Case Is = 2
GRAVADADOS ("Dados2")
Case Is = 3
GRAVADADOS ("Dados3")
End Select
End SubSub GRAVADADOS(NomePlan As String)
Set Plan = Sheets(NomePlan)
LastRow = Plan.Cells(Rows.Count, 1).End(xlUp).Row + 1
Plan.Cells(LastRow, 1).Value = TextBox1.Text
Plan.Cells(LastRow, 2).Value = TextBox2.Text
End Sub
Até...
Se solucionar marque como respondida... -
Vou tentar explicar melhor:
Lista dos controles que pretendo utilizar:
2 ComboBox's (ComboBox1 => listando nomes de alunos em A2:A7; ComboBox2 => listando nomes das planilhas DADOS1, DADOS2, e DADOS3, listadas em K2:K7);
4 TextBox's com seus respectivos Label's;
1 CommandButton ---> para gravar.
Os labels dos textbox's encontram-se as datas escritas nas células: "B1:E1", essas datas vão variar de acordo com o valor selecionado no ComboBox2. O ComboBox2 indica em que planilha (Bimestres = DADOS1, etc...) as faltas ("F") irão ser lançadas. O ComboBox1 indica o nome do aluno no qual irá ser lançado a falta e com isso a linha a ser trabalhada.
Espero que eu tenha me explicado melhor, estou anciosa pela resposta.
OBRIGADA pela ajuda!
Aguardo
-
Olá...
Tente assim...
Dim PLAN As Worksheet
Dim IdALuno As LongPrivate Sub ComboBox1_Click()
Set PLAN = Worksheets(ComboBox1.Text)
Atualiza
End SubPrivate Sub ComboBox2_Click()
IdALuno = ComboBox2.ListIndex + 2
Atualiza
End SubPrivate Sub CommandButton1_Click()
Range("b" & IdALuno) = TextBox1
Range("c" & IdALuno) = TextBox2
Range("d" & IdALuno) = TextBox3
Range("e" & IdALuno) = TextBox4
End SubPrivate Sub UserForm_Initialize()
For Each PLAN In Worksheets
ComboBox1.AddItem PLAN.Name
Next
IdALuno = 2
ComboBox1.ListIndex = 0
ComboBox2.RowSource = "Plan1!A2:A7" ' ALUNOS
ComboBox2.ListIndex = 0
End SubPrivate Sub Atualiza()
Label1.Caption = PLAN.Range("B1")
Label2.Caption = PLAN.Range("C1")
Label3.Caption = PLAN.Range("D1")
Label4.Caption = PLAN.Range("E1")
TextBox1 = PLAN.Range("b" & IdALuno)
TextBox2 = PLAN.Range("c" & IdALuno)
TextBox3 = PLAN.Range("d" & IdALuno)
TextBox4 = PLAN.Range("e" & IdALuno)
End Sub
Até.. -
Boa Noite, EvangelistaLio, muito obrigada pela atenção.
Tentei executar o form e apareceu o seguinte problema: mesmo eu escolhendo no ComboBox1 a planilha em que deveriam ser lançados os dados, todas as vezes os dados eram lançados na 1ª planilha, ou seja "DADOS1", é apenas este o problema.
Ficarei grata, se puderes se ajudar no contorno desse problema.
- Private Sub UserForm_Initialize()
For Each PLAN In Worksheets
ComboBox1.AddItem PLAN.Name
Next
IdALuno = 2
ComboBox1.ListIndex = 0
ComboBox2.RowSource = "PLAN!A2:A7" ' ALUNOS ----> apenas nessa parte tive que fazer
ComboBox2.ListIndex = 0 uma mudança, ao invés de PLAN!
End Sub coloquei DADOS1!, na hora da execução dava erro: "Não foi possível definir a propriedade RowSoucer..." - É possível fazer com que na ComboBox1 apareça apenas as planilhas que eu desejar??
- Se possível como fazer isso?
- Editado Iranilce quarta-feira, 3 de fevereiro de 2010 10:40 Melhor Explicação
- Private Sub UserForm_Initialize()
-
Olá....Entendi...Creio que agora tá tudo certo..
Dim PLAN As Worksheet
Dim IdALuno As LongPrivate Sub ComboBox1_Click()
Set PLAN = Worksheets(ComboBox1.Text)
ComboBox2.RowSource = PLAN.Name & "!A2:A7"
ComboBox2.ListIndex = 0
Atualiza
End SubPrivate Sub ComboBox2_Click()
IdALuno = ComboBox2.ListIndex + 2
Atualiza
End SubPrivate Sub CommandButton1_Click()
Range("b" & IdALuno) = TextBox1
Range("c" & IdALuno) = TextBox2
Range("d" & IdALuno) = TextBox3
Range("e" & IdALuno) = TextBox4
End SubPrivate Sub UserForm_Initialize()
ComboBox1.Style = fmStyleDropDownList ' assim o usuário não consegue alterar o valor do combo
ComboBox2.Style = fmStyleDropDownList
ComboBox1.AddItem "DADOS1"
ComboBox1.AddItem "DADOS2"
ComboBox1.AddItem "DADOS3"
IdALuno = 2
ComboBox1.ListIndex = 0
ComboBox2.RowSource = PLAN.Name & "!A2:A7"
ComboBox2.ListIndex = 0
End SubPrivate Sub Atualiza()
Label1.Caption = PLAN.Range("B1")
Label2.Caption = PLAN.Range("C1")
Label3.Caption = PLAN.Range("D1")
Label4.Caption = PLAN.Range("E1")
TextBox1 = PLAN.Range("b" & IdALuno)
TextBox2 = PLAN.Range("c" & IdALuno)
TextBox3 = PLAN.Range("d" & IdALuno)
TextBox4 = PLAN.Range("e" & IdALuno)
End Sub
Se solucionar marque como respondida...
Até.... -
Olá, Bom dia!
Meu caro amigo, sinto que estamos quase chegando lá. O problema é que mesmo eu selecionando no ComboBox1 o item "Dados2", após clicar no CommandButton1, os dados inseridos não vão para a planilha "Dados2", mas continuam sendo inserido na planilha "Dados1". A mesma acontece quando tento inserir na planilha "Dados3".
Se puderes me ajudar, fico agradecida! -
Olá...bom dia....um pequeno erro...
Private Sub CommandButton1_Click()
PLAN.Range("b" & IdALuno) = TextBox1
PLAN.Range("c" & IdALuno) = TextBox2
PLAN.Range("d" & IdALuno) = TextBox3
PLAN.Range("e" & IdALuno) = TextBox4
End Sub
Agora vai dar.....- Marcado como Resposta Iranilce quarta-feira, 3 de fevereiro de 2010 13:26
-
Realmente agora deu certo, amigo!
Eu ja estava utilizando um código assim:
Private Sub CommandButton1_Click()
If ComboBox1.Value = "Dados1" Then
Sheets("Dados1").Select
Range("b" & IdALuno) = TextBox1
Range("c" & IdALuno) = TextBox2
Range("d" & IdALuno) = TextBox3
Range("e" & IdALuno) = TextBox4
ElseIf ComboBox1.Value = "Dados2" Then
Sheets("Dados2").Select
Range("b" & IdALuno) = TextBox1
Range("c" & IdALuno) = TextBox2
Range("d" & IdALuno) = TextBox3
Range("e" & IdALuno) = TextBox4
ElseIf ComboBox1.Value = "Dados3" Then
Sheets("Dados3").Select
Range("b" & IdALuno) = TextBox1
Range("c" & IdALuno) = TextBox2
Range("d" & IdALuno) = TextBox3
Range("e" & IdALuno) = TextBox4
Só que o seu ta bem mais enchuto, valeu!!! -
-
Por favor, dê uma olhada nesse código de um CommandButton2 que estou tentando inserir no mesmo userform do meu projeto para visualizar impressão das planilhas em questão (Dados1, Dados2, Dados3).
Private Sub CommandButton2_Click()
Unload UserForm1
If ComboBox1.Value = "Dados1" Then
Sheets("Dados1").Select
ActiveWindow.SelectedSheets.PrintPreview
ElseIf ComboBox1.Value = "Dados2" Then
Sheets("Dados2").Select
ActiveWindow.SelectedSheets.PrintPreview
ElseIf ComboBox1.Value = "Dados3" Then
Sheets("Dados3").Select
ActiveWindow.SelectedSheets.PrintPreview
End If
End Sub
E na pasta de trabalho, coloquei:
Private Sub Workbook_Activate()
Sheets("Dados1").Select
UserForm1.Show
End Sub
Private Sub Workbook_Open()
Sheets("Dados1").Select
UserForm1.Show
End Sub
Quando abro a pasta de trabalho ela carrega o userform1. Quando seleciono no ComboBox1 o item Dados1 e clico no CommandButton2, visualizo a impressão da Plan. Dados1 e quando fecho a visualização de impressão o meu userform retorna à tela, normal! Só que o mesmo não acontece quando seleciono no ComboBox1 as demais planilhas, até consigo visualizar a impressão delas, só que quando fecho a visualização o meu userform1 não fica visível.
Você pode me ajudar?