sexta-feira, 19 de setembro de 2025

🎮 Post 7 – Quiz Interativo em Python 🧠✨

 Hoje o nosso projeto é um quiz: você faz perguntas ao usuário, recebe as respostas e no final mostra a pontuação.

Esse tipo de lógica é a base para criar jogos, formulários, sistemas de testes e até chatbots!


🐣 Passo a passo do código

# Criamos uma variável para guardar a pontuação pontuacao = 0 # pontuacao começa em 0 e será incrementada cada vez que o usuário acertar. # Primeira pergunta resposta1 = input("Qual a capital do Brasil? ") # input() pede para o usuário digitar a resposta. # O valor será guardado na variável resposta1. if resposta1.lower() == "brasília": # lower() transforma o texto em letras minúsculas. # Assim, se o usuário digitar "Brasília" ou "brASÍLIA", será aceito. print("✅ Resposta correta!") # Mostra mensagem de acerto. pontuacao += 1 # += 1 adiciona 1 ponto na variável pontuacao. else: print("❌ Resposta errada! A resposta certa é Brasília.") # Segunda pergunta resposta2 = input("Quanto é 5 + 7? ") if resposta2 == "12": # Aqui não precisamos do lower(), pois estamos lidando com número em string. print("✅ Resposta correta!") pontuacao += 1 else: print("❌ Resposta errada! A resposta certa é 12.") # Mostramos a pontuação final print("🏆 Você acertou", pontuacao, "de 2 perguntas!") # O print junta o texto com o valor da variável pontuacao.

💻 Exemplo de execução

Qual a capital do Brasil? brasília ✅ Resposta correta! Quanto é 5 + 7? 11 ❌ Resposta errada! A resposta certa é 12. 🏆 Você acertou 1 de 2 perguntas!

📌 O que você aprendeu hoje?

  • Usar if, else e == para comparar respostas.

  • Utilizar lower() para evitar erros de maiúsculas/minúsculas.

  • Contar pontos com += 1.

  • Criar um joguinho simples com começo, meio e fim. 🎯


🎯 Desafio extra

  1. Acrescente mais perguntas ao quiz.

  2. Coloque uma mensagem especial se o usuário acertar todas as respostas.

  3. Use while para repetir o quiz até o usuário digitar "sair".


⏭️ O que vem por aí?

No próximo post vamos criar um Jogo de Adivinhação 🔮, onde o computador escolhe um número secreto e o usuário tenta descobrir.

👥📞 Automação Python com GUI (Tkinter): Controle de Clientes e Contatos 👥📞

Resumo rápido: Neste post vamos criar uma automação em Python com Tkinter GUI para gerenciar clientes e contatos. Você poderá cadastrar nomes, e-mails e telefones, pesquisar facilmente por nome e exportar a lista para um relatório Excel. Tudo explicado de forma simples, com código comentado linha a linha. 🚀


Por que essa automação é útil para sua empresa? 🤔

  • Organiza os contatos de clientes em um só lugar.

  • Substitui cadernos e planilhas confusas.

  • Permite pesquisa rápida por nome.

  • Gera relatórios organizados em Excel.


O que você terá com este projeto ✅

  1. Interface gráfica para cadastrar clientes.

  2. Lista organizada de contatos.

  3. Campo de pesquisa para localizar clientes.

  4. Exportação para Excel (clientes.xlsx).


Pré-requisitos 🛠️

Antes de rodar, instale as dependências:

pip install pandas openpyxl

A biblioteca tkinter já vem junto com o Python no Windows.


Código completo (salve como controle_clientes.py) 💻

