terça-feira, 16 de setembro de 2025

🕵️‍♂️ 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? 😅

📦📊 Automação Python com GUI (Tkinter): Controle de Estoque Simplificado 📦📊

 Resumo rápido: Neste post vamos criar uma automação em Python com Tkinter GUI que funciona como um Controle de Estoque Simplificado. Você poderá cadastrar produtos, registrar entradas e saídas, visualizar o saldo de cada item e exportar tudo para um relatório Excel. Tudo isso com explicação clara, código comentado linha a linha e pronto para uso. 🚀


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

  • Evita erros no controle de produtos.

  • Permite ver estoque atual em tempo real.

  • Substitui controles manuais em papel ou planilhas bagunçadas.

  • Gera relatórios organizados em Excel com apenas um clique.


O que você terá com este projeto ✅

  1. Uma interface gráfica para cadastrar produtos.

  2. Registro de entradas e saídas de mercadorias.

  3. Cálculo automático do estoque atualizado.

  4. Exportação para Excel (estoque.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_estoque.py) 💻

# controle_estoque.py import tkinter as tk # 1: interface gráfica from tkinter import messagebox # 2: mensagens de alerta import pandas as pd # 3: gerar relatórios em Excel # 4: lista que vai armazenar os produtos # Cada item será um dicionário: {Produto, Quantidade, Preço, Total} estoque = [] # 5: função para registrar entrada ou saída def registrar_movimento(tipo): produto = entry_produto.get() # 6: pega nome do produto qtd = entry_qtd.get() # 7: pega quantidade preco = entry_preco.get() # 8: pega preço unitário if not produto or not qtd or not preco: messagebox.showwarning("Aviso", "Preencha todos os campos!") # 9: validação return try: qtd = int(qtd) preco = float(preco) except: messagebox.showwarning("Aviso", "Digite valores válidos (número inteiro para quantidade, número decimal para preço).") return if tipo == "Saída": qtd = -qtd # 10: saída diminui estoque # 11: verifica se produto já existe no estoque for item in estoque: if item["Produto"] == produto: item["Quantidade"] += qtd item["Preço"] = preco item["Total"] = item["Quantidade"] * preco atualizar_lista() limpar_campos() return # 12: se produto não existe, cria novo novo_item = { "Produto": produto, "Quantidade": qtd, "Preço": preco, "Total": qtd * preco } estoque.append(novo_item) atualizar_lista() limpar_campos() # 13: função para atualizar a lista exibida def atualizar_lista(): listbox.delete(0, tk.END) for i, item in enumerate(estoque): listbox.insert(tk.END, f\"{i+1}. {item['Produto']} | Qtd: {item['Quantidade']} | Preço: R$ {item['Preço']:.2f} | Total: R$ {item['Total']:.2f}\") # 14: função para exportar relatório em Excel def exportar_excel(): if not estoque: messagebox.showwarning(\"Aviso\", \"Nenhum dado para exportar!\") return df = pd.DataFrame(estoque) df.to_excel(\"estoque.xlsx\", index=False) messagebox.showinfo(\"Sucesso\", \"Relatório salvo como estoque.xlsx\") # 15: limpar campos de entrada def limpar_campos(): entry_produto.delete(0, tk.END) entry_qtd.delete(0, tk.END) entry_preco.delete(0, tk.END) # 16: configuração da interface gráfica root = tk.Tk() root.title(\"Controle de Estoque Simplificado\") root.geometry(\"800x500\") # 17: campos de entrada tk.Label(root, text=\"Produto:\").pack(anchor=\"w\", padx=10) entry_produto = tk.Entry(root, width=40) entry_produto.pack(anchor=\"w\", padx=10, pady=5) tk.Label(root, text=\"Quantidade:\").pack(anchor=\"w\", padx=10) entry_qtd = tk.Entry(root, width=20) entry_qtd.pack(anchor=\"w\", padx=10, pady=5) tk.Label(root, text=\"Preço Unitário (R$):\").pack(anchor=\"w\", padx=10) entry_preco = tk.Entry(root, width=20) entry_preco.pack(anchor=\"w\", padx=10, pady=5) # 18: botões btn_entrada = tk.Button(root, text=\"Registrar Entrada\", command=lambda: registrar_movimento(\"Entrada\"), bg=\"#4CAF50\", fg=\"white\") btn_entrada.pack(pady=5) btn_saida = tk.Button(root, text=\"Registrar Saída\", command=lambda: registrar_movimento(\"Saída\"), bg=\"#F44336\", fg=\"white\") btn_saida.pack(pady=5) btn_exportar = tk.Button(root, text=\"Exportar para Excel\", command=exportar_excel, bg=\"#2196F3\", fg=\"white\") btn_exportar.pack(pady=5) # 19: lista do estoque listbox = tk.Listbox(root, width=100, height=15) listbox.pack(padx=10, pady=10) root.mainloop() # 20: mantém a janela aberta

