Ir ao conteúdo

Posts recomendados

Postado

Prezados colegas, bom dia.

Utilizo bastante o Excel, mas, até então, nenhum uso muito avançado. Diria que tenho um conhecimento intermediário e, geralmente, o que não sei consigo resolver através de pesquisa na internet. 

Contudo, não consegui fazer o seguinte: criei uma planilha para controle de processos no órgão em que trabalho. Em uma das abas, adiciono os processos e quem irá movimentá-los (a pessoa é selecionada em uma lista suspensa [validação de dados]). Em uma outra aba, é emitido o relatório numérico de processos por pessoa, classificados pela natureza da ação, por meio da fórmula CONT.SES; contudo não consegui fazer o seguinte: queria que o EXCEL copiasse os dados de toda a linha para uma outra planilha, de acordo com a pessoa escolhida.

Exemplo:

1ª LINHA Entrada    Saída    Tempo de tramitação    Processo    Responsável

2ª LINHA 20/12/2015    25/12/2015    5 dias    1500/2015    FULANO DA SILVA

3ª LINHA 21/12/2015    26/12/2015    5 dias    1501/2015    BELTRANO SANTOS

4ª LINHA 22/12/2015    30/12/2015    8 dias    1502/2015    CICRANO SOARES

Assim, quando eu selecionasse FULANO DA SILVA, a linha 2 seria copiada para a planilha com o nome dele; quando selecionasse BELTRANO SANTOS, a linha 3 seria copiada para planilha com o nome dele, e assim por diante, de modo que eu pudesse imprimir, por pessoa, todos os processos que foram adicionados em outra aba; se não fosse exigir demais, seria bom também que a planilha automaticamente removesse e adicionasse no lugar certo os dados que fossem alterados: vamos supor que, por exemplo, o processo X foi atribuído, inicialmente, a FULANO DA SILVA e depois alterado para BELTRANO SANTOS;

 

Alguma luz?

Obrigado e um feliz ano novo.

Não preciso que mastiguem pra mim. Lógico que se fizer, não vou reclamar, mas aceito também links específicos onde possa aprender a fazer isso sozinho.

Um forte abraço.

 

Postado

Meu caro amigo, @CasaDoHardware, e demais colegas.

 

Bom dia.

Segue a planilha de exemplo.

Buscando esclarecer, o que gostaria que a planilha fizesse automaticamente era: na aba "movimentações" são lançados os processos e os responsáveis. Como se percebe, criei 4 pessoas fictícias: JOÃO DA SILVA, BENEDITO DA SILVA SAURO, ALDEBARAN DE TOURO e JOSÉ LUIS DATENA. Gostaria que conforme fossem sendo atribuídos processos a cada um deles na aba "movimentações", a linha inteira fosse "copiada" para a aba correspondente.

Por exemplo, se adicionei um processo à JOÃO DA SILVA na aba movimentações, a linha seria adicionada à aba JOÃO DA SILVA. Se removi um processo do BENEDITO DA SILVA SAURO e passei pro ALDEBARAN DE TOURO, que o processo saia da aba BENEDITO DA SILVA SAURO e seja lançado em ALDEBARAN DE TOURO.

 

Amigo, como disse, não sou um expert em excel, mas gosto muito de aprender. Não precisa mastigar tudo, embora não reclame se me ajudar em excesso. Gostaria de aprender para poder editar e fazer outras fórmulas nesse sentido. Agradeço se me for indicado sites ou materiais onde possa aprender esses comandos. Um forte abraço e obrigado pela atenção.

Clube do Hardware.xlsx

Postado

Boa noite, vamos por partes:

 

A primeira coisa que fiz e você devera fazer na sua planilha original é acabar de uma vez por todas com as celulas mescladas.

 

Esse recurso do excel se usa quando realmente necessario, e apenas nos titulos nas celulas onde se recebe dados não se deve usar. 

 

Removi todas as celulas mescladas.

 

Se a informação nao abre é so ajustar o tamanho da coluna.

 

 

Como você disse que tem a intenção de aprender comentei todo o codigo, então a adaptação é bem simples.

 

Crie em C: de seu PC uma pasta com o nome Processos do contrario o codigo vai dar erro

 

Caso precise salvar em outro local é necessario de alterar no codigo caso nao consiga fazer alteração informe o caminho onde deve ser salvo o arquivo final

 

então veja se atende 

 

 

Clube do Hardware.xlsm

  • Curtir 1
Postado

@CasadoHardware, atende sim, meu amigo. Muito obrigado. Estou apenas tentando entender o código, pois a única "linguagem" de "programação" que conheço é a do mIRC (mirc scripting), que é muito diferente dessa. Sem querer abusar, se puder indicar onde posso me familiarizar com os códigos, agradeço. De qualquer forma, um forte abraço. Vou bater cabeça aqui até entender pelo menos como transpor para minha planilha real.

 

* Resolvi editar apenas para informar que já entendi boa parte do código. Não parece ser muito complicado. Só preciso me familiarizar com a linguagem. Só encontrei apostilas e sites complicadores. Você fez tudo parecer simples. Espero que esteja correto na minha impressão. Um abraço. Obrigado.

 

** Não consegui salvar em outra planilha: 

"Os recursos a seguir não podem ser salvos em pasta de trabalho sem macro:
* Projeto do VB

Para salvar um arquivo com esses recursos, clique em Não e escolha um tipo de arquivo habilitado para macro na lista Tipo de Arquivo.
Para continuar salvando como pasta de trabalho sem macro, clique em Sim

Postado

Outra coisa importante sugiro se possivel que você traga seus dados para essa planilha, ja que existe uma certa dificuldade em adaptar para a sua original.

 

porque nas listas (aba config), criei ranges dinamicos, (faça um teste e você vai entender) digite por exemplo um novo nome de procurador apos a ultima linha veja que ele ja vai aparecer automaticamente nas validações. So nao pode deixar linhas vazias entre os nomes.

  • Curtir 1
Postado

@CasaDoHardware, boa tarde, amigo. Espero não estar lhe incomodando muito. Conforme recomendado, estou assistindo a vídeos no youtube sobre o assunto. Muitas coisas já se esclareceram. Consegui "transpor" o código para minha planilha e adaptei as necessidades que tenho. Só um único problema na transposição: a seguinte linha não funciona "  With Selection
    .PasteSpecial Paste:=xlPasteValues", retornando o seguinte erro: "Erro em tempo de execução '1004': Não podemos colar porque a área copiar e a área de colagem não são do mesmo tamanho. Tente uma das seguintes opções:
* clique em uma única célula e cole.
* selecione um retângulo que seja do mesmo tamanho e cole."

Quando removo essa linha, por lógico, ele não copia para outra sheet, mas informa o número de processos exato, o que indica que a fórmula está funcionando.

 

No código enviado, fiquei sem compreender esta linha:

" Range("C1048576").End(xlUp).Select"

Em linhas gerais, o que seria essa numeração C1048576?

 

Um forte abraço. Não incomodarei mais. Resolverei o resto sozinho e obrigado.

 

Postado

Não ha problemas em perguntar afinal o forum é para isso mesmo.

 

O que acontece é que a planilha que você enviou possui milhares de celulas mescladas, e eu removi todas elas como lhe disse. então realmente vai dar esse erro.

 

E como disse no outro post sugiro que você teste a planilha de exemplo que mandei pois as listas estão automatizadas e isso vai facilitar o seu trabalho

 

A linha de codigo que você indicou somente seleciona a ultima linha preenchida da coluna C 

 

C1048576 é a ultima celula da coluna C

 

o End é como se você apertasse end no teclado e o xlup a seta para cima

 

Em resumo a linha diz para o excel pegue o cursor e coloque na ultima linha preenchida da coluna C

 

E caso precise perguntar fique a vontade, pois é assim que se aprende.

  • Curtir 1
Postado

Meu caro amigo, @CasaDoHardware, bom dia. Primeiramente, muito obrigado pela paciência e vontade em repassar conhecimento. Que bom que não estou atrapalhando. Peço desculpas, mas sou metódico. Vou mexendo nas coisas até aprender. Estou quase entendendo toda sua fórmula. Ainda chego lá. Hoje consegui fazer com que ela copie a linha, mesmo com células mescladas. Acho que vou conseguir fazer o que quero e adaptar para outros propósitos.

