Giter Club home page Giter Club logo

😁 Olá, pessoal, desde já, agradeço por lê a minha apresentação, sinta-se a vontade para entrar em contato quando quiser! Ou convidar para um café/cerveja 🍻.

Gosto de desenvolver códigos: há muito tempo faço isso. Até onde, me lembro bem... em 1994, eu digitava em teclados duros da IBM e olhava para monitores com prompt verde, e esquecia de colocar o disquete de 5- 1/4 antes de enviar o comando para liberar o disquete corrente. E sempre gostei de descobrir o funcionamento das coisas.

Boa parte das coisas que faço aqui no GitHub estão no privado, mas de uns tempos para cá, resolvi que vou publicar algumas coisas que faço semanalmente. Geralmente partes de códigos que compõe sistemas. O intuito aqui é apenas ajudar.

Tenho experiência em diversas áreas, incluindo desenvolvimento web, aplicativos móveis e análise de dados. Alguns dos meus projetos mais recentes incluem uma plataforma que auxilia condôminos para conveniência em suas moradias. Mas além desse, consumo desenvolver do zero, códigos que solucionam em diferentes áreas, indústria, escolas, escritórios etc.

Essa lista a baixo já mostra logo o que mais gosto né?

Top Langs

Vamos lá!

2023-03-20 Uma ajudinha com Ms Excel

O código dessa semana é uma ajuda que dei a um amigo. Ele estava precisando separar uma lista de clientes contida em um arquivo, onde continha a palavra "Empresa" porém estava separada por intervalos com nomes de funcionários. Como a urgência falava mais alto, construir algo do zero seria impossível, então encontrei uma solução simples e que acabou sendo útil para muitas planilhas dele. Esse é o link do código completo

Há sim... quem não se lembra do velho VBA. Ainda na década de 90 a Microsoft precisava apresentar aos seus clientes corporativos alguma forma que ajudasse eles a automatizar as tarefas. Visto que a grande sacada do Office é oferecer um produto genérico na qual usuários com conhecimento mais aprofundados pudessem deixar rotinas mais inteligentes. mas sem longas histórias, a solução que encontrei, utiliza dois loops para identificar onde encontrar uma palavra que sempre repete no arquivo. Se essa for a sua necessidade dê uma olhada nesse exemplo:

Para quem não está familiarizado com VBA, toda variável deve ser declarada e repare que para fazer isso você deve usar a palavra reservada "Dim" de dimensionar, sacou?

 
    Dim flag As Boolean 
    flag = False 
    
    Dim linha, contador, inicio, final As Long
    linha = 1 
    contador = 0 
    inicio = 0 
    final = 0 

Agora a parte fundamental, repare que há um loop. Este é utilizado para percorrer todas as linhas da planilha do Excel.

    While Not flag 
       If InStr(ws.Cells(linha, 1).Value, "Empresa:") > 0 Then

Você pode substituir por qualquer palavra para pesquisar, desde que essa faça parte de um padrão dentro do seu arquivo. Vamos imaginar que ao invés de "Empresa:" o seu arquivo seja uma lista de alunos, nesse caso basta modificar o valor da pesquisa pela palavra "alunos". Mas atenção, procure identificar bem o seu padrão. Se na sua planilha existir mais de uma forma para escrita, você deve primeiro certificar-se de que está pesquisando um caso bem específico. No meu caso para evitar essa coincidência, eu reparei que sempre quando havia a palavra empresa ela era seguida pelos dois pontos (:), assim ficou fácil.

Após a identificação, você deve estabelecer um ponto de partida e um ponto de encerramento, que servem para você fazer o que mais estiver necessitado no momento, uma cópia das células (Meu caso), formatação ou edição de dados seja possível. Então para que a magia pudesse ocorrer eu usei um novo loop

    Do
        final = final + 1
        If InStr(ws.Cells(final, 1).Value, "Empresa:") > 0 Or vazios = 10 Then Exit Do
        If IsEmpty(ws.Cells(final, 1)) Then vazios = vazios + 1
        
    Loop
    Range("A" & inicio & ":K" & final - 1).Copy

Repare que no primeiro loop estamos percorrendo linha por linha para identificar onde começa uma empresa, já nesse segundo caso nós precisamos identificar o final que determina o início da uma outra empresa. Uma vez encontrado o final agora sabemos o que selecionar. É aí que entra a palavra "Range" Essa função interna do Excel nada mais é que a capacidade de selecionar uma área ou os mesmos movimentos que você faria com o seu mouse passando encima e selecionado as áreas que deseja de uma planilha

Por fim eu definir o que desejava com a minha seleção. **É claro que você deve alterar isso também, a fim de refletir a sua necessidade 👀 **

Bônus: O código final apresenta uma maneira fácil de separar o conteúdo obtido no comando "Range" e cola dentro de um novo arquivo. Um para cada empresa que foi encontrada na planilha.

    Workbooks.Add
    Set novoarquivo = ActiveWorkbook
    Worksheets.Item(1).Name = "Planilha da fatura"
    Worksheets.Item(1).Paste
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Range("A1").Activate
    
    novoarquivo.SaveAs Filename:="C:\minhas_empresas\" & empresa & ".xls"
    novoarquivo.Save
    novoarquivo.Close
    
    Debug.Print empresa & " Inicio:" & inicio & " Final:" & final

Pessoal, acessem o código completo estudem e se divirtam! Se tiver alguma dúvida entrem em contato.

Uma boa semana e até a próxima.

wakatime

Snake animation

Oberdan Brito's Projects

ace icon ace

Ace (Ajax.org Cloud9 Editor)

alasql icon alasql

AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.

alphavss icon alphavss

AlphaVSS is a .NET class library released under the MIT license providing a managed API for the Volume Shadow Copy Service also known as VSS.

ant-media-server icon ant-media-server

Ant Media Server supports RTMP, RTSP, WebRTC and Adaptive Bitrate. It can also record videos in MP4, HLS and FLV

arduino icon arduino

Repositório do projeto para controle de acesso aos alojamentos do IF Sudeste MG - Rio Pomba

avatar icon avatar

Plug n play avatar, turn name, email, and any other string into beautiful avatar, effortless.

brackets icon brackets

An open source code editor for the web, written in JavaScript, HTML and CSS.

dotfiles icon dotfiles

various configs and crap I use on boxes

electron-pdf icon electron-pdf

📄 A command line tool to generate PDF from URL, HTML or Markdown files.

ethercard icon ethercard

EtherCard is an IPv4 driver for the ENC28J60 chip, compatible with Arduino IDE

gubleo icon gubleo

Sou desenvolvedor pela Craos.NET

ispy icon ispy

Open source surveillance software

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.