sexta-feira, 19 de setembro de 2025

👥📞 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! 🤝

Nenhum comentário:

Postar um comentário