Usuário com melhor resposta
preenchimento de um intervalo

Pergunta
-
olá nobres,
Por gentileza, gostaria de um codigo para inserir no userform na imagem abaixo.
a ideia é preencher as linhas A5,A6,A7, .... na sequencia do intervalo que for digitado no userfom.
por exemplo: digito De: 1501 ATe: 1590, ai preenche 1501,1502,1503,....1590
muito obrigado.
Respostas
-
Private Sub CommandButton1_Click() On Error Resume Next Dim linha As Long Dim valorinicial, valorfinal As Long linha = 5 valorinicial = CLng(txtValorInicial.Text) valorfinal = CLng(txtValorFinal.Text) While valorinicial <= valorfinal ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial valorinicial = valorinicial + 1 linha = linha + 1 Wend End Sub
Anderson Diniz
- Sugerido como Resposta AndersonFDiniz2 terça-feira, 10 de outubro de 2017 04:13
- Marcado como Resposta Elizeuca quarta-feira, 11 de outubro de 2017 15:04
-
Private Sub CommandButton1_Click() On Error Resume Next Dim linha As Long Dim valorinicial, valorfinal As Long linha = 5 valorinicial = CLng(txtValorInicial.Text) valorfinal = CLng(txtValorFinal.Text) if ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial then While valorinicial <= valorfinal ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial valorinicial = valorinicial + 1 linha = linha + 1 Wend else msgbox "Valor não encontrado." end if End Sub
Anderson Diniz
- Sugerido como Resposta AndersonFDiniz2 quinta-feira, 12 de outubro de 2017 01:48
- Marcado como Resposta Elizeuca quinta-feira, 12 de outubro de 2017 15:52
Todas as Respostas
-
Private Sub CommandButton1_Click() On Error Resume Next Dim linha As Long Dim valorinicial, valorfinal As Long linha = 5 valorinicial = CLng(txtValorInicial.Text) valorfinal = CLng(txtValorFinal.Text) While valorinicial <= valorfinal ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial valorinicial = valorinicial + 1 linha = linha + 1 Wend End Sub
Anderson Diniz
- Sugerido como Resposta AndersonFDiniz2 terça-feira, 10 de outubro de 2017 04:13
- Marcado como Resposta Elizeuca quarta-feira, 11 de outubro de 2017 15:04
-
-
Anderson,
apareceu um detalhe aqui que esqueci de mencionar.
o valor inicial e final que irá ser digitado, são valores que estão contido em outra aba.
teria como criar uma regra para cada textbox (valor inicial e final) que se na coluna A da aba (plan1) tiver aquele valor digitado, ele aceita inserir, caso contrário, aparecesse uma mensagem "intervalo não encontrado"
seria possivel??
obrigado.
-
Private Sub CommandButton1_Click() On Error Resume Next Dim linha As Long Dim valorinicial, valorfinal As Long linha = 5 valorinicial = CLng(txtValorInicial.Text) valorfinal = CLng(txtValorFinal.Text) if ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial then While valorinicial <= valorfinal ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial valorinicial = valorinicial + 1 linha = linha + 1 Wend else msgbox "Valor não encontrado." end if End Sub
Anderson Diniz
- Sugerido como Resposta AndersonFDiniz2 quinta-feira, 12 de outubro de 2017 01:48
- Marcado como Resposta Elizeuca quinta-feira, 12 de outubro de 2017 15:52
-
Anderson,
é quase isso, porem, o valor final tbem deveria ter a mesma regra do valor inicial.
precisava que os dois valores fossem verificados.
como uso procv deste resultado, os valores finais que nao constam na coluna ficam em #N/D
para valor inicial, funcionou legal...
tentei usar isso aqui :...
if ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial and ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorfinal then
then....mas ai aparece a msg de "valor não encontrado", mesmo que os valores estejam presente na coluna A da planilha1.
ou pensei assim tbem, mas nao sei escrever o codigo para ver a ultima linha digitada:
..if ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial and o codigo para ele ver a ultima linha digitada da coluna A <= valorfinal then....
vlw..
mais uma vez obrigado
- Editado Elizeuca quarta-feira, 11 de outubro de 2017 19:37
-
-
Option Explicit Private Sub CommandButton1_Click() On Error Resume Next Dim linha As Long Dim valorinicial, valorfinal As Long Dim achouvalorinicial, achouvalorfinal As Boolean 'Partindo da linha 5 linha = 5 valorinicial = CLng(txtValorInicial.Text) valorfinal = CLng(txtValorFinal.Text) achouvalorfinal = False achouvalorinicial = False 'Procura os valores na planilha1 While ThisWorkbook.Sheets("Planilha1").Cells(linha, 1).Value <> "" And achouvalorinicial = False And achouvalorfinal = False If ThisWorkbook.Sheets("Planilha1").Cells(linha, 1).Value = valorinicial Then achouvalorinicial = True End If If ThisWorkbook.Sheets("Planilha1").Cells(linha, 1).Value = valorfinal Then achouvalorfinal = True End If linha = linha + 1 Wend 'Partindo da linha 5 linha = 5 'Preenche intervalo na planilha1 se os valores foram encontrados If achouvalorinicial = True And achouvalorfinal = True Then While valorinicial <= valorfinal ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial valorinicial = valorinicial + 1 linha = linha + 1 Wend Else MsgBox "Valor não encontrado." End If End Sub
Anderson Diniz
-
Bom dia Anderson,
continuou o erro: variável nao definida.
ele seleciona em amarelo o
Private Sub CommandButton1_Click()
e o cursor fica em
achouvalorinicial = True
mas fiz uma pequena alteração no codigo anterior que vc enviou.
criei mais uma variavel chamando de linha1,
linha1 = 3, onde nesta celula (A3), fiz uma formula para buscar o ultimo valor digitado, com isso, fiz a condição do valorfinal.
ai funcionou.
segue abaixo codigo.
Private Sub CommandButton1_Click() On Error Resume Next Dim linha,linha1 As Long Dim valorinicial, valorfinal As Long linha = 5
linha1 = 3 valorinicial = CLng(txtValorInicial.Text) valorfinal = CLng(txtValorFinal.Text) if ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) <= valorinicial and ThisWorkbook.Sheets("Planilha1").Cells(linha1, 1) >= valorfinal then While valorinicial <= valorfinal ThisWorkbook.Sheets("Planilha1").Cells(linha, 1) = valorinicial valorinicial = valorinicial + 1 linha = linha + 1 Wend else msgbox "Valor não encontrado." end if End Sub
tive que colocar <= ou >= porque se o primeiro valor for 100 e o ultimo 200, posso inserir valor no intervalo de 110 a 130 por exemplo.
na outra condição ficava amarrado, o valor inicial tinha que ser 100, caso contrario aparecia msg de "valor nao encontrado".
valeu pela ajuda Anderson,
é um grande aprendizado pra mim..
abraço