# controle_clientes.py import tkinter as tk # 1: interface gráfica from tkinter import messagebox # 2: alertas import pandas as pd # 3: exportação para Excel # 4: lista que vai armazenar os clientes clientes = [] # 5: função para adicionar cliente def adicionar_cliente(): nome = entry_nome.get() # 6: pega nome email = entry_email.get() # 7: pega email telefone = entry_tel.get() # 8: pega telefone if not nome or not email or not telefone: messagebox.showwarning("Aviso", "Preencha todos os campos!") # 9: validação return cliente = { "Nome": nome, "Email": email, "Telefone": telefone } clientes.append(cliente) # 10: adiciona cliente na lista atualizar_lista() # 11: atualiza a lista limpar_campos() # 12: limpa os campos # 13: função para atualizar a lista de clientes def atualizar_lista(filtro=""): listbox.delete(0, tk.END) for i, c in enumerate(clientes): if filtro.lower() in c["Nome"].lower(): # 14: aplica filtro se houver listbox.insert(tk.END, f"{i+1}. {c['Nome']} | {c['Email']} | {c['Telefone']}") # 15: exportar contatos para Excel def exportar_excel(): if not clientes: messagebox.showwarning("Aviso", "Nenhum cliente para exportar!") return df = pd.DataFrame(clientes) df.to_excel("clientes.xlsx", index=False) messagebox.showinfo("Sucesso", "Contatos exportados para clientes.xlsx") # 16: limpar campos de entrada def limpar_campos(): entry_nome.delete(0, tk.END) entry_email.delete(0, tk.END) entry_tel.delete(0, tk.END) # 17: função de pesquisa def pesquisar(): termo = entry_pesquisa.get() atualizar_lista(termo) # 18: configuração da interface gráfica root = tk.Tk() root.title("Controle de Clientes e Contatos") root.geometry("800x500") # 19: campos de entrada tk.Label(root, text="Nome:").pack(anchor="w", padx=10) entry_nome = tk.Entry(root, width=50) entry_nome.pack(anchor="w", padx=10, pady=5) tk.Label(root, text="Email:").pack(anchor="w", padx=10) entry_email = tk.Entry(root, width=50) entry_email.pack(anchor="w", padx=10, pady=5) tk.Label(root, text="Telefone:").pack(anchor="w", padx=10) entry_tel = tk.Entry(root, width=30) entry_tel.pack(anchor="w", padx=10, pady=5) # 20: botões de ação btn_add = tk.Button(root, text="Adicionar Cliente", command=adicionar_cliente, bg="#4CAF50", fg="white") btn_add.pack(pady=5) btn_export = tk.Button(root, text="Exportar para Excel", command=exportar_excel, bg="#2196F3", fg="white") btn_export.pack(pady=5) # 21: campo de pesquisa tk.Label(root, text="Pesquisar por Nome:").pack(anchor="w", padx=10) entry_pesquisa = tk.Entry(root, width=40) entry_pesquisa.pack(anchor="w", padx=10, pady=5) btn_pesquisar = tk.Button(root, text="Pesquisar", command=pesquisar, bg="#FF9800", fg="white") btn_pesquisar.pack(pady=5) # 22: lista de clientes listbox = tk.Listbox(root, width=100, height=15) listbox.pack(padx=10, pady=10) root.mainloop() # 23: mantém a janela aberta

Explicação linha por linha 🧾

  • 1 a 3: importamos bibliotecas necessárias.

  • 4: criamos a lista de clientes.

  • 5 a 12: função que cadastra clientes, valida e limpa os campos.

  • 13 a 14: exibe clientes e aplica filtro se houver pesquisa.

  • 15: exporta os contatos para Excel.

  • 16: limpa os campos após cadastro.

  • 17: executa a pesquisa por nome.

  • 18 a 22: monta a interface gráfica com campos, botões e lista.

  • 23: mantém a janela aberta até o usuário fechar.


Como usar ✅

  1. Salve o código no arquivo controle_clientes.py.

  2. Instale as dependências:

pip install pandas openpyxl
  1. Execute o programa:

python controle_clientes.py
  1. Na janela que abrir:

    • Digite Nome, Email e Telefone.

    • Clique em Adicionar Cliente.

    • Use o campo Pesquisar para localizar rapidamente.

    • Clique em Exportar para Excel para gerar clientes.xlsx.


