none
preenchimento de um intervalo RRS feed

  • 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.

    segunda-feira, 9 de outubro de 2017 20:00

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
    terça-feira, 10 de outubro de 2017 04:13
  • 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
    quarta-feira, 11 de outubro de 2017 18:22

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
    terça-feira, 10 de outubro de 2017 04:13
  • Bom dia Anderson,

    perfeito,

    show de bola...

    obrigado...

    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.

    quarta-feira, 11 de outubro de 2017 17:42
  • 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
    quarta-feira, 11 de outubro de 2017 18:22
  • 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
    quarta-feira, 11 de outubro de 2017 19:25
  • Anderson,

    ocorreu um erro de variavel nao definida, na linha 

    achouvalorincial = True
    quarta-feira, 11 de outubro de 2017 20:30
  • 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

    quinta-feira, 12 de outubro de 2017 13:35
  • 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

    quinta-feira, 12 de outubro de 2017 15:51