Número seqüencial no Excel dentro da faixa especificada

0

Eu tenho procurado pela macro desde a semana passada, mas sem sorte até agora. Eu apreciaria os esforços se você me tirasse do problema que estou enfrentando, Eu criei o modelo excel (usado para lista de codificação).

O que eu estou procurando é isso:

Na Coluna B, precisamos colocar números de série (números sequenciais) na célula ativa com base no valor especificado em duas células, digamos (A1 = iniciar serial de: 5) & (A2 = número de série final: 25) O que eu preciso é na coluna B, onde a célula está ativa e intervalo de início e fim é fornecido por mim (usuário) e eu clico no botão macro sua gerar o número de série com intervalo de início e fim fornecido de ativação para baixo.

Espero que você tenha entendido.

    
por Syed Chowdhury 21.07.2013 / 15:23

1 resposta

0

Se eu entendi o que você quer, essa macro deve funcionar para você. Ele verifica se:

  • o usuário selecionou uma célula na coluna B para a nova série
  • o valor final da série que o usuário inseriu é maior que o valor inicial
  • os valores existentes na coluna B foram apagados antes de a nova série ser inserida.

Se alguma dessas condições não for atendida, a macro avisará o usuário e sairá sem adicionar a nova série à planilha.

Sub NewSeries2()
    Dim seriesRng As Range
    Dim stepSize As Double
    Dim stopValue As Double

    If Intersect(Selection, Range("B:B")) Is Nothing Then
        MsgBox "Please select a cell in column B to start the series."
        Exit Sub
    ElseIf Range("A2").Value <= Range("A1").Value Then
        MsgBox "Ending value of the series cell A2 must be greater then the starting value in cell A1."
        Exit Sub
    ElseIf WorksheetFunction.CountA(Range("B:B")) <> 0 Then
        MsgBox "Please delete the existing values in column B."
        Exit Sub
    Else
        stepSize = 1
        stopValue = Range("A2").Value
        Selection.Value = Range("A1").Value
        Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
            Step:=stepSize, Stop:=stopValue, Trend:=False
    End If
End Sub
    
por 21.07.2013 / 17:06