Possíveis melhorias futuras 🔧

  • Adicionar campo de endereço.

  • Incluir data de cadastro.

  • Exportar relatórios filtrados.

  • Conectar a um banco de dados para histórico completo.


🚀 Conclusão

Com este Controle de Clientes em Python, sua empresa poderá organizar todos os contatos de forma simples e prática. Nada de perder clientes por falta de organização!


📢 Serviços de Contabilidade

Além de compartilhar automações em Python, também ofereço meus serviços como contador:

  • Abertura de empresas no Simples Nacional;

  • Acompanhamento contábil mensal;

  • Planejamento tributário;

  • Orientação para profissionais de serviços.

👉 Entre em contato e organize também a parte contábil da sua empresa! 🤝

📊 SQL no Excel – Post 9: Cálculos com SUM, AVG, MIN e MAX

Essas funções permitem que você:

  • SUM → some valores de uma coluna

  • AVG → calcule a média

  • MIN → encontre o menor valor

  • MAX → encontre o maior valor

Com isso, podemos fazer estatísticas rápidas direto no Excel sem fórmulas.


🎯 Projeto do Dia: Estatísticas da idade dos clientes

1. Cenário

Tabela Clientes:

IDNomeCidadeIdade
1João SilvaSão Paulo32
2Maria SouzaRio de Janeiro27
3Carlos LimaBelo Horizonte41
4Ana SantosCuritiba36
5Fernanda AlvesSão Paulo29

Queremos saber:
✅ Soma das idades
✅ Média de idades
✅ Idade mínima
✅ Idade máxima


2. Código VBA com SQL

No Editor do VBA (ALT + F11), insira:

Sub EstatisticasClientes() ' Declaração de variáveis Dim conn As Object Dim rs As Object Dim strSQL As String Dim ws As Worksheet ' Criar conexão Set conn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") ' Conectar ao arquivo Excel conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";" ' SQL com funções de agregação strSQL = "SELECT SUM(Idade) AS SomaIdades, AVG(Idade) AS MediaIdades, MIN(Idade) AS MenorIdade, MAX(Idade) AS MaiorIdade FROM [Clientes$]" ' Executar consulta rs.Open strSQL, conn ' Criar aba de resultados Set ws = ThisWorkbook.Sheets.Add ws.Name = "Estatisticas" ' Copiar resultados ws.Range("A1").CopyFromRecordset rs ' Fechar conexões rs.Close conn.Close MsgBox "Consulta concluída com sucesso!", vbInformation End Sub

3. Explicando o Código 📝

  • SUM(Idade) → soma todas as idades.

  • AVG(Idade) → calcula a média das idades.

  • MIN(Idade) → retorna a menor idade.

  • MAX(Idade) → retorna a maior idade.

  • Cada função recebe um apelido (AS) para facilitar a leitura no Excel.


4. Resultado esperado 📋

Na aba Estatisticas, você verá:

SomaIdadesMediaIdadesMenorIdadeMaiorIdade
165332741

📌 O que você aprendeu hoje?

✅ Como usar funções de agregação no SQL: SUM, AVG, MIN, MAX
✅ Como calcular estatísticas no Excel usando SQL sem fórmulas
✅ Como gerar relatórios rápidos em segundos


👉 No próximo post (Post 10), vamos aprender a usar GROUP BY para calcular estatísticas por categoria — por exemplo, calcular a média de idade por cidade.


📢 Dica extra

Assim como você agora consegue somar, calcular médias e analisar seus dados com SQL, eu posso te ajudar a somar resultados na sua vida profissional com a contabilidade 📊.
Sou contador especializado em prestadores de serviços e posso auxiliar você com:
✅ Abertura de empresas no Simples Nacional
✅ Acompanhamento contábil mensal
✅ Planejamento tributário inteligente

💼 Fale comigo e organize sua contabilidade de forma simples e prática!

terça-feira, 16 de setembro de 2025

