pedrosaavas

Agilizar trabalho com matrizes no Excel

Recommended Posts

Boa tarde,

 

Todos sabemos como é chato trabalhar com matrizes no Excel utilizando o substituir ou criando célula por célula... com o intuito de agilizar esse processo criei uma solução em VBA.

 

Como adicionar ao seu projeto:

1º copie o código abaixo

 

Option Explicit
Sub Matriz()
'Objetivo: Criar referências às matrizes automaticamente.
'Autor: U.L.M.S (@PedroSaavas)
'Email: pedrosaavas@gmail.com
'Mantenha a atribuição ao autor como forma de respeito à propriedade intelectual.
'Favor não usar essa macro para obter vantagem financeira.

Dim ws As Worksheet
Dim Mtz As Range, Mcel As Range, Rng As Range, cel As Range, Fmt As Range
Dim Titulo As String
On Error Resume Next
Application.DisplayAlerts = False

Set ws = ActiveSheet
Titulo = "Formatação de Matrizes - By @PedroSaavas"

'Seleciona os números da matriz
Set Mtz = ws.Application.InputBox("Selecione os Números da Matriz", Titulo, Type:=8)
If Mtz.Cells.Count < 1 Then Exit Sub

'Seleciona as linhas da Matriz
Set Rng = ws.Application.InputBox("Selecione as Linhas da Matriz", Titulo, Type:=8)
If Mtz.Cells.Count < 1 Then Exit Sub

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

   'Aplica referências nas células das linhas da matriz
   For Each cel In Rng
    For Each Mcel In Mtz
      If Not IsEmpty(cel) And cel = Mcel Then
         cel = "=" & Mcel.Address
      End If
     Next Mcel
   Next cel
   
   'Aplica formatação nas linhas
   For Each Fmt In Rng
         Fmt.NumberFormat = "00"
         Fmt.Errors(xlInconsistentFormula).Ignore = True
   Next Fmt
MsgBox "Processo Finalizado. " & Rng.Rows.Count & " Linhas Formatadas." & vbNewLine & vbNewLine & "Substitua os NÚMEROS DA MATRIZ por dezenas de sua escolha.", vbInformation, Titulo

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

On Error GoTo 0
Application.DisplayAlerts = True
ActiveCell.Select
End Sub


2º No Excel, digite Alt+F11 para abrir o VBA


3º clique em Inserir >> Módulo


4º cole o código no módulo


5º adicione um botão ou imagem


6º clique sobre o botão ou imagem com o botão direito do mouse e  >>  atribuir a macro “Matriz”

 

7º salvar planilha no "xlsm" (Pasta de trabalho habilitada para Macros)

 

Segue planilha de exemplo:

https://mega.nz/#!258jxaCY!86yHMyDqSdgOcUOSlavee-nWvENMD75pPwYyVx-wUIs

 

Obs.: clique em baixar atráves do navegador

 

Abraços.

 

@pedrosaavas

 

Como usar a planilha de exemplo:

 

2di21a8.jpg

 

14k9ueh.jpg

 

106aczd.jpg

 

2zxqtk5.jpg

 

15x95l0.jpg

 

4uxc3q.jpg

 

 

 

 

  • Like 14

Share this post


Link to post
Share on other sites

@pedrosaavas

 

Meus neurônios estão viciados com a metologia que

pretendia utilizar ao criar a minha e isto não está me

permitindo entender como funciona esta sua.

 

Pode me explicar passo-a-passo ???

 

Um abraço!

 

Share this post


Link to post
Share on other sites

@pedrosaavas

Por favor uma explicação.

 Eu tenho essa matriz abaixo 10-8-7-8=15 como eu formataria ela com sua planilha usando essas dezenas 12-13-14-15-16-17-18-19 ?

01 03 05 06 07 08 09 10
01 03 04 05 06 07 08 09
01 02 04 05 06 08 09 10
01 02 03 04 06 07 08 10
01 02 03 04 05 06 08 09
01 02 03 05 06 07 09 10
02 03 04 05 07 08 09 10
01 02 04 06 07 08 09 10
02 03 04 05 06 07 09 10
01 02 03 05 06 07 08 10
02 03 04 05 06 08 09 10
01 02 04 05 07 08 09 10
01 03 04 05 06 07 08 10
01 02 03 04 05 07 09 10
01 02 03 04 06 07 08 09

  • Like 1

Share this post


Link to post
Share on other sites
1 minuto atrás, cerealkiller disse:

@pedrosaavas

Por favor uma explicação.

 Eu tenho essa matriz abaixo 10-8-7-8=15 como eu formataria ela com sua planilha usando essas dezenas 12-13-14-15-16-17-18-19 ?

