Dicas do Microsoft Excel é ao Domingo…no Pplware – 53

10 Comentários

Ora vivam caros leitores. Mais um Domingo e mais uma artigo da rubrica “Dicas do Microsoft Excel é ao Domingo….no Pplware”. Lembramos que esta é uma rubrica “aberta” a todos os leitores que pretendam contribuir. Para tal devem enviar-nos um e-mail com a dica que pretendem ver publicada. Caso tenham também alguma dúvida ou problema a resolver no Excel, deixem essa informação nos comentários para que a comunidade Pplware ajude a resolver.

excel_00

Depois de termos ensinado no tutorial 49 como criar formulários, o nosso leitor Luís Candido partilho gentilmente um projecto com toda a comunidade do Pplware. O projecto desenvolvido tem disponível todo o código fonte e serve para fazer gestão de obras (podendo ser adaptado por vocês para outras finalidades)

obras

O projecto inclui alguns formulários dos quais se destacam o Inserir Obra

excel_01

…e também o formulário para edição/visualização e eliminação de um registo de uma obra.

excel_02

 

Código usado para os formulários

/* INSERIR */
Private Sub btninserir_Click()

If Me.cmbmeses.Value = "" Then
MsgBox "Seleccione um mês válido.", vbInformation
End If

'------------------------- JAN -------------------------

If Me.cmbmeses.Value = "Janeiro" Then
If (Me.txtcliente = "" Or Me.cmbarea.Value = "" Or Me.txtvalor = "") Then
MsgBox "Preencha todos os campos - Dados da obra", vbInformation

Else
For linha = 3 To 17
If (Folha1.Cells(linha, "B") = "") Then

Folha1.Cells(linha, "B") = Me.txtcliente
Folha1.Cells(linha, "C") = Me.txtangariada.Text
Folha1.Cells(linha, "D") = Me.cmbarea.Text
Folha1.Cells(linha, "E") = Me.txtvalor.Value

Folha1.Cells(linha, "J") = Me.txtp1v.Value
Folha1.Cells(linha, "K") = Me.txtp1a.Value
Folha1.Cells(linha, "L") = Me.txtp1d.Text
Folha1.Cells(linha, "R") = Me.txtp2v.Value
Folha1.Cells(linha, "S") = Me.txtp2a.Value
Folha1.Cells(linha, "T") = Me.txtp2d.Text

Folha1.Cells(linha, "AA") = Me.txtq1.Value
Folha1.Cells(linha, "AB") = Me.txtd1.Text
Folha1.Cells(linha, "AC") = Me.txtq2.Value
Folha1.Cells(linha, "AD") = Me.txtd2.Text
Folha1.Cells(linha, "AE") = Me.txtq3.Value
Folha1.Cells(linha, "AF") = Me.txtd3.Text
Folha1.Cells(linha, "AG") = Me.txtq4.Value
Folha1.Cells(linha, "AH") = Me.txtd4.Text
Folha1.Cells(linha, "AI") = Me.txtq5.Value
Folha1.Cells(linha, "AJ") = Me.txtd5.Text
Folha1.Cells(linha, "AK") = Me.txtq6.Value
Folha1.Cells(linha, "AL") = Me.txtd6.Text

Folha1.Cells(21, "E") = Me.txtkms.Value

MsgBox "Obra inserida com sucesso", vbInformation
Me.Hide
Exit For

ElseIf (linha = 17) Then

MsgBox "Não há espaço para inserir mais obras no mês de Janeiro!", vbCritical
Me.Hide
Exit For

End If
Next linha

End If
End If

/* VER */

Private Sub btnver_Click()

If Me.cmbmes.Value = "Janeiro" Then
For linha = 3 To 17
If cmbobra.Value = Folha1.Cells(linha, "B") Then
Me.txtcliente = Folha1.Cells(linha, "B")
Me.txtangariada = Folha1.Cells(linha, "C")
Me.cmbarea.Text = Folha1.Cells(linha, "D")
Me.txtvalor.Value = Folha1.Cells(linha, "E").Value
Me.txtkms = Folha1.Cells(21, "E")

Me.txtp1v.Value = Folha1.Cells(linha, "J")
Me.txtp1a.Value = Folha1.Cells(linha, "K")
Me.txtp1d.Text = Folha1.Cells(linha, "L")
Me.txtp2v.Value = Folha1.Cells(linha, "R")
Me.txtp2a.Value = Folha1.Cells(linha, "S")
Me.txtp2d.Text = Folha1.Cells(linha, "T")

Me.txtq1.Value = Folha1.Cells(linha, "AA")
Me.txtd1.Text = Folha1.Cells(linha, "AB")
Me.txtq2.Value = Folha1.Cells(linha, "AC")
Me.txtd2.Text = Folha1.Cells(linha, "AD")
Me.txtq3.Value = Folha1.Cells(linha, "AE")
Me.txtd3.Text = Folha1.Cells(linha, "AF")
Me.txtq4.Value = Folha1.Cells(linha, "AG")
Me.txtd4.Text = Folha1.Cells(linha, "AH")
Me.txtq5.Value = Folha1.Cells(linha, "AI")
Me.txtd5.Text = Folha1.Cells(linha, "AJ")
Me.txtq6.Value = Folha1.Cells(linha, "AK")
Me.txtd6.Text = Folha1.Cells(linha, "AL")
End If
Next linha
End If

