About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2007-10-28

Depois de se ter instalado o Microsoft Office Service Pack 3 (SP3), não é possível abrir, no Microsoft Excel 2003, workbook files do Microsoft Excel 5.0/95 que contenham macros do Visual Basic for Applications (VBA) .

 

Ver mais em: Ajuda e Suporte Técnico Microsoft

2007-10-20

 

Clicar no banner para aceder ao link.

Na próxima semana: 5 webcasts, um por dia, sempre às 15h

 
2007-10-17

Para aceder ao link, clicar no banner.

2007-10-06

Se pretendermos verificar o número de ocorrências num determinado Range, sejam as ocorrências "MG", "VM", "PR" e "MD", como no seguinte exemplo:

podemos utilizar a seguinte fórmula, adaptada a cada uma das ocorrências:

="MG" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="MG"))

="MV" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="VM"))

="PR" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="PR"))

="MD" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="MD"))

 

Tópicos relacionados:

2007-10-05

Se pretendermos apagar a Row que contém a célula activa na Sheet1 e, de igual modo, a Row na Sheet2 que contenha a primeira ocorrência igual à célula activa da Sheet1, podemos utilizar o seguinte Código:


'---------------------------------------------------------------------------------------
' Procedure : Test
' DateTime  : 05-10-2007 17:57
' Author    : JRod
' Purpose   : Apagar Row da célula activa na Sheet1 e 1ª Row da Sheet2
'           : cuja entrada seja igual à célula activa
'---------------------------------------------------------------------------------------
'
Sub Test()
    Dim c As Range, myRange As Range
    On Error Resume Next
    Set myRange = Sheets(2).Range("A1:A100")

    For Each c In myRange
        If c.Value = ActiveCell.Value Then
            c.EntireRow.Delete
        End If
    Next c
    ActiveCell.EntireRow.Delete
End Sub

 

Se quisermos executar o código, a partir do menú que se acede a partir do clicar no botão direito do rato, podemos incluir o seguinte código no Workbook:
 
'---------------------------------------------------------------------------------------
' Procedure : Workbook_Open
' DateTime  : 05-10-2007 18:00
' Author    : JRod
' Purpose   : Abre Macro com click no botão direito do rato
'---------------------------------------------------------------------------------------
'
Private Sub Workbook_Open()

    Dim MyMenu As Object

    Set MyMenu = Application.ShortcutMenus(xlWorksheetCell) _
                 .MenuItems.AddMenu("A minha Macro", 1)

    With MyMenu.MenuItems
        .Add "Test", "Test", , 1, , ""

    End With

    Set MyMenu = Nothing

End Sub

 

Tópicos relacionados:

2007-10-02

Recebi hoje a seguinte mensagem da Microsoft:

" Dear Jorge Rodrigues, 
Congratulations! We are pleased to present you with the
2008 Microsoft® MVP Award!".

 

Ou seja, fui galardoado, pelo 3º ano consecutivo, Microsoft MVP Excel!!!

 

URRA!!!

2007-09-25

Clicar no banner para aceder ao link


Data: 24 de Outubro (15h00-18h30)
Local: Auditório dos Oceanos, Casino de Lisboa - Parque das Nações
Produtos: Microsoft Expression, Silverlight
Destinatários: Designers

2007-09-14
Por mail, formularam a seguinte questão (adaptada): "Tenho uma folha em excel e gostaria de, quando eu digitasse o código de um trabalhador numa coluna de outra folha, fosse efectuada uma verificação na primeira folha, e, se a coluna com o nome "BAIXA", correspondente ao código digitado fosse diferente de "S", o código fosse guardado, mas, se fosse igual a "S" , aparecesse uma mensagem e apagasse esse mesmo código."
 

Vejamos o exemplo:

Na folha1:

 
Na folha 2:
 
O Código (inserido do seguinte modo na folha 2):
 

Private Sub Worksheet_Change(ByVal Target As Range)
'JRod - Microsoft [MVP] - Excel
'blog: http://EXCELer.blogspot.com
'site: http://www.exceler.org
'email1: mail@exceler.org
'email2: blog.exceler@netcabo.pt
'
    Const WS_RANGE As String = "A2:A10"

    Dim c As Range, myRange As Range

    On Error GoTo ws_exit

    Application.EnableEvents = False

    If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
        With Target
            Set myRange = Sheets(1).Range("A2:A10")
            For Each c In myRange
                If c.Value = ActiveCell.Offset(-1, 0).Value Then

                    If c.Offset(0, 1).Value = "S" Then
                        MsgBox "O trabalhador encontra-se de Baixa." & Chr(10) & "Inserção Impossível!", Buttons:=vbInformation
                        ActiveCell.Offset(-1, 0).Activate
                        ActiveCell.Value = ""
                    End If

                End If
            Next
        End With
    End If

ws_exit:
    Application.EnableEvents = True

End Sub

 

Tópicos relacionados:

2007-09-06
Num newsgroup, colocaram a seguinte questão (adaptada):
 
"Tenho uma folha em que na coluna A, tenho datas no seguinte formato"06-09-2007", na coluna B e na coluna C tenho valores. Não estou a conseguir, mediante a utilização da formula=SUMIF(A1:A1000;MONTH(6);B1:B1000), somar todos os valores da coluna B correspondentes ao mês 6" .
 
Rodrigo Ferreira [Brasil - gostaria de saber mais sobre este "adicto" do Excel...], apresentou a seguinte possível solução:
 

=SUMPRODUCT((MÊS(A1:A1000)=6)*B1:B1000)

 

Eu, resolvi apresentar a seguinte alternativa:

{=SUM((MONTH(A1:A1000)=6)*(B1:B1000))}'como um array, ou seja com CTRL+SHIFT+ENTER para obter {}


 

KL (MVP Kiril Lapin) mostrou, entre outras, uma terceira possível solução:
 

=SUMIF(A1:A1000;">="&DATE(2007;6;1);B1:B1000)-SUMIF(A1:A1000;">"&DATE(2007;6;30);B1:B1000)

 


Bom, a escolha é vossa!!!

 

Tópicos relacionados:

2007-08-25
Por mail, colocaram-me a seguinte pergunta (adaptada): "Estou pretendendo fazer o seguinte: Utilizar um formulário para alimentar dados numa folha. Existirá uma forma de quando mandar salvar (botão Adiciona), seja verificado se todos os campos foram preenchidos?"

A imagem do que se pretende:

 

 

O segmento de Código, apenas para o fim em vista:  

  For Each C In Me.Controls
     If TypeName(C) = "TextBox" Or TypeName(C) = "ComboBox" Then
       If C.Value = "" Then
         MsgBox "Por favor, preencha todos os campos!"
         C.SetFocus
         Exit Sub
       End If
     End If
   Next

Créditos para Bill Manville

 

Tópicos relacionados: