Página 1 de 1

Gerar retorno de etapas a partir da operação de ida

Enviado: 20 Fev 2020 às 08:20
por EudesMilitao
Bom dia!

Pessoal,

Tenha uma planilha onde descrevo etapas de uma operação que pode ter três, seis ou até vinte e sete passos, sendo o mais comum ter seis. O trabalho consiste em seguir os passos e no retorno fazer a sequência inversa, ou seja, o último passo será o primeiro no retorno. Esses passos são numerados porque tenho que segui-los à risca. Coloquei umas fórmulas para facilitar o trabalho pois é muito repetitivo e também uma macro para gerar um sequencial e outra para o cursor saltar para a célula onde devo preencher. O problema é que como os passos variam muito não dá para definir a última célula e assim retornar do último ao primeiro. A fórmula já me dar esse retorno na sequência inversa correta, colocando o passo um, no vinte e sete, o dois no vinte e seis e assim, sucessivamente. Gostaria que alguém me desse uma macro que colocasse o passo um no retorno um, o dois no retorno dois e aí, segue e, que configurasse a página de impressão conforme o seu tamanho, ou seja, para até seis passos um folha A4 cabe em frente e verso, para oito ou dez por exemplo, teria duas ou mais folhas, etc. O modelo segue em anexo.

Desde já, agradeço.

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 23 Mar 2020 às 09:26
por EudesMilitao
Bom dia!

Pessoal,
Eu estive tentando resolver e quase consegui, só que esbarrei na seguinte dificuldade:
Fiz uma macro que copia para duas colunas ao lado que ficarão ocultas. Daí, identifico a última linha e vou copiando de baixo para cima. O problema é que como são variáveis não sei como parar a macro. No exemplo em anexo coloquei uma saída na linha 07 com "If UltCel.Select = "" Then Exit Sub", porém precisa ser dinâmica. Alguém poderia me ajudar?
Desde já, agradeço.

Eudes Militão

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 23 Mar 2020 às 14:02
por osvaldomp
Veja se ajuda.
Considerei o arquivo do seu primeiro post acima.

preparação
1. limpe a planilha Operações a partir da linha 153 para baixo
2. insira uma planilha vazia, nomeie de Retorno, acerte a largura das colunas A:Z = 3,5, coloque o cabeçalho em A1:Z7

Rode o código abaixo. O resultado será colocado na planilha Retorno.
Código: Selecionar todos
Sub Retorno()
 Dim LR As Long, k As Long, m As Long
  Application.ScreenUpdating = False
  If Sheets("Retorno").[A9] <> "" Then Sheets("Retorno").Range("A9:V" & Sheets("Retorno").Cells(Rows.Count, 1).End(3).Row).Clear
  LR = Sheets("Operações").Cells(Rows.Count, 6).End(3).Row
  For k = LR To 14 Step -5
   Sheets("Operações").Cells(k - 3, 1).Resize(4, 22).Copy
   Sheets("Retorno").Cells(Rows.Count, 1).End(3)(3).PasteSpecial xlValues
   Sheets("Retorno").Cells(Rows.Count, 1).End(3)(-2).NumberFormat = "@"
   Sheets("Retorno").Cells(Rows.Count, 1).End(3)(-2) = Format(m + 1, "00") & ".": m = m + 1
  Next k
  Application.ScreenUpdating = True
End Sub

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 24 Mar 2020 às 09:18
por EudesMilitao
Bom dia, Oswaldomp!

Funcionou só que tem um detalhe, aparece a seguinte mensagem de erro:
"O método Activate da classe Range falhou". Outra coisa, eu preciso que onde for "abrir" em Operações, em Retorno seja "fechar" e vice-versa.

Gerar retorno de etapas a partir da operação de ida

Enviado: 24 Mar 2020 às 09:20
por EudesMilitao
Desculpe-me, escrevi Ovaldomp com W. Gentileza, considerar Osvaldomp.

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 24 Mar 2020 às 10:18
por osvaldomp
EudesMilitao escreveu: ... aparece a seguinte mensagem de erro:
"O método Activate da classe Range falhou".
Isso é estranho, pois no código que passei não existe o comando Activate. ;)

Outra coisa, eu preciso que onde for "abrir" em Operações, em Retorno seja "fechar" e vice-versa.
Substitua as linhas do código conforme indicado abaixo.
substitua estas linhas
Código: Selecionar todos
   Sheets("Retorno").Cells(Rows.Count, 1).End(3)(3).PasteSpecial xlValues
   Sheets("Retorno").Cells(Rows.Count, 1).End(3)(-2).NumberFormat = "@"
   Sheets("Retorno").Cells(Rows.Count, 1).End(3)(-2) = Format(m + 1, "00") & ".": m = m + 1
por estas
Código: Selecionar todos
   With Sheets("Retorno")
    .Cells(Rows.Count, 1).End(3)(3).PasteSpecial xlValues
    .Cells(Rows.Count, 6).End(3)(-1) = IIf(.Cells(Rows.Count, 6).End(3)(-1) = "ABRIR", "FECHAR", "ABRIR")
    .Cells(Rows.Count, 1).End(3)(-2).NumberFormat = "@"
    .Cells(Rows.Count, 1).End(3)(-2) = Format(m + 1, "00") & ".": m = m + 1
   End With
obs. se ocorrer algum erro então disponibilize o arquivo exatamente nas condições em que o erro ocorre, informe corretamente sobre a mensagem de erro e informe qual a linha do código que é destacada em amarelo

Gerar retorno de etapas a partir da operação de ida

Enviado: 25 Mar 2020 às 09:43
por EudesMilitao
Bom dia, Osvaldomp!

Funcionou beleza! Só tem mais um probleminha: A Operação 1, no Retorno será a última, ou seja, no exemplo será a 3.

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 25 Mar 2020 às 10:02
por osvaldomp
E não é isso que o código faz?

Disponibilize um novo arquivo e coloque na planilha o resultado que o código está gerando e ao lado coloque o resultado desejado.

Você não mais se manifestou sobre o erro ... ;) ... o que houve ?

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 25 Mar 2020 às 19:31
por EudesMilitao
Boa noite!
Na Plan Retorno está o resultado gerado e ao lado em azul, está o esperado.

Não ocorreu mais o erro do início.

Re: Gerar retorno de etapas a partir da operação de ida

Enviado: 25 Mar 2020 às 20:01
por osvaldomp
EudesMilitao escreveu: Na Plan Retorno está o resultado gerado e ao lado em azul, está o esperado.
O resultado só aparece diferente do esperado se ao rodar o código a planilha Operações for a planilha ativa.
Essa diferença ocorre porque você removeu o ponto do início de uma das linhas de comando que coloquei no post #53123
A propósito, você colocou o código no módulo da planilha. Embora ali também funcione, é recomendável colocar o código em um módulo comum (Inserir / Módulo) deixando o módulo da planilha somente para receber eventos de planilha.


Não ocorreu mais o erro do início.
Que bom! Isso significa que o Duende foi zuar outro ... :)

Gerar retorno de etapas a partir da operação de ida

Enviado: 26 Mar 2020 às 10:26
por EudesMilitao
Bom dia, Osvaldomp!

Perfeito! Deu certo.
Muito obrigado!