Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
j_r_m_c

obter os ultimos dois digitos do ano

Recommended Posts

j_r_m_c

olá

necessito alterar este código (o que está a bold) de forma a obter os ultimos dois digitos do ano actual, da forma que está dá-me o ano "2010", e eu pretendo obter só "10"

como posso fazer ??

Isto é de um programa de gerar numeros sequenciais de relatórios

CI_D_2.Hide

    Retorno = 1

    If CI_D_2.n_rel = "" Then

        CI_D_2.Show

    End If

    If Mid(CI_D_2.n_rel, 1, 4) <> cod_rel + Trim(Str(Year(Now()))) Then

        botao = MsgBox("Só pode alterar os ultimos 3 dígitos", , "RELATÓRIOS DE INSPECÇÃO")

        CI_D_2.n_rel = Trim(cod_rel) + Trim(Str(numero + 1))

        CI_D_2.Show

    End If

End Sub

Share this post


Link to post
Share on other sites
j_r_m_c

mas é para formar um código

por isso tem o

cod_rel + trim(str(year(now()))) a função format consegue substituir ??

Share this post


Link to post
Share on other sites
jpaulino

mas é para formar um código

por isso tem o

cod_rel + trim(str(year(now()))) a função format consegue substituir ??

Já tentaste ?

If Mid(CI_D_2.n_rel, 1, 4) <> cod_rel + Format(Date, "yy") Then

Share this post


Link to post
Share on other sites
jpaulino

consegui resolver

defini no inicio data= format (date,"yy")

obrigado pela ajuda

É a mesma coisa ;)

Share this post


Link to post
Share on other sites
j_r_m_c

;)

larguei foguetes antes da festa

com as alterações que fiz, ele já não gera uma sequencia de numeros.

normalmente ele funciona assim.

cada vez que ele cria um relatório ele regista numa folha .lst alguns dados entre os quais o nº, quando abro outro ele atribui o numero seguinte pq foi verificar o ultimo.

'Macro autoopen para relatorios de inspecção Relatorios (RI.DOT)

Public fich$, caminho, ser, numero, Retorno, cod_rel, data_ano, n_ass, n_eq, relpar, jaaberto As String

Dim proc, texto$, unidade$, qunid$

Dim unidadD__

Dim lista$()

'**************************************************************************************

Public Sub MAIN()

On Error GoTo ver_erro

ReDim cod_servico_(0), servico_(0), cod_rel_(0), data_ano(0), n_rel(0), n_unid(0), n_assunto(0), n_data(0), n_equip(0)

'Dim a_lista(0, 0, 0, 0, 0)

Dim ha, l_rel

Dim num, n

Dim D

Dim numrel$

Dim d_$

Dim em$

Dim E$

Dim encontra

Dim botao

Dim nl_

Dim x

Dim ml$

Dim ano$

Dim data_i As Date

        ijanela$ = UCase$(WordBasic.[windowname$](i))

        If UCase(Right(ijanela$, 6)) = "(COPY)" Then

            aaa = MsgBox("Aplicação a ser usada por outro utilizador", vbOKOnly, "RELATÓRIOS")

            Application.Quit

        End If

proc = 0

texto$ = ""

fich$ = ""

unidade$ = ""

qunid$ = ""

caminho = ActiveDocument.Path

ser = UCase$(ActiveDocument.Name)

data_ano = Format(Date, "yy")

cod_rel = "EI"

inicio:

    fich$ = Dir(caminho + "\" + cod_rel + data_ano + ".lst")

    'If Mid(fich$, 2, 4) <> data_ano Then fich$ = ""

    If fich$ = "" Then

        numero = cod_rel + data_ano + "0000"

    Else

        Open caminho + "\" + fich$ For Input As #1

        Do While Not EOF(1)

            Input #1, numero, data, un, equip, Assunto, nota, ordem

        Loop

        Close #1

    End If

    numero = Mid(numero, 5, 4)

    qjanela$ = ser

    ha = WordBasic.Val(janela(qjanela$))

    If ha > WordBasic.CountWindows() Then GoTo Fim

    CommandBars("Standard").Visible = False

    CommandBars("Formatting").Visible = False

    CommandBars("Drawing").Visible = False

    'CommandBars("PDFMaker 4.0").Visible = False

    Selection.EndKey unit:=wdStory

    ActiveWindow.WindowState = wdWindowStateMaximize

    ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit

    relpar = ""

    CI_D_2.n_rel = Trim(cod_rel) + Trim(data_ano) + Trim(Str(numero + 1))

    CI_D_2.data = Mid(Now(), 1, 8)

    CI_D_2.servico = servico$

    CI_D_2.Label18 = servico$

    CI_D_2.Show

    If Retorno = 12 Then GoTo abre_rel

    If Retorno = 2 Then GoTo ver_lista            'lista relatórios

    If Retorno = 1 Then GoTo novo_rel            'novo relatório

    If Retorno = 22 Then GoTo inicio

    If Retorno = 3 Then

        CommandBars("Standard").Visible = True

        CommandBars("Formatting").Visible = True

        WordBasic.fileexit

    End If

    Stop

Share this post


Link to post
Share on other sites
j_r_m_c

já resolvi..obrigado pela ajuda  :P

a macro cria uma lista em excel tipo .lst e os vários campos que eu preencho aparecem todos escritos na mesma célula

exemplo célula A1:

Numero sequencial gerado pelo programa;Nome; Idade; Nacionalidade

desta forma não posso ligar os filtros do excel

por isso gostaria que :

Numero sequencial do relatório A1

Nome A2

Idade A3

Nacionalidade A4

desta forma poderia trabalhar informação gerada

alguém me dá umas dicas?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.