Explicação linha por linha 🧾

  • 1 a 3: importamos as bibliotecas necessárias.

  • 4: criamos a lista que vai armazenar os produtos do estoque.

  • 5 a 12: função para registrar entrada ou saída de produtos.

  • 13: atualiza a lista exibida na tela.

  • 14: exporta o estoque para Excel.

  • 15: limpa os campos após registrar.

  • 16 a 19: monta a interface com campos, botões e lista.

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


Como usar ✅

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

  2. Instale as dependências:

pip install pandas openpyxl
  1. Execute o programa:

python controle_estoque.py
  1. Na janela que abrir:

    • Digite o nome do produto.

    • Informe a quantidade e o preço unitário.

    • Clique em Registrar Entrada ou Registrar Saída.

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


Possíveis melhorias futuras 🔧

  • Adicionar campo de código de barras.

  • Criar relatórios mensais de movimentação.

  • Incluir gráficos de estoque.

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


🚀 Conclusão

Com este Controle de Estoque em Python, sua empresa terá mais segurança no acompanhamento das mercadorias. É simples, rápido e pode crescer conforme suas necessidades.


📢 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 leve organização também para a parte contábil da sua empresa! 🤝

📊 SQL no Excel – Post 8: Contando Registros com COUNT

 O comando COUNT é usado para contar quantas linhas existem em uma tabela ou resultado filtrado.

Com ele, podemos responder perguntas como:

  • Quantos clientes eu tenho?

  • Quantas cidades diferentes aparecem na minha lista?


🎯 Projeto do Dia: Contar clientes e cidades únicas

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:

  1. Quantos clientes existem no total.

  2. Quantas cidades únicas temos na lista.


2. Código VBA com SQL

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

Sub ContarClientesCidades() ' 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 para contar registros strSQL = "SELECT COUNT(*) AS TotalClientes, COUNT(DISTINCT Cidade) AS TotalCidades FROM [Clientes$]" ' Executar consulta rs.Open strSQL, conn ' Criar aba de resultados Set ws = ThisWorkbook.Sheets.Add ws.Name = "Contagem" ' 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 📝

  • COUNT(*) → conta o número total de linhas (clientes).

  • COUNT(DISTINCT Cidade) → conta quantos valores únicos de cidade existem.

  • Os resultados são exibidos com apelidos (AS TotalClientes, AS TotalCidades) para ficarem mais legíveis.


4. Resultado esperado 📋

A aba Contagem mostrará:

TotalClientesTotalCidades
54

Ou seja:
✅ Temos 5 clientes no total.
✅ Eles estão espalhados em 4 cidades diferentes.


📌 O que você aprendeu hoje?

✅ Como usar COUNT para contar registros.
✅ Diferença entre COUNT(*) e COUNT(DISTINCT coluna).
✅ Como gerar relatórios de quantidade no Excel com SQL.


👉 No próximo post (Post 9), vamos aprender a usar SUM, AVG, MIN e MAX para fazer cálculos numéricos diretamente no SQL — como somar idades, calcular média, achar a menor e maior idade.


📢 Dica extra