01 03 05 06 07 08 09 10
01 03 04 05 06 07 08 09
01 02 04 05 06 08 09 10
01 02 03 04 06 07 08 10
01 02 03 04 05 06 08 09
01 02 03 05 06 07 09 10
02 03 04 05 07 08 09 10
01 02 04 06 07 08 09 10
02 03 04 05 06 07 09 10
01 02 03 05 06 07 08 10
02 03 04 05 06 08 09 10
01 02 04 05 07 08 09 10
01 03 04 05 06 07 08 10
01 02 03 04 05 07 09 10
01 02 03 04 06 07 08 09

 

1º Em Números da Matriz você tem que colocar os números que compõem sua matriz. no caso de 1 a 10

2º Colar as linhas da matriz onde quiser

3º Rodar a macro, seguindo as informações
4º substituir os Números da Matriz por suas dezenas  12-13-14-15-16-17-18-19

 

 

  • Like 2

Share this post


Link to post
Share on other sites
Agora, pedrosaavas disse:

 

1º Em Números da Matriz você tem que colocar os números que compõem sua matriz. no caso de 1 a 10

2º Colar as linhas da matriz onde quiser

3º Rodar a macro, seguindo as informações
4º substituir os Números da Matriz por suas dezenas  12-13-14-15-16-17-18-19

 

 

Perfeito, entendi, obrigadaço PedroSarava, foi o melhor sarava dos últimos tempos.

Share this post


Link to post
Share on other sites
Agora, cerealkiller disse:

Perfeito, entendi, obrigadaço PedroSarava, foi o melhor sarava dos últimos tempos.

 

kkkkkk 

Share this post


Link to post
Share on other sites
4 minutos atrás, pedrosaavas disse:

 

1º Em Números da Matriz você tem que colocar os números que compõem sua matriz. no caso de 1 a 10

2º Colar as linhas da matriz onde quiser

3º Rodar a macro, seguindo as informações
4º substituir os Números da Matriz por suas dezenas  12-13-14-15-16-17-18-19

 

 

Creio que este exemplo pra mim também é o suficiente.

 

Valeu Sobrinho @cerealkiller !!!

@pedrosaavas Parabéns e muitíssimo obrigado por tudo !!!

 

 

Um abraço!

 

Share this post


Link to post
Share on other sites
Agora, dois disse:

 

Creio que este exemplo pra mim também é o suficiente.

 

Valeu Sobrinho @cerealkiller !!!

@pedrosaavas Parabéns e muitíssimo obrigado por tudo !!!

 

 

Um abraço!

 

 

Valeu @dois, @cerealkiller

 

É bem simples eu que sou péssimo para explicar... kkk

Agora que entendeu é só copiar o código para seus projetos. 

 

Obs.: Queria poder contribuir mais, mas estou meio sem tempo.

 

Abraços. 

  • Like 1

Share this post


Link to post
Share on other sites
8 minutos atrás, cerealkiller disse:

Fica aparecendo essa linha azul, é normal isso?

14bixkn.png

@pedrosaavas

Depois que você responder essa eu vou perguntar se existe um meio automatizado (esse cereal é folgado mesmo) de se fazer com o conta-se, é só uma pergunta.

Quando tiver tempo, sem querer te aborrecer.

2lbck5.png

Edited by cerealkiller

Share this post


Link to post
Share on other sites
1 minuto atrás, pedrosaavas disse:

 

Valeu @dois, @cerealkiller

 

É bem simples eu que sou péssimo para explicar... kkk

Agora que entendeu é só copiar o código para seus projetos. 

 

Obs.: Queria poder contribuir mais, mas estou meio sem tempo.

 

Abraços. 

 

Nada meu primo, nós e que temos que te agradecer.

Abraços

Share this post


Link to post
Share on other sites
9 minutos atrás, cerealkiller disse:

Fica aparecendo essa linha azul, é normal isso?

14bixkn.png

 

Ops! isso é provavelmente referência cruzada. nao era para acontecer.

 

Share this post


Link to post
Share on other sites
4 minutos atrás, cerealkiller disse:

@pedrosaavas

Depois que você responder essa eu vou perguntar se existe um meio automatizado (esse cereal é folgado mesmo) de se fazer com o conta-se, é só uma pergunta.

2lbck5.png

 

Não sei se tem como, mas vou ver isso depois e te falo.

 

Share this post


Link to post
Share on other sites
3 minutos atrás, pedrosaavas disse:

 

Valeu @dois, @cerealkiller

 

É bem simples eu que sou péssimo para explicar... kkk

Agora que entendeu é só copiar o código para seus projetos. 

 

Obs.: Queria poder contribuir mais, mas estou meio sem tempo.

 

Abraços. 

 

 

@pedrosaavas

Usando a sua planilha que baixei, fiz o exemplo do Sobrinho cereal_KID e consegui,

 

Vou fazer umas adaptações pra facilitar aqui pra mim.

