Dicas do Microsoft Excel é ao Domingo…no Pplware – 53
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.
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)
O projecto inclui alguns formulários dos quais se destacam o Inserir Obra
…e também o formulário para edição/visualização e eliminação de um registo de uma obra.
/* 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 [/toggle] |
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
-
- Operações básica: SOMA, MÉDIA, MÁXIMO, MINIMO
- Actualização da formula de acordo com a linha e coluna
- Referências fixas
- Utilização de formulas e valores em várias folhas
- Destacar facilmente valores em Excel
- Dividir uma String (frase) em partes
- Função VLOOKUP (PROCV em Português)
- Converter formulas em números
- Criar listas de números aleatórios
- Funções lógicas do Excel: SE(), E(), OU()
- Adicionar totais a um gráfico de colunas empilhadas
- Formatar comentários
- Funções Financeiras (Funções PGTO() e TAXA())
- função DIA.DA.SEMANA e a função TEXTO
- Esconder informação na hora de imprimir
- Listas Personalizadas
- Preencher células em branco
- Mover, copiar ou colar os dados na sua folha de Excel
- Criar modelos de gráficos personalizados
- Adicionar dados a um gráfico
- Funcionalidades “escondidas” do Excel
- Definir Nomes para as células
- Função SOMARPRODUTO()
- Soma Automática
- Como lidar com datas num gráfico
- Função ORDEM
- Fixar os dados de um gráfico
- Proteger uma folha de Excel
- Validação de dados…Combobox com dados
- Concatenação e funcionalidade Localizar e Substituir
- Ordenação de valores
- Como criar uma Macro
- Função Compactar
- Definir a área de impressão dinamicamente
- Percentagem variável
- MAIÚSCULAS, MINÚSCULAS ou INICIAL.MAIÚSCULA e Função Potência
- Tabelas dinâmicas
- Trabalho colaborativo
- Activar e utilizar um suplemento
- Gráficos sparkline
- Personalizar Gráficos sparkline para mostrar tendências de dados
- Definir e utilizar nomes em fórmulas
- Função BDContar
- Função Não
- Fórmulas de Matriz – Array Formulas (Parte I)
- Formulas de Matriz – Array Formulas (Parte II)
- Modo Programador
- Criar formulários rapidinho
- Formulários em Excel
- Novidades do Excel 2013
- Calendários no Excel
- Funcionalidades PowerPivot
Este artigo tem mais de um ano
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
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.
Calma, nos vamos fazer isso. Já ensinamos por onde começar
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… 🙂
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
era preferivel estar a montar isso tudo em access acho eu
mas muito boas dicas venha de la as dicas de VBA
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
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.
Muito obrigado José Augusto, também tinha essa dúvida!
Muito obrigado José Augusto!
Abraço,
José