/* EDITAR */

Private Sub btneditar_Click()

Dim Answer As String
Dim MyNote As String

'Place your text here
MyNote = "Está prestes a editar uma obra. Continuar?"

'Display MessageBox
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "Editar obra")

If Answer = vbNo Then
'Code for No button Press
MsgBox "Operação cancelada."
Else

If Me.cmbmes.Value = "Janeiro" Then
For linha = 3 To 17
If cmbobra.Value = Folha1.Cells(linha, "B") Then
Folha1.Cells(linha, "B") = Me.txtcliente
Folha1.Cells(linha, "C") = Me.txtangariada.Text
Folha1.Cells(linha, "D") = Me.cmbarea.Text
Folha1.Cells(linha, "E") = Me.txtvalor.Value

Folha1.Cells(linha, "J") = Me.txtp1v.Value
Folha1.Cells(linha, "K") = Me.txtp1a.Value
Folha1.Cells(linha, "L") = Me.txtp1d.Text
Folha1.Cells(linha, "R") = Me.txtp2v.Value
Folha1.Cells(linha, "S") = Me.txtp2a.Value
Folha1.Cells(linha, "T") = Me.txtp2d.Text

Folha1.Cells(linha, "AA") = Me.txtq1.Value
Folha1.Cells(linha, "AB") = Me.txtd1.Text
Folha1.Cells(linha, "AC") = Me.txtq2.Value
Folha1.Cells(linha, "AD") = Me.txtd2.Text
Folha1.Cells(linha, "AE") = Me.txtq3.Value
Folha1.Cells(linha, "AF") = Me.txtd3.Text
Folha1.Cells(linha, "AG") = Me.txtq4.Value
Folha1.Cells(linha, "AH") = Me.txtd4.Text
Folha1.Cells(linha, "AI") = Me.txtq5.Value
Folha1.Cells(linha, "AJ") = Me.txtd5.Text
Folha1.Cells(linha, "AK") = Me.txtq6.Value
Folha1.Cells(linha, "AL") = Me.txtd6.Text
End If
Next linha
End If

/* APAGAR */

Private Sub btnapagar_Click()

Dim Answer As String
Dim MyNote As String

'Place your text here
MyNote = "Está prestes a apagar uma obra. Continuar?"

'Display MessageBox
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "Apagar obra")

If Answer = vbNo Then
'Code for No button Press
MsgBox "Operação cancelada."
Else

If Me.cmbmes.Value = "Janeiro" Then
For linha = 3 To 17
If cmbobra.Value = Folha1.Cells(linha, "B") Then

Folha1.Cells(linha, "B") = ""
Folha1.Cells(linha, "C") = ""
Folha1.Cells(linha, "D") = ""
Folha1.Cells(linha, "E") = ""

Folha1.Cells(linha, "J") = ""
Folha1.Cells(linha, "K") = ""
Folha1.Cells(linha, "L") = ""
Folha1.Cells(linha, "R") = ""
Folha1.Cells(linha, "S") = ""
Folha1.Cells(linha, "T") = ""

Folha1.Cells(linha, "AA") = ""
Folha1.Cells(linha, "AB") = ""
Folha1.Cells(linha, "AC") = ""
Folha1.Cells(linha, "AD") = ""
Folha1.Cells(linha, "AE") = ""
Folha1.Cells(linha, "AF") = ""
Folha1.Cells(linha, "AG") = ""
Folha1.Cells(linha, "AH") = ""
Folha1.Cells(linha, "AI") = ""
Folha1.Cells(linha, "AJ") = ""
Folha1.Cells(linha, "AK") = ""
Folha1.Cells(linha, "AL") = ""
End If
Next linha
End If

Por hoje é tudo! Esperamos que as dicas sejam úteis e que vos ajudem a dominar o Microsoft Excel. Como referi anteriormente, esta dica está aberta a todos os que pretendam contribuir. Enviem-nos as vossas dicas para ppinto @ pplware .com para publicarmos em próximos artigos.

Mais uma vez o nosso agradecimento ao leitor Luís Candido pela disponibilização do seu projecto. Download do projecto completo aqui

