pedrosaavas Posted March 21, 2017 Share Posted March 21, 2017 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: 15 1 Quote Link to comment Share on other sites More sharing options...
Luckystar8 Posted March 21, 2017 Share Posted March 21, 2017 Muito obrigada! Vou da uma olhada depois, vai ajudar muito!! Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 Agora, Luckystar8 disse: Muito obrigada! Vou da uma olhada depois, vai ajudar muito!! Valeu! 2 1 Quote Link to comment Share on other sites More sharing options...
dois Posted March 21, 2017 Share Posted March 21, 2017 @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! Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted March 21, 2017 Share Posted March 21, 2017 @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 Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 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 2 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted March 21, 2017 Share Posted March 21, 2017 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. Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 Agora, cerealkiller disse: Perfeito, entendi, obrigadaço PedroSarava, foi o melhor sarava dos últimos tempos. kkkkkk Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted March 21, 2017 Share Posted March 21, 2017 Fica aparecendo essa linha azul, é normal isso? Quote Link to comment Share on other sites More sharing options...
dois Posted March 21, 2017 Share Posted March 21, 2017 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! Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 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. 1 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted March 21, 2017 Share Posted March 21, 2017 (edited) 8 minutos atrás, cerealkiller disse: Fica aparecendo essa linha azul, é normal isso? @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. Edited March 21, 2017 by cerealkiller Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted March 21, 2017 Share Posted March 21, 2017 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 Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 9 minutos atrás, cerealkiller disse: Fica aparecendo essa linha azul, é normal isso? Ops! isso é provavelmente referência cruzada. nao era para acontecer. Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 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. Não sei se tem como, mas vou ver isso depois e te falo. Quote Link to comment Share on other sites More sharing options...
dois Posted March 21, 2017 Share Posted March 21, 2017 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! Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 3 minutos atrás, Crazy Rabbit disse: Olá Pedro Saúva + Ensina bem o menino aí, pois é meu neto tá KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK kkkkkk .... o menino aprende rápido. Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 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! Quote Link to comment Share on other sites More sharing options...
Wata Posted March 21, 2017 Share Posted March 21, 2017 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. ... 5 Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 36 minutos atrás, Wata disse: Excelente! Obrigado. ... 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 Quote Link to comment Share on other sites More sharing options...
Wata Posted March 21, 2017 Share Posted March 21, 2017 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. ... 1 Quote Link to comment Share on other sites More sharing options...
AGORAÉREAL Posted March 21, 2017 Share Posted March 21, 2017 1 hora atrás, Wata disse: Excelente! Obrigado. ... O meu muito obrigado aos dois...agora vou parar de torrar a paciência dos forenses com pedidos....ou pelo menos com esse modelo. 2 Quote Link to comment Share on other sites More sharing options...
pedrosaavas Posted March 21, 2017 Author Share Posted March 21, 2017 1 hora atrás, Wata disse: Excelente! Obrigado. ... @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 2 Quote Link to comment Share on other sites More sharing options...
cerealkiller Posted March 21, 2017 Share Posted March 21, 2017 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. Quote Link to comment Share on other sites More sharing options...
dois Posted March 21, 2017 Share Posted March 21, 2017 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: 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.