Get Adobe Flash player

Perfil MVP

perfil mvp

Autenticação

Online

Nenhum

Estatísticas

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoje21
mod_vvisit_counterOntem197
mod_vvisit_counterEsta semana1675
mod_vvisit_counterEste Mês4090
mod_vvisit_counterTodas499542

Ligados 15
O seu IP: 38.107.179.226
,
Agora: 2012-05-20 00:47
Avaliação: / 1
FracoBom 

 Se pretendermos obter um número sequencial, de cada vez que executarmos um procedimento, como no exemplo seguinte:

 

 

 

podemos utilizar o seguinte código:

 

 

 

Declare Function GetKeyboardState Lib "user32" _

                                  (pbKeyState As Byte) As Long

Declare Function SetKeyboardState Lib "user32" _

                                  (lppbKeyState As Byte) As Long

 

'---------------------------------------------------------------------------------------

' Procedimento : Notifica

' Autor        : JORGEROD

' Data         : 29-08-2011

' Propósito    : Obtém número sequencial de notificação

'---------------------------------------------------------------------------------------

'

Sub Notifica()

    Dim User As String

    Dim Res As Long

    Dim KBState(0 To 255) As Byte

    Dim n As Long

    Dim Pergunta As Integer

 

    Res = GetKeyboardState(KBState(0))

    KBState(&H14) = 1  ' 1 para "on", 0 para "off"

 

    Do While User = ""

        User = InputBox(Prompt:="Digite o seu nome e Enter para continuar", Title:="Nome")

        If User = "vvvv" Then

            Exit Sub

        ElseIf User = "zzzz" Then

            Sheets(2).Unprotect Password:="xxxx"

            Sheets(2).Range("G:G").ClearContents

            Sheets(2).Range("G1").Value = 0

            Exit Sub

        End If

    Loop

 

 Pergunta = MsgBox(Prompt:="Pretende obter NÚMERO de NOTIFICAÇÃO?" & vbCr & "Se responder OK, o número será gravado!!!", Buttons:=vbYesNo + vbQuestion, Title:="Notificação")

 

    Select Case Pergunta

    Case vbNo

        Exit Sub

    Case Else

 

        Application.ScreenUpdating = False

 

        Sheets(2).Unprotect Password:="xxxx"

 

        n = Worksheets(2).Range("G:G").Cells.SpecialCells(xlCellTypeConstants).Count

 

        Worksheets(2).Activate

 

          Sheets(2).Range("G" & Rows.Count).End(xlUp).Offset(1, 0).Value = n & " - " & UCase(User) & " - " & Date

 

 

        Sheets(2).Protect Password:="xxxx", UserInterfaceOnly:=True

 

    End Select

 

    Worksheets(1).Activate

    Sheets(1).Range("G20").Value = "O Nº da Notificação é:"

 

    Application.ScreenUpdating = True

 

    KBState(&H14) = 0  ' 1 para "on", 0 para "off"

 

    Res = SetKeyboardState(KBState(0))

 

End Sub

 

 

E agora, na célula J20 da planilha "Notificações", poderemos colocar o seguinte: =ÍNDICE(Tabela!G:G; CONTAR.VAL(Tabela!G:G); 1)

 

O resultado é o que está à vista no exemplo.

 

 

.