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 todosSub 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!