Mais uma vez, muitíssimo obrigado por tudo!

 

Um abraço!

 

Share this post


Link to post
Share on other sites
3 minutos atrás, Crazy Rabbit disse:

Olá Pedro Saúva

 

58c2a726bcd2d_SEUT_jpgc200.832983615e878a85f5ea2d655e978eb3.jpeg.744295a26bd4770c1717b0b6a28ac0a9.jpeg     +     formiga-imagem-animada-0045.gif.20b4edab0b246414be7eb8b5c3e8d5ba.gif

 

Ensina bem o menino aí, pois é meu neto tá KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

 

kkkkkk .... o menino aprende rápido.

Share this post


Link to post
Share on other sites
3 minutos atrás, dois disse:

 

 

@pedrosaavas

Usando a sua planilha que baixei, fiz o exemplo do Sobrinho cereal_KID e consegui,

 

Vou fazer umas adaptações pra facilitar aqui pra mim.

Mais uma vez, muitíssimo obrigado por tudo!

 

Um abraço!

 

 

Que bom @dois

 

Faça isso

 

Abraço!

Share this post


Link to post
Share on other sites
2 horas atrás, pedrosaavas disse:

Sub Matriz() Dim ws As Worksheet Dim Mtz As Range, Mcel As Range, Rng As Range, cel As Range, Fmt As Range On Error Resume Next Application.DisplayAlerts = False Set ws = ActiveSheet 'Seleciona os números da matriz Set Mtz = ws.Application.InputBox("Selecione os Números da Matriz", Type:=8) If Mtz.Cells.Count < 1 Then Exit Sub 'Seleciona as linhas da Matriz Set Rng = ws.Application.InputBox("Selecione as Linhas da Matriz", Type:=8) If Mtz.Cells.Count < 1 Then Exit Sub Application.ScreenUpdating = False Application.Calculation = xlCalculationManual 'Aplica referências nas células das linhas da matriz For Each cel In Rng For Each Mcel In Mtz If Not IsEmpty(cel) And cel = Mcel Then cel = "=" & Mcel.Address End If Next Mcel Next cel 'Aplica formatação nas linhas For Each Fmt In Rng Fmt.NumberFormat = "00" Fmt.Errors(xlInconsistentFormula).Ignore = True Next Fmt Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic MsgBox "Processo Finalizado. " & Rng.Rows.Count & " Linhas Formatadas.", vbInformation, "Tratamento de Matrizes" On Error GoTo 0 Application.DisplayAlerts = True End Sub

 

Excelente!

Obrigado.

 

8-)

...

  • Like 5

Share this post


Link to post
Share on other sites
36 minutos atrás, Wata disse:

 

Excelente!

Obrigado.

 

8-)

...

 

Valeu!

 

Só uma observação... a macro aplica aquela formatação do número .

 

'Aplica formatação nas linhas
   For Each Fmt In Rng
         Fmt.NumberFormat = "00"
         Fmt.Errors(xlInconsistentFormula).Ignore = True
   Next Fmt

Share this post


Link to post
Share on other sites
7 minutos atrás, pedrosaavas disse:

 

Valeu!

 

Só uma observação... a macro aplica aquela formatação do número .

 


'Aplica formatação nas linhas
   For Each Fmt In Rng
         Fmt.NumberFormat = "00"
         Fmt.Errors(xlInconsistentFormula).Ignore = True
   Next Fmt

Verdade.

8-)

...

 

  • Like 1

Share this post


Link to post
Share on other sites
1 hora atrás, Wata disse:

 

Excelente!

Obrigado.

 

8-)

...

O meu muito obrigado aos dois...agora vou parar de torrar a paciência dos forenses com pedidos....ou pelo menos com esse modelo.

  • Like 2

Share this post


Link to post
Share on other sites
1 hora atrás, Wata disse:

 

Excelente!

Obrigado.

 

8-)

...

 

@Wata

Agora que percebi pelo nome do canal que aprendi o macete de substituir no Excel assistindo a um dos seus videos...Valeu.

 

Abraços

 

Pedro

  • Like 2

Share this post


Link to post
Share on other sites
3 horas atrás, dois disse:

 

 

@pedrosaavas

Usando a sua planilha que baixei, fiz o exemplo do Sobrinho cereal_KID e consegui,

 

Vou fazer umas adaptações pra facilitar aqui pra mim.

Mais uma vez, muitíssimo obrigado por tudo!

 

Um abraço!

 

 

Quando ficar pronta pode mandar para mim que eu agradeço.

Share this post


Link to post
Share on other sites
1 minuto atrás, cerealkiller disse:

 

Quando ficar pronta pode mandar para mim que eu agradeço.

 

 

Estimado Sobrinho cereal_KID,

por enquanto ela está assim:

 

 

dois _pedrosaavas planilha Formatar Matriz.jpg

  • Like 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.