Assim como o COUNT ajuda a entender quantidades nos dados, eu posso ajudar você a entender e controlar melhor os números da sua empresa 📊.
Sou contador especializado em profissionais de serviços e posso te auxiliar com:
✅ Abertura de empresas no Simples Nacional
✅ Acompanhamento contábil mensal
✅ Planejamento tributário para pagar menos impostos

💼 Entre em contato e simplifique sua contabilidade!

segunda-feira, 15 de setembro de 2025

🚧 Post 7 – O que é Firewall e por que ele é essencial na sua segurança digital

Muitas vezes ouvimos falar de “firewall”, mas nem todos entendem exatamente o que ele faz. Ele é uma das ferramentas mais importantes para controlar o tráfego de informações que entra e sai do seu computador ou celular.


📌 O que é um Firewall?

  • O termo significa “parede de fogo” 🔥.

  • Ele funciona como um porteiro digital, analisando cada tentativa de conexão com seu dispositivo.

  • Decide o que pode entrar (conexões externas para seu PC) e o que pode sair (programas tentando acessar a internet).


⚠️ Por que é importante?

Sem firewall, qualquer programa malicioso pode se conectar livremente à internet ou receber comandos de invasores.
➡️ Com firewall ativo, o risco de invasões e vazamento de dados diminui drasticamente.


🎭 Tipos de Firewall

  1. Firewall de software 🖥️

    • Instalado no próprio computador (ex.: Firewall do Windows).

    • Monitora e bloqueia conexões suspeitas em tempo real.

  2. Firewall de hardware 📡

    • Normalmente presente em roteadores ou equipamentos de rede.

    • Protege todos os dispositivos conectados à rede.

  3. Firewall externo (empresarial) 🏢

    • Usado em empresas para controlar toda a comunicação de rede.

    • Permite definir regras complexas de segurança.


🧰 Como usar um Firewall corretamente

✔️ Mantenha o firewall do Windows sempre ativado (vem habilitado por padrão).
✔️ Configure permissões com cuidado – permita acesso apenas a programas confiáveis.
✔️ Verifique alertas: se aparecer um pedido de conexão de um software desconhecido, negue.
✔️ No celular, use sempre as opções de segurança do próprio sistema operacional.


🔍 Exemplo prático

Você instala um programa de edição de fotos.

  • Se esse programa tentar se conectar a um servidor desconhecido sem necessidade, o firewall pode bloquear.

  • Assim, você evita que dados pessoais sejam enviados secretamente para fora.


📜 Conclusão

O firewall é um dos primeiros escudos de defesa em segurança digital. Com ele ativo, você reduz bastante a chance de invasões e de programas maliciosos se comunicarem com criminosos.

🔜 No próximo post (8), vamos aprender a configurar e entender as opções do Firewall do Windows.


📢 Serviços de Contabilidade Especializados

Além de falar sobre segurança digital, também ofereço consultoria contábil especializada para profissionais de serviços no Simples Nacional.

Se você é psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro prestador de serviços profissionais, posso ajudar você com:

  • 📌 Abertura e registro de empresa no Simples Nacional

  • 📌 Acompanhamento contábil mensal

  • 📌 Tributação estratégica e planejamento financeiro

  • 📌 Consultoria personalizada para reduzir impostos de forma legal

👉 Entre em contato e tenha tranquilidade tanto na sua vida digital quanto na sua vida empresarial

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

Quem nunca usou o “puxar a alça de preenchimento” no Excel para repetir valores ou continuar uma sequência? 🤔 Pois saiba que no VBA também é possível automatizar isso com o método AutoFill do objeto Range. 🚀


🔎 Definição

  • Range.AutoFill → Preenche automaticamente um intervalo de células a partir de um padrão encontrado em outra célula ou intervalo inicial.

  • Funciona da mesma forma que arrastar a alça de preenchimento no Excel manualmente.


🧑‍💻 Exemplos práticos

1️⃣ Preencher uma sequência de números

Sub PreencherSequencia() Range("A1").Value = 1 Range("A2").Value = 2 ' Cria a sequência até A10 Range("A1:A2").AutoFill Destination:=Range("A1:A10") End Sub

👉 Resultado: A coluna A1 até A10 será preenchida automaticamente com a sequência 1, 2, 3, 4...