📘✨ Excel VBA na Prática: Usando o Método Calculate do Objeto Range

No Excel, muitas vezes precisamos forçar o recálculo de fórmulas sem depender do usuário apertar F9.

Com o VBA, podemos usar o método Calculate do objeto Range para recalcular um intervalo específico, sem atualizar toda a planilha ou pasta de trabalho. 🚀


🔎 Definição

  • Range.Calculate → Recalcula apenas o intervalo especificado, aplicando novamente todas as fórmulas dentro dele.

  • Isso pode economizar tempo em planilhas grandes, pois recalcular tudo (Application.Calculate) pode ser bem mais demorado.


🧑‍💻 Exemplos práticos

1️⃣ Recalcular apenas uma célula

Sub CalcularCelula() Range("C5").Calculate End Sub

👉 Resultado: Apenas a célula C5 será recalculada.


2️⃣ Recalcular um intervalo inteiro

Sub CalcularIntervalo() Range("B2:D10").Calculate End Sub

👉 Resultado: O Excel atualiza as fórmulas entre B2 e D10 sem recalcular o resto da planilha.


3️⃣ Recalcular fórmulas em uma coluna dinâmica

Sub CalcularColuna() Dim UltimaLinha As Long UltimaLinha = Cells(Rows.Count, "A").End(xlUp).Row Range("C2:C" & UltimaLinha).Calculate End Sub

👉 Resultado: Recalcula todas as fórmulas da coluna C, até a última linha preenchida da coluna A.


Quando usar Calculate?

  • Em planilhas muito grandes, quando você só precisa atualizar parte dos cálculos.

  • Em macros que inserem valores e precisam garantir que as fórmulas ligadas a eles já estejam corretas.

  • Em rotinas que exigem performance, evitando o recálculo global.

💡 Dica útil: Combine Calculate com loops para atualizar apenas áreas específicas de interesse em vez de tudo, tornando sua automação muito mais rápida.


🟢📢 Consultoria Contábil Inteligente
💼 Abertura e registro de empresas no Simples Nacional
📊 Acompanhamento contábil e fiscal mensal
⚖️ Planejamento tributário estratégico para pagar só o justo

👉 Entre em contato e organize sua empresa com eficiência! 

🎮 Apostila de Pygame para Leigos – Capítulo 4 Criando Cenários: Quadrados, Círculos e Outras Formas Divertidas

Até aqui você já tem:

  • Uma janela linda 🖼️

  • Um quadrado que se move ⬛

  • Regras que impedem ele de fugir 🚧

Mas convenhamos: uma tela preta com um quadrado verde ainda não é lá muito emocionante… 😅

Hoje vamos aprender a desenhar mais objetos e deixar nossa tela com cara de jogo de verdade!


🖥️ Código para Desenhar Formas

Crie o arquivo capitulo4.py e cole o seguinte código:

# Importando o pygame import pygame # Iniciando o pygame pygame.init() # Criando a janela largura_tela = 800 altura_tela = 600 tela = pygame.display.set_mode((largura_tela, altura_tela)) pygame.display.set_caption("Capítulo 4 - Desenhando Formas 🎨") # Definindo cores cor_fundo = (240, 240, 240) # Cinza clarinho para o fundo cor_quadrado = (0, 100, 200) # Azul escuro cor_circulo = (200, 50, 50) # Vermelho cor_linha = (0, 200, 0) # Verde # Loop do jogo rodando = True while rodando: # Captura eventos for evento in pygame.event.get(): if evento.type == pygame.QUIT: rodando = False # Preenche o fundo tela.fill(cor_fundo) # Desenha um quadrado (x=100, y=100, largura=100, altura=100) pygame.draw.rect(tela, cor_quadrado, (100, 100, 100, 100)) # Desenha um círculo (centro em (400, 300), raio=60) pygame.draw.circle(tela, cor_circulo, (400, 300), 60) # Desenha uma linha (ponto inicial=(50, 500), ponto final=(750, 500), espessura=5) pygame.draw.line(tela, cor_linha, (50, 500), (750, 500), 5) # Atualiza a tela pygame.display.update() # Sai do jogo pygame.quit()