Só tenho uma dúvida que não é relacionada ao assunto, mas, como notei que você é um expert em Excel, acho que consegue me ajudar fácil fácil: estou utilizando a fórmula CONT.SES para contar alguns parâmetros. Contudo, não consegui fazer com que ela identifique PARTE de uma DATA, mais precisamente o mês e ano. A linha foi configurada assim:

"=CONT.SES(Manifestações!AN1:AN9971;A41;Manifestações!P1:P9971;"ac";Manifestações!C1:C9971;"*01/2016*")"

Queria que a fórmula verificasse se a data corresponde ao mês de 01/2016. Se coloco a data completa, como, por exemplo, 05/01/2016, a fórmula funciona perfeitamente. Mas se coloco *01/2016, não se encontra nada.

Alguma ideia?

Obrigado mais uma vez.

Postado

Meu amigo @CasaDoHardware, não consegui adaptar sua fórmula, pois acredito que a fórmula SOMARPRODUTO pede uma informação que não tenho na CONT.SES, que é a descrição exata da coluna e linha. Acho que não expliquei direito, mas a fórmula que eu colei em cima procura linha após linha da planilha a existência de 3 condições: mesma pessoa, mesmo rito do processo e determinado mês/ano;

O problema que estou tendo é para que a fórmula verifique se o mês/ano indicada está contido na coluna C. Cada linha da coluna C contém uma data. Assim, por exemplo:

Coluna C

06/01/2016             FULANO            HC

07/01/2016             BELTRANO        HC

 

 

A fórmula que configurei foi assim:

"=CONT.SES(Manifestações!AN1:AN9971;A41;Manifestações!P1:P9971;"ac";Manifestações!C1:C9971;"*01/2016*")"

Acho que o erro está em "*01/2016". Acredito que o excel está interpretando como se fosse uma divisão, fração ou algo assim, pois se eu preencho a data inteira, como, p. exemplo, 06/01/2016, a fórmula conta exatamente quantos processos de determinada pessoa, com tal rito, deram entrada em 06/01/2016. Mas quando coloco "*01/2016", para que qualquer dia do mês de 01/2016 seja considerado, o resultado é 0.Se coloco qualquer outra condição no terceiro campo, como, por exemplo, uma determinada palavra, dá certinho. O problema é o coringa ("*") com o mês/ano, que está dando alguma confusão.

 

Postado

Evite usar a referencia a um dado especifico 

 

Exemplo o importante é você entender

 

Vou supor a posição dos dados assim

 

Coluna A data 

Coluna B Nome

Coluna C Rito

Coluna E Mes e Ano

Coluna F Pessoa

Coluna G formula a seguir

 

=somarproduto((MES(A2:A10)=MES(E2))*(ANO(A2:A10)=ANO(E2))*((B2:B10)=F2)*(C2:C10))

 

Note que nao indiquei nenhum argumento e sim diretamente uma celula assim caso você precise trocar o mes ou a pessoa não precisa reescrever a formula, basta alterar a informação da celula.

 

 

  • Curtir 1
Postado

Caro @CasaDoHardware, infelizmente não deu certo, mesmo com referência a uma célula externa. Acredito que as funções SOMARPRODUTO e CONT.SES não utilizem o mesmo raciocínio. Na CONT.SES não indico nenhuma célula específica como parâmetro. O excel que, dentro do intervalo indicado, varre linha por linha linha e verifica se em cada coluna os valores coincidem. Utilizei a forma CONT.SES em outro campo da planilha e está funcionando adequadamente. O problema foi com números.. mais precisamente com a data.. a CONT.SES aceita coringa (*) para se referir a parte do texto, mas não consegui fazer ela se referir a parte da data. Queria apenas que ela verificasse se 01/2016, por exemplo, está contido em 06/01/2016 (linha varrida: Cx), mas a fórmula não consegue entender isso. Acho que o erro é utilização do coringa e de números e barras (/). Acho que o excel entende como se fosse uma fórmula matemática de multiplicação, divisão etc, não sei se estou errado. Sei que a fórmula funciona porque se utilizo um dado específico, como a data completa, 06/01/2015, 07/01/2016, etc, o excel identifica direito:

"=CONT.SES(Manifestações!AN1:AN9971;A41;Manifestações!P1:P9971;"ac";Manifestações!C1:C9971;"*01/2016*")"

Detalhe, não me oponho em colocar o parâmetro em outra célula, até seria bom, porque, ano a ano, só vou modificar o ano mesmo (2016, 2017, 2018...). Os meses ficam inalterados. Terá uma planilha de janeiro, fevereiro, depois uma bimestral, somando as duas ultimas, e aí vai...

Postado

@Nortonap Acho que você nao entendeu então vou frizar, NAO USE O CRITERIO DIRETAMENTE NA FORMULA USE EM UMA CELULA.

 

E nao precisa usar cont.ses use somarproduto, neste caso fazem a mesma coisa e retornaram o mesmo resultado, se você ajustar apenas as colunas 

 

Para calcular periodos de datas se você nao usar junto contses ou somarproduto as funções mes e ano como inidiquei NAO VAI FUNCIONAR.

 

 

você tem que dizer ao excel que você quer que ele considere APENAS O MES e O ANO.

 

E da forma que você esta fazendo esta dando erro porque você nao fez isso  mes(06/01/2016) é DIFERENTE DE *01/2016*.

 

 

Faz como sugeri que vai funcionar.

 

 

Se você olhar a planilha que mandei (a sua), vai ver que tirei todas as referencias de dentro da formula e coloquei em uma referencia de celula. 

  • Curtir 1
Postado

@CasaDoHardware, já estou com medo de você me ralhar, diante de tanta ignorância (falta de conhecimento)... kkk.. se estiver consumindo seu tempo, fique a vontade para simplesmente não me responder mais. não quero atrapalhar. cito você em minhas perguntas porque, até então, é a única pessoa que tem me respondido.. mas corrija-me se quiser e se estiver errado: a cont.ses e a somarproduto NÃO fazem a mesma coisa nesse caso. Veja, vou exemplificar, pois acho que não estou sendo claro:

A            B            C            
DATA        Natureza do processo        Responsável

04/01/16        HC            JOÃO DA SILVA
05/01/16        MS            FRANCISCO LEITE
06/01/16        HC            JOÃO DA SILVA
07/01/16        RSE            JOSÉ FONSECA
07/01/16        MS            FRANCISCO LEITE

 

Eu queria que a fórmula me indicasse, por exemplo, quantos HC o JOÃO DA SILVA recebeu em JANEIRO/2016. Pelo que entendi da planilha que você mandou, a fórmula somarproduto não permite a conjugação de critérios de TEXTO, mas, apenas números, a fim somar valores. Por isso, até então, estou utilizando a CONT.SES...

No que se refere às funções MES() e ANO(), o problema é usá-la com a CONT.SES e explico porque...

Pelo que percebi, a CONT.SES varre linha por linha e, nas colunas indicadas, varre por um critério.. então tem-se o seguinte:

=CONT.SES(Intervalo de coluna;critério), como, por exemplo: =CONT.SES(Ax:Ay,Teste;Cx:CY;Testando); aí está o problema... como inserir MES  e ANO nesse contexto, considerando, ainda, que ANO retorna um valor absoluto que, de 01/01/2016 e 01/01/2017, é o mesmo "1900"? fiz um teste simples, mesmo assim, e não deu certo:

=CONT.SES(Manifestações!AN1:AN9971;A41;Manifestações!P1:P9971;"ac";ANO(Manifestações!C1:C9971);1900). O Excel nem deixa salvar essa fórmula. Mesmo que coloque a referência em outra célula ou o que quer q seja.

