Pergunta efectuada por mail: Tenho uma lista de nomes de pessoas e por baixo a sua pontuação… O que pretendo é que por baixo da pontuação apareça a posição, do genero… Uma possível solução, será a seguinte fórmula em A3, com cópia até D3: =RANK(A2;$A$2:$D$2;0)& "º" E se se pretender que não haja o salto da terceira posição? Neste caso, …
Read More »A Função ENVIRON()
Por vezes, podemos ter necessidade de saber qual foi o utilizador que acedeu e quando acedeu a uma determinada worksheet, nomeadamente quando se trabalha em rede. O Código: Private iNextRow As LongConst HIDDEN_SHEET As String = "Sheet3" ' ou outro nome Private Sub Workbook_Open() With Worksheets(HIDDEN_SHEET) .Range("A1").Value = Environ("UserName") .Range("B1").Value = Format(Date + Time, _ "dd mmm yyyy hh:mm:ss") End With …
Read More »CapsLock On ou Off
Se pretenderemos que o que digitarmos, por exemplo numa InputBox, apareça em maiúsculas e o respectivo conteúdo apareça numa determinada célula também com a mesma condição, podemos utilizar, via VBA, funções API do Windows. O Código: Declare Function GetKeyboardState Lib "user32" _ (pbKeyState As Byte) As LongDeclare Function SetKeyboardState Lib "user32" _ (lppbKeyState As Byte) As Long Sub Abrir() Dim User As String Dim …
Read More »Interior.ColorIndex
Se pretendermos colorir as células que contenham um determinado nome que se encontre numa lista (Range), podemos clicar na célula de outra lista que contém o nome requerido, como no exemplo: Podemos utilizar o seguinte Código: Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Dim tabela As Range Dim nomeLista As Range Dim cell As Range Set tabela = Range("B1:B20") Set nomeLista = Range("D10:H10") tabela.Interior.ColorIndex …
Read More »O operador de divisão inteiro () – Integer Division
Ao contrário do operador de divisão usual no Excel (/), que nos fornece um resultado com valor fraccionário, o operador de divisão inteiro (), no VBA, dá-nos sempre o resultado num número inteiro, com nenhuma divisória fracionária. Vejamos o exemplo: O Código da função Teste(): Function Teste() Dim oDbl As Double Dim vA1 As Double Dim vA2 As Double vA1 = Range("a1") vA2 …
Read More »