🔎 Explicando linha por linha

  • pygame.draw.rect(tela, cor_quadrado, (100, 100, 100, 100)) → desenha um retângulo/quadrado.

    • (100, 100) → posição inicial (canto superior esquerdo).

    • (100, 100) → largura e altura.

  • pygame.draw.circle(tela, cor_circulo, (400, 300), 60) → desenha um círculo.

    • (400, 300) → centro do círculo.

    • 60 → raio.

  • pygame.draw.line(tela, cor_linha, (50, 500), (750, 500), 5) → desenha uma linha.

    • (50, 500) → ponto inicial.

    • (750, 500) → ponto final.

    • 5 → espessura da linha.


🎉 O que vai acontecer?

  • A tela ficará clarinha e simpática.

  • Um quadrado azul vai aparecer no canto superior.

  • Um círculo vermelho estará no meio da tela.

  • Uma linha verde grossa vai atravessar a parte de baixo.

Parabéns! Agora você sabe criar cenários. 🌟


💡 Exercício Divertido

  1. Desenhe três círculos coloridos como se fossem semáforos (vermelho, amarelo, verde).

  2. Faça uma linha diagonal atravessando a tela.

  3. Tente criar uma “casinha” desenhando um quadrado e um triângulo em cima (sim, dá para usar pygame.draw.polygon).


🎯 Conclusão do Capítulo

Hoje você aprendeu a:
✅ Desenhar quadrados, círculos e linhas.
✅ Usar cores para deixar o jogo mais alegre.
✅ Dar os primeiros passos rumo a criar cenários completos.

Agora você já pode começar a imaginar mapas, pistas, plataformas e elementos visuais para os seus futuros jogos.

Você é incrível! 🌟 Continue assim que daqui a pouco vai estar criando mundos inteiros.


👉 No Capítulo 5 vamos juntar movimento + formas geométricas e transformar o quadrado em jogador oficial com cenário.


📣 Assim como você está aprendendo a criar cenários organizados nos jogos, na vida real também precisa ter organização.
Se você é psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro prestador de serviços e precisa abrir empresa no Simples Nacional, organizar sua contabilidade ou fazer planejamento tributário, conte comigo! Sou contador especializado em profissionais de serviços e posso te ajudar a economizar impostos e ganhar tranquilidade. 😉

🕵️‍♂️ Automação Inédita em VBA: Rastreamento de Quem Abriu a Planilha na Rede

 🧐 O Problema

Em empresas, planilhas críticas ficam em pastas de rede.

  • Várias pessoas abrem o mesmo arquivo.

  • Ninguém sabe quem acessou e quando.

  • Isso pode gerar confusão ou até risco de alterações não controladas.


💡 A Solução

Criar um log automático de acessos dentro da própria planilha:

  • Toda vez que o arquivo for aberto, o VBA registra:

    • Nome do usuário da rede 👤

    • Computador usado 💻

    • Data e hora do acesso 🕒

  • O log fica salvo em uma aba protegida chamada "Acessos".

Assim, o gestor sabe exatamente quem abriu a planilha e quando.


🚀 Como Funciona

  1. Ao abrir a planilha, a macro Workbook_Open é executada.

  2. O log é registrado automaticamente.

  3. Os usuários não precisam fazer nada — o controle é invisível.


🧑‍💻 Código VBA

Esse código deve ser colocado no ThisWorkbook do VBA:

Private Sub Workbook_Open() Dim ws As Worksheet Dim ultimaLinha As Long Dim usuario As String, computador As String ' Cria ou define a aba de log On Error Resume Next Set ws = ThisWorkbook.Sheets("Acessos") If ws Is Nothing Then Set ws = Sheets.Add ws.Name = "Acessos" ws.Range("A1:C1").Value = Array("Usuário", "Computador", "Data/Hora") End If On Error GoTo 0 ' Coleta dados do acesso usuario = Environ("USERNAME") computador = Environ("COMPUTERNAME") ' Registra no log ultimaLinha = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 ws.Cells(ultimaLinha, 1).Value = usuario ws.Cells(ultimaLinha, 2).Value = computador ws.Cells(ultimaLinha, 3).Value = Now End Sub

📊 Exemplo de saída (Acessos)

UsuárioComputadorData/Hora
joao.silvaPC0112/09/2025 09:12:15
maria.rNOTEBOOKRH12/09/2025 09:25:42
adminSRV-FIN12/09/2025 09:40:03

🎯 Onde é útil?

✅ Controle de acessos a planilhas financeiras.
✅ RH → verificar quem consultou folhas de pagamento.
✅ TI → rastrear acessos em arquivos sensíveis.
✅ Escritórios → saber quem realmente usou a planilha.


🔥 Por que é inédito?

Pouca gente usa Excel como ferramenta de auditoria de acessos em rede.
Esse recurso normalmente é feito em sistemas de TI, mas aqui pode ser integrado direto nas planilhas do dia a dia.


📢 Se você é prestador de serviços no Simples Nacional — como psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro profissional liberal — saiba que eu posso ajudar na sua contabilidade!

👉 Faço abertura e registro de empresas no Simples Nacional, acompanhamento mensal, apuração de tributos e planejamento tributário.
Com minha consultoria, você foca no seu trabalho e deixa a parte burocrática comigo. 😉

📝 Post 6 – Agenda de Contatos em Python 📒

 Chegou a hora de criar um mini-sistema de agenda de contatos.

Com ele você vai poder salvar nomes e telefones em um arquivo .txt, e depois abrir esse arquivo para ver a lista de contatos.

Esse é o primeiro passo para entender como funcionam bancos de dados e armazenamento de informações.


🐣 Passo a passo do código

# Primeiro pedimos o nome do contato nome = input("Digite o nome do contato: ") # input() pergunta ao usuário o nome do contato. # O valor digitado será guardado na variável "nome". # Agora pedimos o telefone do contato telefone = input("Digite o telefone do contato: ") # O número digitado será guardado na variável "telefone". # Abrimos (ou criamos) o arquivo de texto "agenda.txt" no modo de adicionar (append) with open("agenda.txt", "a") as arquivo: # open() abre o arquivo. # "agenda.txt" é o nome do arquivo onde vamos salvar os contatos. # O modo "a" significa append (adicionar no final sem apagar o que já existe). # with garante que o arquivo será fechado automaticamente depois do uso. arquivo.write(nome + " - " + telefone + "\n") # write() escreve dentro do arquivo. # Concatenamos (juntamos) o nome + traço + telefone + quebra de linha (\n). print("✅ Contato salvo com sucesso!") # Mensagem de confirmação para o usuário.

💻 Exemplo de execução

Digite o nome do contato: Maria Digite o telefone do contato: 99999-8888 ✅ Contato salvo com sucesso!

Se você abrir o arquivo agenda.txt, vai encontrar:

Maria - 99999-8888

📌 O que você aprendeu hoje?

  • Usar open() para abrir/criar arquivos.

  • Usar o modo "a" para adicionar dados sem apagar os anteriores.

  • Gravar informações com write().

  • Criar um mini-sistema onde os dados ficam salvos mesmo depois que o programa fecha.


🎯 Desafio extra

  1. Permita salvar vários contatos de uma vez, usando um laço while.

  2. Crie uma opção para listar todos os contatos na tela, lendo o arquivo com read().

  3. Melhore o layout da gravação (ex: alinhar colunas ou adicionar separadores).


⏭️ O que vem por aí?

No próximo post vamos criar um Quiz interativo 🎮, onde o usuário responde perguntas e o Python dá a pontuação no final.


💬 Me conta: quem foi o primeiro contato que você salvou na sua agenda? 😅