Estou sem ideias, meu amigo. :(

  • Membro VIP
Postado

Bom dia Nortonap

 

A função SOMARPRODUTO substitui com vantagens as funções CONT.SE;CONT.SES.SOMASE E SOMASES, e ainda pode sr usada em qualquer versão do Excel, enquanto que algumas funcionam só a partir do Excel 2007.

 

Outra vantagem é a possibilidade de usar as junto com ela as funções DIA, MÊS ou ANO, coisa que as outras funções relacionadas acima não permitem.

Comprove na planilha anexada,, como é bem mais fáci u sar o SOMARPRODUTO do que o CONT.SES., pois resolvi o mesmo problema utilizando as duas funções e a SOMARPRODUTO fica bem mais enxuta.

 

Dê retorno.

 

Se a resposta foi útil, clique em Curtir.

 

[]s

 

 

 

 

07_01_16_SOMARPRODUTO OU SOMASES_Patropi.xlsx

  • Curtir 2
Postado

@CasaDoHardware e @Patropi, muito obrigado, meus caros amigos. Fiz uma reviravolta aqui e entendi as duas fórmulas e deu tudo certo. Vão atender perfeitamente minhas necessidades. Apenas o VBA precisa ser aprimorado, mas se Deus quiser chego lá. Um forte abraço.

Postado

 

@Nortonap O problema não esta em não saber, e minha intenção nao foi parecer rude, peço desculpas se pareceu isso e se você se sentiu ofendido por minhas palavras.

 

Se quando postei o arquivo modelo você tivesse tentado utilizar a formula com certeza teriamos solucionado o problema, mas você nao testou e nao questionou com sua duvida sobre a função como fez no ultimo post 

 

Mas o que importa é que você conseguiu a solução, esse é o objetivo do forum passar conhecimento.

 

E fique a vontade em perguntar estamos aqui para isso aprender mais um pouco e ensinar o pouco que sabemos.

  • Curtir 1
Postado

@CasaDoHardware, meu amigo, você não foi rude em momento nenhum. Pelo contrário, extremamente paciente. O problema é que eu não estou nem perto do nível de vocês - mas vou mudar isso, estudando as apostilas -, o que complica muito minha compreensão. Quando você insistiu na SOMARPRODUTO, e me mandou uma planilha com ela contendo apenas números, deduzi erroneamente que era uma fórmula matemática e que, literalmente, somava produtos (resultados de multiplicações, adições etc), e como queria usar com texto, achei que não ia dar certo e não consegui adaptar. Mas não tem o que se desculpar. Sem sua ajuda, não teria nem iniciado a planilha. Aprendi em linhas gerais o que é VBA e pra que serve. Não sabia nem onde ficava a aba disso. Pode parecer pouco, mas é muito. Muito obrigado por tudo.

@Patropi, obrigado também pelos comentários adicionais e esclarecedores e pela planilha de exemplo. Um exemplo geralmente ajuda muito para quem não sabe quase nada... rs..

 

Meus caros amigos, não sei se posso continuar postando dúvidas aqui, que são desdobramentos da planilha que envolve o tópico.. espero que sim e que não esteja cometendo nenhuma infração do fórum...

 

É o seguinte: as fórmulas CONT.SES e SOMARPRODUTO estão funcionando uma maravilha. Segui a dica de vocês e, na aba "CONF", coloquei as configurações padrões que serão referência para as outras planilhas e que, precisando, ano a ano, só farei alteração na aba principal. O problema é o seguinte: Montei uma tabela que contém 228 campos para preencher com fórmula. Ao todo, esta mesma tabela, terá 12 cópias, referente aos 12 meses de cada ano. Assim, são 2.736 campos para preencher com fórmulas que diferem apenas "2" pontos. Com o "ctrl + c", o excel copia a fórmula, mas alterando em muito os parâmetros, que passam a não funcionar. Tentei fazer com macro, com base em um vídeo da internet, que fala em macro absoluta e relativa, mas não deu certo. Não sei se fiz algo errado. Devo ter feito para variar..

Vou exemplificar sucintamente como seria a planilha real e o que preciso modificar na fórmula:

                                     M40    N40    O40    P40        

                                   AC    ACR    ACP    ADI

A41 BELTRANO            0         2         4         1
A42 CICRANO               4         1         1         2
A43 FULANO                 2         1         5         1

Então é assim.. a fórmula real é "=CONT.SES(Manifestações!AN1:AN9948;A41;Manifestações!O1:O9948;M40;Manifestações!C1:C9948;">="&Conf!H3;Manifestações!C1:C9948;"<="&FIMMÊS(Conf!H3;0);Manifestações!Z1:Z9948;"Não")"

O que a fórmula faz é verificar quantos processos de determinado rito (M40) foram repassados em janeiro de determinado ano (Conf!H3) a uma certa pessoa (A41).

Então, por exemplo, quando for editar as 19 fórmulas (19 ritos) para o A41 (BELTRANO), preciso apenas, coluna a coluna, alterar o M40 para a coluna imediatamente posterior (N40,040,P40) e aí vai.

Quando for passar pra outra linha, referente ao CICRANO (A42), a fórmula vai alterar, de coluna a coluna, apenas, de novo, M40, N40, O40, P40, e aí vai.

O problema é que, ainda que na mesma linha, copie a primeira fórmula e cole nas demais, o excel altera todos os parâmetros da fórmula, alterando critérios linhas etc.

Alguma luz?

Obrigado.

 

 

Postado

Vamos la como sao duvidas diferentes sugiro que você abra um topico novo, a nao ser que o assunto seja realcionado a duvida inicial.

 

Vamos ao exemplo pratico.

 

 

você tem uma formula e precisa alterar a novas linhas ou colunas então suponha q você tenha aberto um topico para isso, e suponha que você tenha obtido a resposta, e depois disso, você precise fazer uma nova alteração então você usa o mesmo topico, 

 

Caso seja uma duvida diferente, (como neste caso, que embora o mesmo arquivo), o assunto é outro sugiro que crie um novo topico.

 

Agora respondendo sua duvida você pode usar o $ para travar a celula, a linha, ou a coluna como quiser.

 

A1 quando arrastar alterar a celula

$A1 quando arrastar altera somente a linha

A$1 quando arrastar altera somente a coluna

$A$1 quando arrastar trava a celula ou seja a sua formula nao sofre alteração.

 

Veja qual opção atende mais a sua necessidade.

 

 

 

 

 

 

  • Curtir 1
  • Membro VIP
Postado

Boa tarde Nortonap

 

Pode continuar neste tópico mesmo, pois o assunto é o mesmo.

A fórmula vai ficar assim:

=CONT.SES(Manifestações!$AN$1:$AN$9948;A41;Manifestações!$O$1:$O$9948;M40;Manifestações!$C$1:$C$9948;">="&Conf!H3;Manifestações!$C$1:$C$9948;"<="&FIMMÊS(Conf!H3;0);Manifestações!$Z$1:$Z$9948;"Não")

Boa tarde Nortonap

 

Para inserir os cifrões, basta selecionar e clicar na tecla F4 --> cada vez que você tecla ele muda o tipo de bloqueio, experimente.

 

Se foi útil, clique em Curtir.

 

[]s

  • Curtir 1
Postado

Meus caros amigos @Patropi e @CasaDoHardware, com a ajuda de vocês resolvi 90% das minhas necessidades. Só tenho uma pendente, que originou este tópico: apesar de pesquisar e pesquisar, não consegui encontrar um material ou videoaula que contenha o que preciso fazer em VBA. Na verdade, não tenho muitos objetivos com o VBA. Apenas fazer pesquisas específicas a fim de extrair alguns dados dos lançamentos que são feitos nas planilhas.

Preciso compreender a fórmula do @CasaDoHardware, porque acredito que ela servirá 100% de base para outras que quero fazer. Compreendi quase tudo, mas para poder fazer adaptações preciso compreender 100% do trecho abaixo. Sei que é pedir demais, mas, se possível, preciso de um comentário do que, basicamente, cada linha faz. Já fui professor de inglês e os termos, na maioria das vezes, são compreensíveis. Então precisaria entender apenas os comandos. Vou colocar com # o que entendi mais ou menos, e daí vocês poderiam complementar e corrigir.

'-----------------------------------------------
'Inicio do Filtro

Do While ActiveCell <> ""

# Enquanto uma determinada célula ativa não for em branco...

If ActiveCell = Proc Then

# Se a célula ativa for igual a variável "Proc" então...

    Intersect(Selection.EntireRow, _
             Range("B:J")).Select

# Selecionar a linha inteira de B à J;
                   Selection.Copy

# Copiar a seleção

    WP.Select

# Selecionar a planilha WP;

    Range("B1048576").End(xlUp).Select

# Do início ao fim?

    ActiveCell.Offset(1, 0).Select
# ?????
    With Selection
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteFormats

# Com a seleção, colar especial
    End With

# Fim de alguma coisa...

    Application.CutCopyMode = False

# ??
    Cont = Cont + 1

# Aqui vejo que tem um contador.. apenas pra dizer quantos processos foram encontrados?
    ActiveCell.Offset(0, -1).Value = Cont

# Daqui pra cá não entendi muita coisa

    WP.Range("B7").Select
    WM.Select
    ActiveCell.Offset(1, 7).Select
Else
    ActiveCell.Offset(1, 0).Select

# Como já programei no mIRC, sei que aqui tem uma verificação.. se, tal coisa.. senão, tal coisa..

End If

Loop

# retorna ao início do comando
'--------------------------------------------

'Mensagem de Aviso
MsgBox "O Procurador" & " " & Proc & " " & "Possui" & " " & Format(Cont, "000") & " " & "Processos.", vbOKOnly, "Pesquisa Concluida."

 

OBS.: A planilha é aquela que o @CasaDoHardware postou logo de início...

Postado

Vamos la

Localiza a ultima linha preenchida 

Range("B1048576").End(xlUp).Select

# Do início ao fim?

Pula uma linha

    ActiveCell.Offset(1, 0).Select
With é um comando vba que permite reduzir a quantidade de caracteres facilitando a programação, neste caso é o mesmo que escrever selection na frente das duas instruçoes a seguir que so cola valores e formatos.
    With Selection
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteFormats

# Com a seleção, colar especial

Finaliza o comando with
    End With

# Fim de alguma coisa...

Elimina a selecão de copia, é como se fosse precionado esc no teclado.

    Application.CutCopyMode = False

Isso é um contador que conta qtos registros foram encontrados
    Cont = Cont + 1

# Aqui vejo que tem um contador.. apenas pra dizer quantos processos foram encontrados?

Registra o valor do contador na celula anterior a ativa
    ActiveCell.Offset(0, -1).Value = Cont

 

Exemplificando.

 

activecell.offset(linha,coluna).select

Ou seja offset = pula

(1,0) uma linha abaixo do cursor

(-1,0) uma linha acima do cursor

(0,1) uma coluna a direita do cursor

(0,-1) uma coluna a esquerda do cursor

# Daqui pra cá não entendi muita coisa

Seleciona a celula B7 da planilha Processos (se nao me engano) tem que olhar o resto do codigo

    WP.Range("B7").Select

WM seleciona a planilha (Movimentos) tem q olhar o codigo
    WM.Select

Como explicado acima muda o cursor 1 linha a baixo 7 colunas a direita do cursor
    ActiveCell.Offset(1, 7).Select
Else

Pula uma linha abaixo do cursor
    ActiveCell.Offset(1, 0).Select

# Como já programei no mIRC, sei que aqui tem uma verificação.. se, tal coisa.. senão, tal coisa..

Finaliza o teste if iniciado la em cima para encontrar a variavel proc (Nome do Procurador)

End If

Loop

# retorna ao início do comando
'--------------------------------------------

'Mensagem de Aviso
MsgBox "O Procurador" & " " & Proc & " " & "Possui" & " " & Format(Cont, "000") & " " & "Processos.", vbOKOnly, "Pesquisa Concluida."

 

Se quiser entender melhor faça o seguinte:

 

Coloque a janela do Excel e a do Editor VBa de forma que você possa visualizar as duas ao mesmo tempo.

 

Pressione F8 e a cada vez que pressionar vai destacar uma linha em amarelo e o codigo vai rodar passo a passo.  e assim você pode ver o que o codigo faz exatamente.

 

F5 executa o codigo todo 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!