2️⃣ Repetir valores em várias células

Sub RepetirValores() Range("B1").Value = "Contabilidade" ' Repete o valor até B10 Range("B1").AutoFill Destination:=Range("B1:B10") End Sub

👉 Resultado: Todas as células de B1 até B10 terão o texto “Contabilidade”.


3️⃣ Preencher uma fórmula automaticamente

Sub PreencherFormulas() Range("C1").Formula = "=A1+B1" ' Copia a fórmula até C10 Range("C1").AutoFill Destination:=Range("C1:C10") End Sub

👉 Resultado: O Excel aplica a fórmula automaticamente para todas as linhas até C10.


Quando usar o AutoFill?

  • Para criar sequências de números, datas ou textos.

  • Para copiar valores em massa.

  • Para aplicar fórmulas automaticamente em várias linhas de uma tabela.

💡 Dica útil: O AutoFill é excelente quando você precisa agilizar o preenchimento de relatórios repetitivos no Excel.


🟣📢 Sua Contabilidade Descomplicada
🏢 Abertura de empresas no Simples Nacional
🔎 Controle tributário mensal
💡 Planejamento tributário estratégico

👉 Deixe a burocracia comigo e cuide do que realmente importa: o seu negócio!

🛡️ Post 6 – O que é Segurança em Camadas?

 Na cibersegurança, não existe proteção única que seja infalível. Antivírus ajudam, firewalls ajudam, mas nenhum recurso sozinho consegue bloquear todas as ameaças. É por isso que especialistas defendem a segurança em camadas: uma abordagem que combina várias defesas para tornar o ataque mais difícil para os criminosos digitais.


📌 O que significa Segurança em Camadas?

  • É o princípio de usar diversas barreiras de proteção, cada uma cobrindo uma possível falha da outra.

  • Funciona como a defesa de um castelo medieval 🏰: muralhas, portões, soldados, fossos — cada camada protege contra um tipo de ataque.


⚠️ Por que isso é importante?

Um criminoso pode conseguir passar por um antivírus, mas ser bloqueado pelo firewall.
Ou pode ultrapassar o firewall, mas ser barrado por autenticação em duas etapas.
➡️ Quanto mais camadas de defesa, menor a chance de sucesso de um ataque.


🎭 Exemplos práticos de camadas

  1. Antivírus ativo 🦠 – identifica e remove ameaças conhecidas.

  2. Firewall 🚧 – controla conexões de entrada e saída do computador.

  3. Atualizações do sistema 🔄 – corrigem falhas exploradas por invasores.

  4. Autenticação em duas etapas (2FA) 🔑 – protege contas mesmo que a senha seja roubada.

  5. VPN 🌍 – protege comunicações em redes públicas.

  6. Educação do usuário 👨‍🏫 – conhecimento para evitar phishing e engenharia social.


🧰 Como aplicar no dia a dia

✔️ Mantenha Windows e celular atualizados
✔️ Use antivírus e firewall ativos
✔️ Habilite senhas fortes e autenticação em duas etapas
✔️ Faça backup periódico de documentos importantes
✔️ Evite clicar em links suspeitos em e-mails e mensagens


📜 Conclusão

A segurança em camadas não é complicada: é apenas a soma de várias medidas simples que, juntas, tornam você um alvo muito mais difícil para criminosos digitais.

🔜 No próximo post (7), vamos entender o que é Firewall e como ele protege seu computador e celular.


📢 Serviços de Contabilidade Especializados

Além de ensinar sobre segurança digital, também posso ajudar você em outro ponto essencial: sua vida profissional e financeira.
Se você é prestador de serviços no Simples Nacional – como psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro profissional de serviços –, eu ofereço:

  • 📌 Abertura e registro da sua empresa no Simples Nacional

  • 📌 Acompanhamento contábil mensal

  • 📌 Planejamento tributário e redução legal de impostos

  • 📌 Consultoria personalizada para o seu negócio

👉 Entre em contato e tenha a tranquilidade de estar seguro tanto no mundo digital quanto no mundo contábil.