Outros artigos sobre Excel

    1. Operações básica: SOMA, MÉDIA, MÁXIMO, MINIMO
    2. Actualização da formula de acordo com a linha e coluna
    3. Referências fixas
    4. Utilização de formulas e valores em várias folhas
    5. Destacar facilmente valores em Excel
    6. Dividir uma String (frase) em partes
    7. Função VLOOKUP (PROCV em Português)
    8. Converter formulas em números
    9. Criar listas de números aleatórios
    10. Funções lógicas do Excel: SE(), E(), OU()
    11. Adicionar totais a um gráfico de colunas empilhadas
    12. Formatar comentários
    13. Funções Financeiras (Funções PGTO() e TAXA())
    14. função DIA.DA.SEMANA e a função TEXTO
    15. Esconder informação na hora de imprimir
    16. Listas Personalizadas
    17. Preencher células em branco
    18. Mover, copiar ou colar os dados na sua folha de Excel
    19. Criar modelos de gráficos personalizados
    20. Adicionar dados a um gráfico
    21. Funcionalidades “escondidas” do Excel
    22. Definir Nomes para as células
    23. Função SOMARPRODUTO()
    24. Soma Automática
    25. Como lidar com datas num gráfico
    26. Função ORDEM
    27. Fixar os dados de um gráfico
    28. Proteger uma folha de Excel
    29. Validação de dados…Combobox com dados
    30. Concatenação e funcionalidade Localizar e Substituir
    31. Ordenação de valores
    32. Como criar uma Macro
    33. Função Compactar
    34. Definir a área de impressão dinamicamente
    35. Percentagem variável
    36. MAIÚSCULAS, MINÚSCULAS ou INICIAL.MAIÚSCULA e Função Potência
    37. Tabelas dinâmicas
    38. Trabalho colaborativo
    39. Activar e utilizar um suplemento
    40. Gráficos sparkline
    41. Personalizar Gráficos sparkline para mostrar tendências de dados
    42. Definir e utilizar nomes em fórmulas
    43. Função BDContar
    44. Função Não
    45. Fórmulas de Matriz – Array Formulas (Parte I)
    46. Formulas de Matriz – Array Formulas (Parte II)
    47. Modo Programador
    48. Criar formulários rapidinho
    49. Formulários em Excel
    50. Novidades do Excel 2013
    51. Calendários no Excel
    52. Funcionalidades PowerPivot

Partilhar:
Tags:

Comentários

10

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Carlos
    Carlos

    Muito Obrigado por estas dicas.
    O que era muito bom agora ers ensinar como introduzir este codigo no programa para fazer isto funcionar.
    Peço desculpa pela minha ignorancia mas não devo ser o unico.
    Mais uma vez Obrigado

    1. Avatar de Pedro Antunes
      Pedro Antunes

      Concordo que pode ser complicado para iniciados perceber o conteúdo deste artigo. Limitaram-se a colocar algum código escarrapachado e sem explicarem nada.
      Tudo bem que o ficheiro completo está disponível, mas assim este artigo torna-se apenas num repositório e não dá nenhuma dica.

      1. Avatar de Pedro Pinto

        Calma, nos vamos fazer isso. Já ensinamos por onde começar

  2. Avatar de joao
    joao

    Boa tarde e obrigado pela oportunidade.
    venho aqui colocar uma duvida: sera possivel na mesma folha fazer varios “freezing pane” ou seja fazer com que varios cabecalhos possam trabalhar independentes de foma a criar na mesma folha varios projectos com folhas independentes e infinitas como se fossem gavetas de uma comoda.

    obrigado espero que tenham entendido a duvida… 🙂

  3. Avatar de António Almeida
    António Almeida

    Com todo o respeito pela opinião do Pedro Antunes, mesmo isto que pode ser pouco como formação, mostra-nos possibilidades. O que é muito bom.

    Obrigado

  4. Avatar de Joel Neto Henriques
    Joel Neto Henriques

    era preferivel estar a montar isso tudo em access acho eu
    mas muito boas dicas venha de la as dicas de VBA

  5. Avatar de Henrique
    Henrique

    Eu tenho uma dúvida um bocado estúpida mas lá vai:

    Eu fiz uma tabela com nomes de pessoas, em ordem cronológica. Depois calculei os tempos efectivos entre uma data de início e uma data de fim, que deu o resultado em anos, meses e dias, numa sequência temporal. Tudo certo.

    Ora, como é que eu somo agora as várias sequências temporais de uma mesma pessoa? Imaginemos que uma pessoa regressa duas, três, vinte, um milhar de vezes, etc., como é que eu somo, por exemplo,

    numa vez, 5 meses e dois dias
    noutra vez, 1 ano 4 meses e 13 dias
    noutra, 4 anos 8 meses 23 dias

    E assim sucessivamente? como é que eu somo esses vários resultados de dias, meses e anos de linhas diferentes, para saber o tempo total?

    :s

  6. Avatar de José Augusto
    José Augusto

    A resposta é que a diferença entre duas datas é um número, embora o Microsoft Excel entenda que deve formatar o resultado como uma data.
    Assim, pode somar as várias diferenças entre datas e formatar o resultado como número.
    Espero ter ajudado.

    1. Avatar de Carlos
      Carlos

      Muito obrigado José Augusto, também tinha essa dúvida!

  7. Avatar de José Toshiba
    José Toshiba

    Muito obrigado José Augusto!

    Abraço,
    José