good guy 31/8/2018, 18:15
Olá cem,
Não sei quanto a consulta, mas com um formulário em uma caixa de texto com um looping FOR...NEXT é possível.
- Código:
Public Function CriarSequencia(ValorInicial As Long, ValorFinal As Long) 'Os parâmetros estabelecem os limites inferior e superior
'Código de Eduardo Machado (Good Guy) Ano 2018
On Error Resume Next
Dim i As Long 'O tipo Long possibilita a inserção de valores acima dos limites de Integer (Sem estouro)
Dim Intervalo As Integer
Dim sSimb As Variant
ValorInicial = Nz(txtValorInicial) 'Caixa de texto para inserir o valor inicial
ValorFinal = Nz(txtValorFinal) 'Caixa de texto para inserir o valor final
Intervalo = Nz(txtIntervalo) 'Caixa de texto para inserir o intervalo. Exemplo: Intervalo = 2
'A sequência será de 2 em 2
sSimb = Nz(txtSimbolo) 'Caixa de texto com o símbolo separador (Ex.: 1-2-3-; 1.2.3.;)
For i = ValorInicial To ValorFinal Step Intervalo
txtSequencia = txtSequencia & i & sSimb 'Caixa de texto grande onde se desenvolverá a sequência
Next i
End Function
CÓDIGO DO BOTÃO:
Private Sub cmdGerar_Click()
On Error Resume Next
If Not IsNull(txtValorInicial) Or Not IsNull(txtValorFinal) Or Not IsNull(txtIntervalo) Then
Call CriarSequencia(txtValorInicial, txtValorFinal) 'Chama a função com seus parâmetros referenciados pelos argumentos aqui que são as caixas de texto.
Else
MsgBox "Preencha, por favor, todos os campos. Separador siginifica um (-) ou (/). Intervalo significa de 1 em 1 ou 2 em 2. " & _
"Digite 1 ou 2 ou qualquer outro número !!!", vbCritical, "Gerador de Números em Série"
End If
End Sub
PARA SOMAR DATA COM INTERVALO DE UM 1 DIA:
- Código:
Public Function SomaData()
'Código de Eduardo Machado (Good Guy) - Ano 2018
Dim dteDataInicial As Date, dteDataFinal As Date
Dim strIntervaloTipo As String
Dim varSimb As Variant
Dim i As Integer
Dim intervalo As Integer
Dim intDiasMax As Integer
strIntervaloTipo = "d" ' "d" especifica dias como intervalo.
varSimb = Nz(txtSimbolo) 'Caixa de texto com o símbolo separador (Ex.: 1-2-3-; 1.2.3.;)
intervalo = Me.txtIntervalo
dteDataInicial = Nz(txtDataInicial) 'Caixa de texto para inserir o valor inicial
dteDataFinal = Nz(txtDataFinal) 'Caixa de texto para inserir o valor final
intDiasMax = DateDiff("d", dteDataInicial, dteDataFinal)
For i = 0 To intDiasMax Step intervalo
txtSequencia = txtSequencia & DateAdd(strIntervaloTipo, i, dteDataInicial) & varSimb
Next i
End Function
- Anexos
- ValoresemSerie.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (29 Kb) Baixado 10 vez(es)
Última edição por good guy em 31/8/2018, 20:48, editado 1 vez(es)